Skip to content

Commit 792ca2a

Browse files
committed
docs(spec): state only the measured doors and the stored-row disposition in the D3 entry and changeset
Claude-Session: https://claude.ai/code/session_01VZqqwTj2wsihZEbfT6yyYN Co-authored-by: Claude <noreply@anthropic.com>
1 parent e92b992 commit 792ca2a

3 files changed

Lines changed: 11 additions & 9 deletions

File tree

‎.changeset/22568-page-slots-details-beside-tabs-refused.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Clause-②: no (narrowing)
2626

2727
**The one-line fix: move the `record:details` component into the `tabs` items (the first item's `children`, by convention) and delete `slots.details`.** Its `sections` and `hideFields` move unchanged. The page then shows the details body it always declared, which is a visible change on every page that authored the pair.
2828

29-
**Who is affected, measured.** In this repository, only the `sys_user` record page (`sys_user_detail` in `@objectstack/platform-objects`) authored both slots; no example app page does. hotcrm's one slotted page authors `header` and `discussion` only. Deployed metadata was not measured. A page row already stored with the pair is served as before (the authored tabs, without the details body); saving it again is refused until the details body moves.
29+
**Who is affected, measured.** In this repository, only the `sys_user` record page (`sys_user_detail` in `@objectstack/platform-objects`) authored both slots; no example app page does. hotcrm's one slotted page authors `header` and `discussion` only. Deployed metadata was not measured. A page row already stored with the pair is replayed unchanged at load, so it renders as before (the authored tabs, without the details body); its read diagnostics name the pair, and saving it again is refused until the details body moves.
3030

3131
### The kit
3232

‎packages/spec/src/migrations/entries/semantic/18.page-slots-details-beside-tabs-refused.ts‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,17 @@ export const entry: SemanticMigration = {
3434
+ 'sections never showed and the ban columns it hides were never hidden by it; it now carries its '
3535
+ '`record:details` as the first `tabs` item. The parse now refuses the pair at `slots.details`, '
3636
+ 'naming both slots and the fix: `definePage`, `defineStack` (`STACK_SCHEMA_INVALID`, 422), '
37-
+ '`objectstack validate`, an artifact\'s parse and the metadata save door (`422 INVALID_METADATA`). '
37+
+ '`objectstack validate` and the metadata save door (`422 INVALID_METADATA`). '
3838
+ 'Measured reach before the narrowing: in this repository only `sys_user_detail` authored the '
3939
+ 'pair (no example app page does), and hotcrm\'s one slotted page authors `header` and '
4040
+ '`discussion` only. '
4141
+ '⚠️ No D2 conversion: which tab item carries the details body, and under which label, is the '
4242
+ 'author\'s decision, and moving it makes visible a body that never rendered — a change to the '
4343
+ 'page, not a respelling. '
44-
+ '⚠️ A page row already stored with the pair is replayed unchanged and served as before (it '
45-
+ 'renders the authored tabs, without the details body), its read diagnostics name the pair, and '
46-
+ 'saving it again is refused until the details body moves. ADR-0087.',
44+
+ '⚠️ A page row already stored with the pair is replayed unchanged at load (no conversion '
45+
+ 'touches it), so it renders as before — the authored tabs, without the details body — while '
46+
+ 'its read diagnostics name the pair and saving it again is refused until the details body '
47+
+ 'moves. ADR-0087.',
4748
acceptanceCriteria:
4849
'Grep every page in `defineStack` pages sources, exported stacks and every page row in '
4950
+ '`sys_metadata` for a `slots` map carrying both a `details` and a `tabs` key. For each, move the '

‎packages/spec/src/migrations/registry.ts‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17395,16 +17395,17 @@ const step18: MigrationStep = {
1739517395
+ 'sections never showed and the ban columns it hides were never hidden by it; it now carries its '
1739617396
+ '`record:details` as the first `tabs` item. The parse now refuses the pair at `slots.details`, '
1739717397
+ 'naming both slots and the fix: `definePage`, `defineStack` (`STACK_SCHEMA_INVALID`, 422), '
17398-
+ '`objectstack validate`, an artifact\'s parse and the metadata save door (`422 INVALID_METADATA`). '
17398+
+ '`objectstack validate` and the metadata save door (`422 INVALID_METADATA`). '
1739917399
+ 'Measured reach before the narrowing: in this repository only `sys_user_detail` authored the '
1740017400
+ 'pair (no example app page does), and hotcrm\'s one slotted page authors `header` and '
1740117401
+ '`discussion` only. '
1740217402
+ '⚠️ No D2 conversion: which tab item carries the details body, and under which label, is the '
1740317403
+ 'author\'s decision, and moving it makes visible a body that never rendered — a change to the '
1740417404
+ 'page, not a respelling. '
17405-
+ '⚠️ A page row already stored with the pair is replayed unchanged and served as before (it '
17406-
+ 'renders the authored tabs, without the details body), its read diagnostics name the pair, and '
17407-
+ 'saving it again is refused until the details body moves. ADR-0087.',
17405+
+ '⚠️ A page row already stored with the pair is replayed unchanged at load (no conversion '
17406+
+ 'touches it), so it renders as before — the authored tabs, without the details body — while '
17407+
+ 'its read diagnostics name the pair and saving it again is refused until the details body '
17408+
+ 'moves. ADR-0087.',
1740817409
acceptanceCriteria:
1740917410
'Grep every page in `defineStack` pages sources, exported stacks and every page row in '
1741017411
+ '`sys_metadata` for a `slots` map carrying both a `details` and a `tabs` key. For each, move the '

0 commit comments

Comments
 (0)