Skip to content

chore(app-shell): remove the legacy monolith detail renderer + the renderViaSchema kill-switch (ADR-0085 PR4) #2181

Description

@os-zhuang

What

Delete the legacy monolithic DetailView branch inside packages/app-shell/src/views/RecordDetailView.tsx (~1700-line file; the non-schema-driven path), together with its two entry points:

  • objectDef.detail?.renderViaSchema === false (the last surviving detail.* key — ADR-0085 removed the block from the spec; this key was deliberately kept ONLY as this path's kill-switch)
  • the ?renderViaSchema=0 debug URL param

Why

The dual render path taxes every detail-page feature twice: the fieldGroups wiring (#2149/#2168) had to be implemented in BOTH the monolith and the buildDefaultPageSchema synth, and the two implementations already diverged once (ungrouped-field behavior). Evidence the path is dead: schema-driven has been default-on since Track 3 Phase G, and a two-repo + examples scan found ZERO authors of renderViaSchema: false.

Trigger condition

Soak: let the schema-driven path (with the ADR-0085 consumer switch, objectui#2168) ride through 1–2 release cycles with the Dogfood Gate green, then operate.

Checklist

  • Remove the legacy branch from RecordDetailView + the renderViaSchemaFlag plumbing
  • Drop the detail.renderViaSchema read (last objectDef.detail reference in the repo)
  • framework companion: remove renderViaSchema from any remaining spec typing/docs if still present
  • Browser-verify detail pages across showcase objects (grouped / ungrouped / stageField:false / related-heavy) before merging
  • Update tests that exercised the legacy branch

Context

ADR-0085 (framework docs/adr/0085) Alternatives + Consequences record the decision; the revision comment on #2149 and PR objectui#2168 both note this follow-up.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions