Observation-class record, deliberately unverified — filing so it is not lost, per the finding-first discipline. Surfaced by the #6889 dev while implementing PR #7392; reported to the PM rather than filed as a defect because it was not probed.
The hypothesis
defineStack's action cross-reference walk (packages/spec/src/stack.zod.ts, validateCrossReferences) iterated config.actions — the registered list — and, since PR #7392, also inline page-element actions collected from page regions/slots/nested containers. Neither walk visits actions embedded on objects (config.objects[].actions[]), if that authoring position carries the same modal/flow target keys. A dangling type: 'modal' or type: 'flow' target there would build clean by the same mechanism as #6889's row E — silent until clicked.
Status of the claim
Context
Filed unlabeled and unassigned for triage per #4949 discipline. Dedup: open-issue search for objects actions cross-reference / object-embedded action target / defineStack validation returns #6889 (closed by PR #7392, inline half) and #6739 (closed, target semantics) — no card covers the object-embedded position.
Observation-class record, deliberately unverified — filing so it is not lost, per the finding-first discipline. Surfaced by the #6889 dev while implementing PR #7392; reported to the PM rather than filed as a defect because it was not probed.
The hypothesis
defineStack's action cross-reference walk (packages/spec/src/stack.zod.ts,validateCrossReferences) iteratedconfig.actions— the registered list — and, since PR #7392, also inline page-element actions collected from page regions/slots/nested containers. Neither walk visits actions embedded on objects (config.objects[].actions[]), if that authoring position carries the same modal/flowtargetkeys. A danglingtype: 'modal'ortype: 'flow'target there would build clean by the same mechanism as #6889's row E — silent until clicked.Status of the claim
defineStack's action cross-reference validation entirely — a danglingtype: 'modal'target builds clean #6889 dev reported it as an unverified observation ("a ~10-minute probe of the same shape as this card's five-stack probe") and did not measure it; neither has this seat. Nothing here asserts the hole exists — the schema may not accept cross-referencing action shapes at that position at all, which would void the observation.defineStackcall with an object-embedded action carryingtype: 'modal', target: 'nowhere'(and aflowtwin), expecting either a rejection (observation void — close this) or an acceptance (the Inline (page-element) actions bypassdefineStack's action cross-reference validation entirely — a danglingtype: 'modal'target builds clean #6889 defect class, one surface over — promote to a queue card).Context
defineStack's action cross-reference validation entirely — a danglingtype: 'modal'target builds clean #6889 / PR fix(spec): defineStack cross-reference validation reaches inline page-element actions (#6889) #7392 — the inline-page-action half, landed with the traversal + 20-case pin suite; its PR body documents the walk's roots (registered list + page trees).showcase_new_taskaction targets a PAGE, so the global_nav "New Task" command opens the home page in a dialog instead of creating a task #6739's maintainer ruling (2026-08-09): a modaltargetnames a PAGE only — the contract any new arm would enforce.stack-inline-action-crossref.test.ts) is the natural home for the probe's pins if the hole is real.Filed unlabeled and unassigned for triage per #4949 discipline. Dedup: open-issue search for
objects actions cross-reference/object-embedded action target/defineStack validationreturns #6889 (closed by PR #7392, inline half) and #6739 (closed, target semantics) — no card covers the object-embedded position.