Skip to content

Showcase optimization: protocol catch-up, page/doc dedupe, flow-node coverage, seed gap - #2623

Merged
os-zhuang merged 4 commits into
mainfrom
claude/metadata-showcase-redesign-ougiov
Jul 5, 2026
Merged

Showcase optimization: protocol catch-up, page/doc dedupe, flow-node coverage, seed gap#2623
os-zhuang merged 4 commits into
mainfrom
claude/metadata-showcase-redesign-ougiov

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

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:

  1. 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: 2span: 'full' on the task form, drop the deprecated pixel drawerWidth (renderer derives), and fix the stale "default landing" comment.
  2. refactor(showcase) — dedupe. Account Cockpit merged into Renewals Pipeline: the 360 panel now shows the hand-rolled useAdapter() 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.md refocused on the embed mechanism (the per-type embeds live in the domain tours now; tour_data gains the project-lifecycle embed). showcase_index.zh.md brought 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.
  3. feat(showcase) — flow-node coverage. New InquiryPurgeFlow completes the CRUD node quartet (get_record + delete_record were undemonstrated), authored strictly to the executor contract (objectName/filter, edge-CEL routing). coverage.ts gains a flow-node dimension: every FlowNodeAction member 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.
  4. 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 verify green at each commit (validate + typecheck + 50 tests — one new: flow-node coverage).
  • The new flow-node test proved itself: it enumerates FlowNodeAction from the spec, and passes only because InquiryPurgeFlow adds the two missing CRUD nodes.
  • No object/flow deletions: the audit confirmed every thin object and every notify/approval flow variant carries a distinct lesson (SemanticZooLegacy is a live regression guard for stageField: false).

🤖 Generated with Claude Code

https://claude.ai/code/session_01G6pPpRszk9cD3SxcKNFMWs


Generated by Claude Code

claude added 4 commits July 5, 2026 04:44
…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
@vercel

vercelBot commented Jul 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
specReadyReadyPreview, CommentJul 5, 2026 4:59am

Request Review

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation tests size/m labels Jul 5, 2026
@os-zhuang
os-zhuang marked this pull request as ready for review July 5, 2026 05:34
@os-zhuang
os-zhuang merged commit 0a9232a into mainJul 5, 2026
15 checks passed
@os-zhuang
os-zhuang deleted the claude/metadata-showcase-redesign-ougiov branch July 5, 2026 05:34
os-zhuang added a commit that referenced this pull request Jul 16, 2026
feat(ai-build): cold-start handoff to Studio — primary CTA + artifact pillar deep links (ADR-0080 D5) (#2623)
objectui@1d95cd3659d86e09aec4c97412dcd1198dcba13d
xuyushun441-sys pushed a commit that referenced this pull request Jul 17, 2026
os-zhuang added a commit that referenced this pull request Jul 17, 2026
…ole coverage (#3082)
* docs(releases): expand v15 page to full 14.8→15.0→15.1 backend + Console coverage
The previous revision under-covered the line in three ways, now fixed:
1. 15.0.0 was missing everything outside the ADR-0095 theme from the
14.8.0..15.0.0 range: the strict view/page schema BREAKING change
(ADR-0089 D3a, #2943) with its migration, the per-row import automation
chain + skipAutomations + runAutomations-default-ON behavior change
(#2922), the sys_position/sys_capability system-row write guardrail
(#2930), the bidirectional visibility lint (#2931), and the explain
posture-label alignment (#2949).
2. 15.0.0 had NO Console section at all, despite bundling the objectui 14.0
major (13.2.0→14.0.0, ~73 commits — first release-page disclosure since
much of it rode unversioned in the 14.8.0 pin): the ADR-0057 ChatDock
consolidation (including its breaking cleanup #2475), the Gantt batch,
lists/forms/auth/Studio/i18n enhancements, two security fixes
(#2485/#2410), and the six early-14.1 commits the 15.0.0 pin picked up.
3. The 15.1.0 sections were over-compressed; every domain is now expanded to
its full changeset detail, and the Console 14.1 section covers all eight
areas of the 94-commit range instead of seven bullets.
465 → ~1000 lines; structure mirrors v14.mdx (per-minor annotations inside
one major page, per docs/releases-maintenance.md).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* docs(releases): note post-14.1 fixes carried by the final Console pin (#2615/#2617/#2619/#2620/#2621/#2623)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* docs(releases): add v15 to the releases index; mark v14 line final at 14.8.0
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/mtests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@os-zhuang@claude