Showcase optimization: protocol catch-up, page/doc dedupe, flow-node coverage, seed gap#2623
Merged
Merged
Conversation
…nt flip, span, derived drawer width - coverage.ts: the validation waiver note claimed 6 of 9 rule types were unenforced (#1475) — the rule-validator now dispatches EVERY declared type (ADR-0020 'no silent no-ops'), and the showcase already demos each. Update the note to the truth and add project/invoice to the proof files (cross_field, requiredWhen/readonlyWhen). - task.view.ts: colSpan:2 → span:'full' — adopt the #2578 semantic width primitive (absolute colSpan is legacy + lint-discouraged); this is now the showcase's demo of the new primitive. - renewals-pipeline.page.ts: drop the deprecated pixel drawerWidth (#2578: the author can't know the client viewport; renderer derives the size). - start-here.page.ts: fix the stale 'default landing' comment (the landing is the Capability Map). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs
…upe docs; zh index parity - Renewals Pipeline absorbs the Account Cockpit lesson: the 360 panel now shows BOTH rollup styles side by side — a hand-rolled useAdapter() KPI strip next to the declarative ObjectChart/RecordRelatedList blocks — with the trade-off documented. account-cockpit.page.ts deleted; nav, exports, and config wiring cleaned (react cluster: 4 pages → 3 distinct teachings). - showcase_metadata_views_guide.md: refocus on the ```metadata MECHANISM (fence shape, liveness lint, read-time resolution) with one live sample; the per-type embeds now live in the domain tours that explain them (tour_data gains the project lifecycle embed so every former view has a home). Removes the wholesale duplication with the tour docs. - showcase_index.zh.md: bring the 16-line stub to parity with the English index (guided-tour navigation + the honest AI-waiver note). - command-center-jsx: state on screen (and in the JSDoc) that the KPI numbers are static sample copy, pointing at the data-bound twin — the html-vs-full tier comparison stays honest. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs
…rd demo - InquiryPurgeFlow — a janitor flow completing the CRUD node quartet (create: InboundTaskWebhookFlow · update: ReassignWizardFlow · get + delete: here): get_record in records mode lands closed inquiries in an outputVariable, edge CEL gates on size(), delete_record purges by the same filter, notify reports. Config keys follow the executor contract exactly (objectName/filter — no aliases, Prime Directive #12). - coverage.ts gains the flow-node dimension: collectFlowNodeTypes walks flows INCLUDING structured-container regions (ADR-0031), and FLOW_NODE_WAIVERS records the three BPMN-interop forms (parallel/join gateway, boundary_event) that authors express via the structured parallel/try_catch containers instead. - coverage.test.ts asserts every FlowNodeAction member is demonstrated or waived-with-reason — a new built-in node type now fails CI until the showcase catches up, same contract as fields/charts/kinds. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs
…n the tour - Seed three inquiries (one per status) so the staff triage list and the Contact Form page render on first boot — the 'every view renders real data' principle had a gap here. The closed row doubles as live prey for InquiryPurgeFlow. - Automation tour: call out that completing one task fires six flows BY DESIGN (one per mechanism) and that a real app would consolidate — the write amplification is a teaching device, not an accident. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Follow-up to #2619, from an internal audit of the showcase's own demos against the upgraded protocol. Four commits, each green on
pnpm --filter @objectstack/example-showcase verify:fix(showcase)— protocol catch-up. The coverage manifest's validation waiver was STALE: the rule-validator now enforces every declared rule type (ADR-0020 "no silent no-ops" — the Validation rules: 6 of 9 spec rule types are declared but not enforced at runtime #1475 gap closed) and the showcase already demos each, so the note now states the truth and the proof files include project/invoice (cross_field, requiredWhen/readonlyWhen). Also adopts the 字段多的对象:自适应呈现表面 + 语义 field span(auto/full)+ 表单布局防呆 lint(AI-authored,ADR-0085 对齐) #2578 primitives the showcase predated:colSpan: 2→span: 'full'on the task form, drop the deprecated pixeldrawerWidth(renderer derives), and fix the stale "default landing" comment.refactor(showcase)— dedupe. Account Cockpit merged into Renewals Pipeline: the 360 panel now shows the hand-rolleduseAdapter()KPI rollup next to the declarative ObjectChart/RecordRelatedList blocks — one page teaching the trade-off instead of two pages teaching it apart (react cluster: 4 → 3).showcase_metadata_views_guide.mdrefocused on the embed mechanism (the per-type embeds live in the domain tours now; tour_data gains the project-lifecycle embed).showcase_index.zh.mdbrought from a 16-line stub to parity. Command Center (HTML) now says on screen its KPI numbers are static sample copy, pointing at its data-bound twin.feat(showcase)— flow-node coverage. NewInquiryPurgeFlowcompletes the CRUD node quartet (get_record+delete_recordwere undemonstrated), authored strictly to the executor contract (objectName/filter, edge-CEL routing).coverage.tsgains a flow-node dimension: everyFlowNodeActionmember must be demonstrated or waived-with-reason (the three BPMN-interop forms are waived in favor of the ADR-0031 structured containers the showcase already demos) — a new built-in node type now fails CI until the showcase catches up.feat(showcase)— seed gap. Three seeded inquiries (one per status) so the triage list renders on first boot; the automation tour now calls out that one task completion fires six flows by design.Why
The platform's protocol moved (validation enforcement completed, #2578 semantic span / derived overlay size, run observability) while the showcase's own examples and its coverage manifest lagged. An audit found the drift, the redundancies, and one unguarded coverage dimension; this PR closes all of it and adds the CI guard so flow-node drift can't silently recur.
Verification
pnpm --filter @objectstack/example-showcase verifygreen at each commit (validate + typecheck + 50 tests — one new: flow-node coverage).FlowNodeActionfrom the spec, and passes only because InquiryPurgeFlow adds the two missing CRUD nodes.stageField: false).🤖 Generated with Claude Code
https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs
Generated by Claude Code