feat(showcase+lint+audit): ADR-0085 #2548 follow-ups — console bump past PR4, detail-shapes e2e, shadowed-group lint, labeled feed summaries#3029
Merged
Conversation
…verify ADR-0085 detail shapes (#2548) Follow-up to objectui#2546 (ADR-0085 PR4), which removed the legacy monolith detail renderer and the `detail.renderViaSchema` kill-switch and flagged two follow-ups for #2548: - Comment cleanup: the ObjectSchema source comment forward-referenced `renderViaSchema` retiring "together with the legacy monolith render path". That path is now gone; the comment records the completed state with a breadcrumb to objectui#2546. Comment-only — no type/runtime change. - Real-backend browser verification: drove the running app-showcase backend plus the objectui Console (post-#2546 source) in a headless browser across the four detail-page shapes (grouped / ungrouped / stageField:false / related-heavy). All render correctly through the single SchemaRenderer path, and stageField:false correctly suppresses the record:path stepper. Results + repro runbook in docs/audits/2026-07-adr-0085-detail-shapes-browser-verify.md. No regressions; no objectui follow-up required. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016wpaFMPowSn4nAWsjeGZib
…o PR4, detail-shapes e2e, shadowed-group lint, labeled feed summaries Lands the follow-up plan from the #2548 real-backend browser pass: - examples/app-showcase: semantic-zoo gains one NON-highlighted member per group (code → basics, budget → money) so grouped detail layout — including Money's collapse:'collapsed' — is exercised in-browser instead of vanishing under the highlight strip; money group declares icon/description (served- pipeline dogfood for the §5 derivation passthrough); legacy-zoo options pin badge colors; budget/annual_revenue declare currencyConfig.defaultCurrency 'USD' (the spec channel — a bare `currency` key is stripped at parse) so currency rendering shows a real symbol. - e2e: new detail-shapes.spec.ts — permanent Playwright regression for the four ADR-0085 detail shapes against the vendored console (3/3 green locally against `serve --dev`). - @objectstack/lint: new `field-group-shadowed` warning — a declared group whose every visible member is hoisted into the detail highlight strip (or is the record title) renders on forms but never on detail pages. - @objectstack/plugin-audit: user-facing feed summaries name the object by its display label, not its API name. - docs: ADR-0085 flipped Proposed → Accepted with an as-built addendum; the detail-shapes audit note's out-of-scope section replaced with the triaged root causes (DEV_PROXY_TARGET harness misconfig; approvalsApi cookie-only auth — fixed objectui-side) and the runbook corrected. - dogfood: semantic-roles test updated for the fixture (money fields, icon/ description passthrough, currencyConfig round-trip). Verification: lint 209 ✓, plugin-audit 32 ✓, dogfood semantic-roles 5/5 ✓, showcase verify (validate+typecheck+55 tests) ✓, detail-shapes e2e 3/3 ✓. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016wpaFMPowSn4nAWsjeGZib
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
📓 Docs Drift CheckThis PR changes 3 package(s): 6 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:
|
os-zhuang
marked this pull request as ready for review
July 16, 2026 07:49
os-zhuang
pushed a commit
that referenced
this pull request
Jul 16, 2026
os-zhuang
added a commit
that referenced
this pull request
Jul 16, 2026
…d statuses, mark PRIORITIZATION stale (#3032) * docs(adr): status-hygiene sweep — fix 0096 collision, flip implemented statuses, mark PRIORITIZATION stale Follow-up to the ADR-0086 re-evaluation (#2557): an audit of docs/adr found three hygiene defects; this fixes the mechanical ones. 1. Resolve the ADR-0096 numbering collision. Two unrelated ADRs landed as 0096 on the same day; the first-merged one (execution-surface identity admission, #2975) keeps 0096, and the connector ADR (#2977) is renumbered to ADR-0097. All connector-semantic "ADR-0096" references in code comments, test titles, and zod describe/message strings are updated to ADR-0097; execution-surface references (http-dispatcher, authz-conformance, graphql/realtime contracts, service-realtime README) are untouched. CHANGELOGs and commit history are left as historical record. 2. Flip Status lines of implemented ADRs that were still Proposed, with evidence: 0093 (tenancy service + membership reconciler + dogfood test) and 0095 (tenant-layer.ts + posture-ladder.ts + matrix-gate tests). Verified code+tests on main before flipping; other stale-looking ADRs (0049/0056/0057/0066/...) are left for per-ADR verification. 3. Mark docs/adr/PRIORITIZATION.md as a historical snapshot (it predates ADR-0050+) and record the status-hygiene rule: the PR that lands an ADR's implementation flips its Status line with one line of evidence. * chore: retrigger CI * docs: rename remaining connector-semantic ADR-0096 refs introduced by #3016/#3029 --------- Co-authored-by: Claude <noreply@anthropic.com>
This was referenced Jul 16, 2026
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
Lands the follow-up plan from the #2548 real-backend browser pass (companion objectui PR: objectstack-ai/objectui#2577).
1.
.objectui-shabump →092bd85(includes ADR-0085 PR4)The pinned console (
cc21568) predated objectui#2546 —objectstack dev --uiusers were still running the deleted legacy monolith renderer with therenderViaSchemakill-switch. The bump (viascripts/bump-objectui.sh, with its auto-generated@objectstack/consolechangeset) brings the vendored console onto the schema-only path. Rebuilt locally and verified:check:console-sha✓, e2e below runs against this build.2. Permanent e2e for the four detail shapes
examples/app-showcase/e2e/detail-shapes.spec.ts— the one-off verification from #3019 is now a Playwright regression riding the existing smoke harness (serve --devwebServer + storageState): grouped (sections render,collapse:'collapsed'actually collapses), ungrouped (flat body),stageField:false(no stepper despite a baitstatusfield), related-heavy (related-list tabs, lazy fetch). 3/3 green locally against the rebuilt vendored console.3. Fixture blind spot fixed (semantic-zoo)
The zoo's grouped fields were all also highlightFields, so the groups vanished from detail pages and
collapse:'collapsed'was never visually exercised. Each group now keeps one non-highlighted member (code→ basics,budget→ money); the money group declaresicon/description(dogfooding the §5 derivation passthrough end-to-end); legacy-zoo options pin badgecolors;budget/annual_revenuedeclarecurrencyConfig.defaultCurrency: 'USD'— the spec channel (a barecurrencykey is stripped at parse) — so currency renders with a real symbol. Dogfood test updated (5/5).4. New lint rule:
field-group-shadowedDetail pages hide the first 4 highlightFields from the body (and the title field is the H1) — so a declared group whose every visible member is covered renders on forms but silently never on detail pages. Warning tier in
validate-semantic-roles, alongside the existing ADR-0085 §6 rules; covers the title-field subtlety and the 4-entry strip cap (209 lint tests ✓, incl. new cases).5. Audit/feed summaries use the object label
plugin-audit's "Created … / Deleted … / Updated …" summaries render verbatim in the record Discussion feed and leaked API names (Created showcase_semantic_zoo "…"). They now use the object's display label with API-name fallback (32 tests ✓; verified live: the feed showsCreated Semantic Zoo "…").6. Docs
DEV_PROXY_TARGET— runbook corrected; relative paths are by design behind the Vite proxy / same-origin prod), and the approvals 401 was a real split-origin defect (cookie-only fetches) — fixed in objectui#2577.Verification
@objectstack/lint209 ✓ (new rule + cases) ·@objectstack/plugin-audit32 ✓semantic-roles5/5 ✓ (served pipeline: fieldGroups icon/description + currencyConfig round-trip)pnpm verify(validate + typecheck + 55 tests) ✓detail-shapese2e 3/3 ✓ against the rebuilt vendored console (check:console-sha✓)$25,000,000in the Contoso strip, Money icon+description, label-based feed summaryRefs #2548 · companion: objectstack-ai/objectui#2577
🤖 Generated with Claude Code
https://claude.ai/code/session_016wpaFMPowSn4nAWsjeGZib
Generated by Claude Code