Skip to content

Commit fdefcdd

Browse files
committed
chore(app-shell): remove legacy monolith detail renderer + renderViaSchema kill-switch (ADR-0085 PR4)
RecordDetailView now always renders through the SchemaRenderer Page pipeline: an authored PageSchema(pageType='record') when assigned, else the buildDefaultPageSchema synthesis. The non-schema-driven monolithic DetailView branch and both entry points are removed: - objectDef.detail?.renderViaSchema === false (the last surviving detail.* key — ADR-0085 removed the block from the spec, keeping this key only as the kill-switch) is no longer read; - the ?renderViaSchema=0 debug URL param is no longer honored. Also drops the legacy-only plumbing this branch required: the eager per-record related-lists fan-out (the schema path's record:related_list self-fetches lazily per tab) and the intermediate DetailViewSchema translation layer, now replaced by a synthParts memo that feeds buildDefaultPageSchema directly. The DetailView component itself stays in @object-ui/plugin-detail (still used by the record:details renderer). Removes the now-dead `DetailView`/`RecordChatterPanel` import in ObjectView and updates the slotted-pages guide. Closes #2181 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VRBZFKwqib3pjPUua3LjCP
1 parent 703dcec commit fdefcdd

4 files changed

Lines changed: 303 additions & 647 deletions

File tree

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
"@object-ui/app-shell": patch
3+
---
4+
5+
chore(app-shell): remove the legacy monolith detail renderer + the `renderViaSchema` kill-switch (ADR-0085 PR4, #2181)
6+
7+
`RecordDetailView` now always renders through the SchemaRenderer Page
8+
pipeline (an authored `PageSchema(pageType='record')` when assigned, else
9+
the `buildDefaultPageSchema` synthesis). The non-schema-driven monolithic
10+
`DetailView` branch and both of its entry points are gone:
11+
12+
- `objectDef.detail?.renderViaSchema === false` is no longer read (it was
13+
the last surviving `detail.*` key — ADR-0085 removed the block from the
14+
spec, and the key had been kept only as this path's kill-switch);
15+
- the `?renderViaSchema=0` debug URL param is no longer honored.
16+
17+
Also drops the legacy-only plumbing: the eager per-record related-lists
18+
fan-out (`record:related_list` self-fetches lazily on the schema path)
19+
and the intermediate `DetailViewSchema` translation layer. The
20+
`DetailView` component itself remains in `@object-ui/plugin-detail`
21+
(still used internally by the `record:details` renderer).

content/docs/guide/slotted-pages.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,7 @@ The two modes are mutually exclusive: a page either has `kind: "full"`
110110
(default) and uses `regions[]`, or `kind: "slotted"` and uses
111111
`slots`.
112112

113-
## Disabling the synthesizer entirely
114-
115-
The default-page synthesizer is on by default. To fall back to the
116-
legacy DetailView monolith for an object (typically for debugging a
117-
regression), set `objectDef.detail.renderViaSchema = false`, or pass
118-
`?renderViaSchema=0` in the URL.
113+
> **Note:** the default-page synthesizer is the only render path for
114+
> record detail pages. The legacy monolithic DetailView fallback and its
115+
> `renderViaSchema` kill-switch (`objectDef.detail.renderViaSchema`,
116+
> `?renderViaSchema=0`) were removed by ADR-0085 PR4.

packages/app-shell/src/views/ObjectView.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ const ImportWizard = lazy(() =>
2020
import('@object-ui/plugin-grid').then((m) => ({ default: m.ImportWizard })),
2121
);
2222
import { ListView } from '@object-ui/plugin-list';
23-
import { DetailView, RecordChatterPanel } from '@object-ui/plugin-detail';
2423
import { ObjectView as PluginObjectView, ViewTabBar, ManageViewsDialog, deriveRecordSurface, overlayWidthFor } from '@object-ui/plugin-view';
2524
import type { ViewTabItem } from '@object-ui/plugin-view';
2625
import { RECORD_DRAWER_PARAM } from '../urlParams';

0 commit comments

Comments
 (0)