Split out of #6620 by the domain:ui execution seat (PM session session_01CRJge11jso9TpXRWFt1Z49), on the review of PR #6792 (#6499). The implementing agent folded this observation into #6620 rather than filing it, and explicitly left the call to the PM. Splitting it, for a state-machine reason rather than a taste one — see the last section.
The observation
The metadata-admin flow-node inspector declares escalation.notifySubmitter with no defaultValue, while the spec already defaults it to true. So an unset key renders the checkbox unchecked while the runtime notifies — the control says one thing and the system does another.
What this seat verified directly
| where |
reading |
objectui origin/main d06059f24 |
packages/app-shell/src/views/metadata-admin/inspectors/flow-node-config.ts:770 declares escalation.notifySubmitter — kind: 'boolean', showWhen on escalation.enabled — and carries no defaultValue |
objectstack origin/main 7404925 |
packages/spec/src/automation/approval.zod.ts:636 — notifySubmitter: z.boolean().default(true) |
objectstack origin/main 7404925 |
packages/spec/authorable-defaults/automation.json:17 — "automation/ApprovalEscalation:notifySubmitter = true" |
⚠️ What this seat did NOT verify
That the installed @objectstack/spec in the consuming checkout already carries that default. @objectstack/spec did not resolve from the shared checkout for this seat, so the claim that the installed version is 17.2.0 with .default(true) — and therefore that this is live today rather than latent — comes from PR #6792's report, not from a reading of mine.
⭐ That distinction is the whole reason this card exists separately, so whoever takes it should confirm it first. If the installed spec turns out not to carry the default yet, this collapses into #6620's latency condition and should be closed as a duplicate of it.
Why it is not folded into #6620
#6620 is the same class — inspector default disagreeing with the consumed spec default — and its stated fix ("the toggle default follows the consumed spec default") would cover this field too. That is a real argument for folding, and it is why the implementing agent folded it.
⛔ But #6620 is pm:on-hold, and its restart condition is a future @objectstack/spec bump — because its defect (escalation.enabled) is latent: installed spec and inspector agree today, and only the next bump makes them disagree.
If notifySubmitter is live today, folding it in parks a live defect behind a restart condition that has nothing to do with it, where nothing wakes it until an unrelated bump lands. A bug held on hold is a bug hidden — so it gets its own card, and its own grading.
Related
#6620 (the on-hold sibling, escalation.enabled, latent) · #6499 / PR #6792 (where this surfaced)
Generated by Claude Code
Split out of #6620 by the
domain:uiexecution seat (PM sessionsession_01CRJge11jso9TpXRWFt1Z49), on the review of PR #6792 (#6499). The implementing agent folded this observation into #6620 rather than filing it, and explicitly left the call to the PM. Splitting it, for a state-machine reason rather than a taste one — see the last section.The observation
The metadata-admin flow-node inspector declares
escalation.notifySubmitterwith nodefaultValue, while the spec already defaults it totrue. So an unset key renders the checkbox unchecked while the runtime notifies — the control says one thing and the system does another.What this seat verified directly
objectuiorigin/maind06059f24packages/app-shell/src/views/metadata-admin/inspectors/flow-node-config.ts:770declaresescalation.notifySubmitter—kind: 'boolean',showWhenonescalation.enabled— and carries nodefaultValueobjectstackorigin/main7404925packages/spec/src/automation/approval.zod.ts:636—notifySubmitter: z.boolean().default(true)objectstackorigin/main7404925packages/spec/authorable-defaults/automation.json:17—"automation/ApprovalEscalation:notifySubmitter = true"That the installed
@objectstack/specin the consuming checkout already carries that default.@objectstack/specdid not resolve from the shared checkout for this seat, so the claim that the installed version is 17.2.0 with.default(true)— and therefore that this is live today rather than latent — comes from PR #6792's report, not from a reading of mine.⭐ That distinction is the whole reason this card exists separately, so whoever takes it should confirm it first. If the installed spec turns out not to carry the default yet, this collapses into #6620's latency condition and should be closed as a duplicate of it.
Why it is not folded into #6620
#6620 is the same class — inspector default disagreeing with the consumed spec default — and its stated fix ("the toggle default follows the consumed spec default") would cover this field too. That is a real argument for folding, and it is why the implementing agent folded it.
⛔ But #6620 is
pm:on-hold, and its restart condition is a future@objectstack/specbump — because its defect (escalation.enabled) is latent: installed spec and inspector agree today, and only the next bump makes them disagree.If
notifySubmitteris live today, folding it in parks a live defect behind a restart condition that has nothing to do with it, where nothing wakes it until an unrelated bump lands. A bug held on hold is a bug hidden — so it gets its own card, and its own grading.Related
#6620 (the on-hold sibling,
escalation.enabled, latent) · #6499 / PR #6792 (where this surfaced)Generated by Claude Code