Skip to content

feat(showcase+lint+audit): ADR-0085 #2548 follow-ups — console bump past PR4, detail-shapes e2e, shadowed-group lint, labeled feed summaries - #3029

Merged
os-zhuang merged 4 commits into
mainfrom
claude/clever-fermat-flca90
Jul 16, 2026
Merged

feat(showcase+lint+audit): ADR-0085 #2548 follow-ups — console bump past PR4, detail-shapes e2e, shadowed-group lint, labeled feed summaries#3029
os-zhuang merged 4 commits into
mainfrom
claude/clever-fermat-flca90

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

What

Lands the follow-up plan from the #2548 real-backend browser pass (companion objectui PR: objectstack-ai/objectui#2577).

1. .objectui-sha bump → 092bd85 (includes ADR-0085 PR4)

The pinned console (cc21568) predated objectui#2546objectstack dev --ui users were still running the deleted legacy monolith renderer with the renderViaSchema kill-switch. The bump (via scripts/bump-objectui.sh, with its auto-generated @objectstack/console changeset) 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 --dev webServer + storageState): grouped (sections render, collapse:'collapsed' actually collapses), ungrouped (flat body), stageField:false (no stepper despite a bait status field), 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 declares icon/description (dogfooding the §5 derivation passthrough end-to-end); 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 renders with a real symbol. Dogfood test updated (5/5).

4. New lint rule: field-group-shadowed

Detail 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 shows Created Semantic Zoo "…").

6. Docs

  • ADR-0085 flipped Proposed → Accepted with an as-built addendum (execution PRs, §5/§6 landing points, the shadowed-group consequence surfaced by the browser pass).
  • The docs(spec): retire stale renderViaSchema comment + browser-verify ADR-0085 detail shapes (#2548) #3019 audit note's out-of-scope section replaced with the triaged root causes: the 502s were harness misconfiguration (missing 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
  • dogfood semantic-roles5/5 ✓ (served pipeline: fieldGroups icon/description + currencyConfig round-trip)
  • showcase pnpm verify (validate + typecheck + 55 tests) ✓
  • detail-shapes e2e 3/3 ✓ against the rebuilt vendored console (check:console-sha ✓)
  • Live-browser UX re-verify with objectui#2577 (new-source console → this backend): 14/14 — including $25,000,000 in the Contoso strip, Money icon+description, label-based feed summary

Refs #2548 · companion: objectstack-ai/objectui#2577

🤖 Generated with Claude Code

https://claude.ai/code/session_016wpaFMPowSn4nAWsjeGZib


Generated by Claude Code

claude added 4 commits July 16, 2026 04:53
…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
fix(app-shell): bind current_user.positions into the client predicate scope; align role-gating examples (#1583 / ADR-0058) (#2573)
objectui@092bd859934f7bbc2654510aef912062c4c4f3a8
…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
…n as fad8e49 / PR #3019)
# Conflicts:
#	docs/audits/2026-07-adr-0085-detail-shapes-browser-verify.md
@vercel

vercelBot commented Jul 16, 2026

Copy link
Copy Markdown

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

ProjectDeploymentActionsUpdated (UTC)
specReadyReadyPreview, CommentJul 16, 2026 7:11am

Request Review

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation tests tooling size/m labels Jul 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 3 package(s): @objectstack/dogfood, @objectstack/lint, @objectstack/plugin-audit.

6 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/deployment/production-readiness.mdx(via @objectstack/plugin-audit)
  • content/docs/getting-started/cli.mdx(via @objectstack/plugin-audit)
  • content/docs/permissions/authorization.mdx(via packages/dogfood, @objectstack/lint)
  • content/docs/permissions/delegated-administration.mdx(via packages/dogfood)
  • content/docs/plugins/packages.mdx(via @objectstack/plugin-audit)
  • content/docs/releases/implementation-status.mdx(via @objectstack/plugin-audit)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

@os-zhuang
os-zhuang marked this pull request as ready for review July 16, 2026 07:49
@os-zhuang
os-zhuang merged commit 55bc68d into mainJul 16, 2026
17 checks passed
@os-zhuang
os-zhuang deleted the claude/clever-fermat-flca90 branch July 16, 2026 07:49
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>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/mteststooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@os-zhuang@claude