Skip to content

docs(spec): retire stale renderViaSchema comment + browser-verify ADR-0085 detail shapes (#2548)#3019

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

docs(spec): retire stale renderViaSchema comment + browser-verify ADR-0085 detail shapes (#2548)#3019
os-zhuang merged 1 commit into
mainfrom
claude/clever-fermat-flca90

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

What

Closes the two items objectui#2546 (ADR-0085 PR4) deferred to #2548, now that it has merged:

  1. Framework renderViaSchema comment cleanup. The ObjectSchema source comment forward-referenced renderViaSchema retiring "together with the legacy monolith render path" — a promise about work not yet shipped. objectui#2546 removed that path and the detail.renderViaSchema kill-switch that was its only steering wheel, so the comment now records the completed state with a breadcrumb to that PR instead of a forward reference. Comment-only — no type, schema, or runtime change.

  2. Real-backend browser verification of the four detail-page shapes. objectui#2546 could not run this ("needs a running @objectstack backend, which the CI/agent environment doesn't have"). This PR performs it and lands a repro runbook + results as a dogfood audit note.

Verification (real backend + real browser)

Booted the app-showcase backend and pointed the objectui Console (post-#2546 source, so the schema-only path) at it, then drove record detail pages in headless Chromium. RecordDetailView now has a single path — authored PageSchema(pageType='record') when assigned, else buildDefaultPageSchema() synthesis, both via <SchemaRenderer>.

Shape Fixture Result
grouped showcase_semantic_zoo highlight strip (name / Active / 4,200) + Draft → Active → Done record:path from stageField:'status'
ungrouped showcase_account · Details flat two-column field layout, no section headers ✅
stageField:false showcase_semantic_zoo_legacy status renders as an ordinary field, no record:path stepperfalse correctly suppresses the heuristic ✅
related-heavy showcase_account (Contoso) tabs Details · Invoices (2) · Projects (2) · Related (2) — primary lists get own tabs, rest collapse (ADR-0085 prominence), lazy-fetch on show ✅

hasRecordPath matched expectation for every case (true for grouped + related-heavy, false for stageField:false). No render errors, error boundaries, or missing-data states. No regressions found; no objectui follow-up required. The full repro runbook, per-shape observations, and out-of-scope notes (split-origin harness 502s on /runtime/config + /dev/metadata-events; a peripheral approvals-badge 401) are in docs/audits/2026-07-adr-0085-detail-shapes-browser-verify.md.

Changes

  • packages/spec/src/data/object.zod.ts — rewrite the stale renderViaSchema forward-reference into a completed-state note with an objectui#2546 breadcrumb.
  • docs/audits/2026-07-adr-0085-detail-shapes-browser-verify.md — new dogfood audit: repro runbook + four-shape results.
  • .changeset/adr-0085-pr4-renderviaschema-comment-2548.md@objectstack/spec patch (docs(spec)).

Scope notes

  • The dated audit docs/audits/2026-06-objectschema-property-liveness.md still lists detail.renderViaSchema — left as-is; it is a point-in-time snapshot (2026-06-15), not a living ledger.
  • object.test.ts's strip test uses detail: { renderViaSchema: false } as a realistic legacy payload — kept as valid coverage of the strip behavior, not a stale comment.

🤖 Generated with Claude Code

https://claude.ai/code/session_016wpaFMPowSn4nAWsjeGZib


Generated by Claude Code

…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
@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 Building Building Preview, Comment Jul 16, 2026 4:54am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation protocol:data tooling size/m labels Jul 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/spec.

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

  • content/docs/ai/agents.mdx (via @objectstack/spec)
  • content/docs/ai/skills-reference.mdx (via @objectstack/spec)
  • content/docs/ai/skills.mdx (via @objectstack/spec)
  • content/docs/api/client-sdk.mdx (via @objectstack/spec)
  • content/docs/api/environment-routing.mdx (via @objectstack/spec)
  • content/docs/api/error-catalog.mdx (via @objectstack/spec)
  • content/docs/api/error-handling-client.mdx (via @objectstack/spec)
  • content/docs/api/error-handling-server.mdx (via @objectstack/spec)
  • content/docs/api/index.mdx (via @objectstack/spec)
  • content/docs/automation/approvals.mdx (via packages/spec)
  • content/docs/automation/flows.mdx (via @objectstack/spec)
  • content/docs/automation/hook-bodies.mdx (via packages/spec)
  • content/docs/automation/hooks.mdx (via @objectstack/spec)
  • content/docs/automation/index.mdx (via @objectstack/spec)
  • content/docs/automation/webhooks.mdx (via @objectstack/spec)
  • content/docs/automation/workflows.mdx (via @objectstack/spec)
  • content/docs/concepts/architecture.mdx (via @objectstack/spec)
  • content/docs/concepts/design-principles.mdx (via packages/spec)
  • content/docs/concepts/index.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-driven.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-lifecycle.mdx (via packages/spec)
  • content/docs/concepts/north-star.mdx (via packages/spec)
  • content/docs/data-modeling/analytics.mdx (via @objectstack/spec)
  • content/docs/data-modeling/drivers.mdx (via @objectstack/spec)
  • content/docs/data-modeling/external-datasources.mdx (via @objectstack/spec)
  • content/docs/data-modeling/field-types.mdx (via @objectstack/spec)
  • content/docs/data-modeling/fields.mdx (via @objectstack/spec)
  • content/docs/data-modeling/formulas.mdx (via @objectstack/spec)
  • content/docs/data-modeling/index.mdx (via @objectstack/spec)
  • content/docs/data-modeling/objects.mdx (via @objectstack/spec)
  • content/docs/data-modeling/queries.mdx (via @objectstack/spec)
  • content/docs/data-modeling/schema-design.mdx (via @objectstack/spec)
  • content/docs/data-modeling/seed-data.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation-rules.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation.mdx (via @objectstack/spec)
  • content/docs/deployment/troubleshooting.mdx (via @objectstack/spec)
  • content/docs/getting-started/build-with-claude-code.mdx (via @objectstack/spec)
  • content/docs/getting-started/cli.mdx (via @objectstack/spec)
  • content/docs/getting-started/common-patterns.mdx (via @objectstack/spec)
  • content/docs/getting-started/examples.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-reference.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-start.mdx (via @objectstack/spec)
  • content/docs/getting-started/validating-metadata.mdx (via @objectstack/spec)
  • content/docs/getting-started/your-first-project.mdx (via @objectstack/spec)
  • content/docs/kernel/cluster.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/auth-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/cache-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/data-engine.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/index.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/metadata-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/storage-service.mdx (via packages/spec)
  • content/docs/kernel/index.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/email-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/index.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/queue-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/sharing-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/sms-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/storage-service.mdx (via packages/spec)
  • content/docs/kernel/services-checklist.mdx (via @objectstack/spec)
  • content/docs/permissions/authorization.mdx (via @objectstack/spec)
  • content/docs/permissions/permission-sets.mdx (via @objectstack/spec)
  • content/docs/permissions/permissions-matrix.mdx (via @objectstack/spec)
  • content/docs/permissions/positions.mdx (via @objectstack/spec)
  • content/docs/permissions/sharing-rules.mdx (via @objectstack/spec)
  • content/docs/plugins/adding-a-metadata-type.mdx (via @objectstack/spec)
  • content/docs/plugins/development.mdx (via @objectstack/spec)
  • content/docs/plugins/index.mdx (via @objectstack/spec)
  • content/docs/plugins/packages.mdx (via @objectstack/spec)
  • content/docs/protocol/backward-compatibility.mdx (via @objectstack/spec)
  • content/docs/protocol/diagram.mdx (via packages/spec)
  • content/docs/protocol/kernel/config-resolution.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/i18n-standard.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/lifecycle.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/plugin-spec.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/runtime-capabilities.mdx (via @objectstack/spec)
  • content/docs/protocol/knowledge.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/index.mdx (via packages/spec)
  • content/docs/protocol/objectql/query-syntax.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/schema.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/security.mdx (via packages/spec)
  • content/docs/protocol/objectql/state-machine.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/actions.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/concept.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/layout-dsl.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/record-alert.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/widget-contract.mdx (via @objectstack/spec)
  • content/docs/releases/implementation-status.mdx (via @objectstack/spec)
  • content/docs/releases/index.mdx (via @objectstack/spec)
  • content/docs/releases/v12.mdx (via @objectstack/spec)
  • content/docs/releases/v13.mdx (via @objectstack/spec)
  • content/docs/releases/v9.mdx (via @objectstack/spec)
  • content/docs/ui/create-vs-edit-form.mdx (via @objectstack/spec)
  • content/docs/ui/dashboards.mdx (via @objectstack/spec)
  • content/docs/ui/forms.mdx (via @objectstack/spec)
  • content/docs/ui/index.mdx (via @objectstack/spec)
  • content/docs/ui/setup-app.mdx (via @objectstack/spec)

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 05:09
@os-zhuang
os-zhuang merged commit fad8e49 into main Jul 16, 2026
16 of 17 checks passed
@os-zhuang
os-zhuang deleted the claude/clever-fermat-flca90 branch July 16, 2026 05:09
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 protocol:data size/m tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants