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/lint 209 ✓ (new rule + cases) · @objectstack/plugin-audit 32
  • dogfood semantic-roles 5/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

vercel Bot commented Jul 16, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jul 16, 2026 7:11am

Request Review

@github-actions github-actions Bot 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 main Jul 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 free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/m tests tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants