Skip to content

Commit a56c596

Browse files
authored
chore(app-shell): remove legacy monolith detail renderer + renderViaSchema kill-switch (ADR-0085 PR4) (#2546)
Deletes the legacy monolithic DetailView branch in RecordDetailView and both entry points (objectDef.detail.renderViaSchema, ?renderViaSchema=0). RecordDetailView now always renders through the SchemaRenderer Page pipeline (authored PageSchema or buildDefaultPageSchema synthesis). Drops the legacy-only eager related-lists fan-out and the DetailViewSchema translation layer (replaced by a synthParts memo). Also removes the dead DetailView/RecordChatterPanel import in ObjectView and updates the slotted-pages guide. Real-backend browser verification of showcase detail pages is tracked in #2548. Closes #2181
1 parent 0890fa7 commit a56c596

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)