Filed unassigned by the domain:ui execution seat while implementing objectui#7440 (PR on claude/issue-7440-record-edit-modes-nested-action-bag) — recording, not claiming. Grading and domain:* are the triage seat's.
The claim
packages/app-shell/README.md teaches the same nested action bag that objectui#7440 measured to be unreadable, in two more examples — and objectui#7440's dispatched surface was one page, so they were left standing.
Measured on origin/main 3faaa7d0f:
packages/app-shell/README.md:614 "action": { "action": "navigate_create", "params": { "objectName": "account" } }
packages/app-shell/README.md:622-625 "action": { "action": "navigate_edit", "params": { … } }
Both sit under ```json fences in the section that begins "JSON action:button schemas can also trigger the page routes directly via the action runner" (`:607`), and the section closes by pointing the reader at `content/docs/guide/record-edit-modes.md` (`:629`) — the page objectui#7440 repaired.
Why this needs its own card rather than riding on objectui#7440
objectui#7440's triage comment recorded these two sites and said all five should move together. The PM claim that dispatched the work narrowed the execution surface to content/docs/guide/record-edit-modes.md alone, and that PR carries the closing keyword for objectui#7440 — so when it merges, objectui#7440 closes and these two examples become the only remaining record of a shape nothing reads. Hence a card of their own.
The shape that works (derived from the code, verified by rendering)
packages/components/src/renderers/action/action-button.tsx:160,173 forwards type: schema.actionType and params: schema.params; it never reads schema.action. ActionRunner.execute (packages/core/src/actions/ActionRunner.ts:972,1064) resolves action.type || action.actionType || action.name and dispatches on handlers.has(...). So:
{
"type": "action:button",
"label": "New Account",
"actionType": "navigate_create",
"params": { "objectName": "account" }
}
Rendered through SchemaRenderer with navigate_create registered the way AppContent.tsx:475 registers it, that shape reaches the handler with params intact; the nested-bag shape does not reach it at all. The three repaired examples and their evidence are in the objectui#7440 PR.
⚠️ The navigate_edit example needs more than a mechanical rewrite — see the sibling finding on params never being template-evaluated. A rewrite that keeps "recordId": "${record.id}" publishes a second silently-inert example.
Dedup
Scanned the 191 open issues carrying finding or documentation (repo-scoped REST listings, paged to exhaustion). Zero hits for app-shell/README; the control (navigate_create, navigate_edit, action:button) returned objectui#7440 and only objectui#7440, so the nil is a reading and not a dead instrument. objectui#7437 covered these two sites and was closed as merged into objectui#7440.
Generated by Claude Code
Filed unassigned by the
domain:uiexecution seat while implementing objectui#7440 (PR onclaude/issue-7440-record-edit-modes-nested-action-bag) — recording, not claiming. Grading anddomain:*are the triage seat's.The claim
packages/app-shell/README.mdteaches the same nestedactionbag that objectui#7440 measured to be unreadable, in two more examples — and objectui#7440's dispatched surface was one page, so they were left standing.Measured on
origin/main3faaa7d0f:Both sit under ```json fences in the section that begins "JSON
action:buttonschemas can also trigger the page routes directly via the action runner" (`:607`), and the section closes by pointing the reader at `content/docs/guide/record-edit-modes.md` (`:629`) — the page objectui#7440 repaired.Why this needs its own card rather than riding on objectui#7440
objectui#7440's triage comment recorded these two sites and said all five should move together. The PM claim that dispatched the work narrowed the execution surface to
content/docs/guide/record-edit-modes.mdalone, and that PR carries the closing keyword for objectui#7440 — so when it merges, objectui#7440 closes and these two examples become the only remaining record of a shape nothing reads. Hence a card of their own.The shape that works (derived from the code, verified by rendering)
packages/components/src/renderers/action/action-button.tsx:160,173forwardstype: schema.actionTypeandparams: schema.params; it never readsschema.action.ActionRunner.execute(packages/core/src/actions/ActionRunner.ts:972,1064) resolvesaction.type || action.actionType || action.nameand dispatches onhandlers.has(...). So:{ "type": "action:button", "label": "New Account", "actionType": "navigate_create", "params": { "objectName": "account" } }Rendered through
SchemaRendererwithnavigate_createregistered the wayAppContent.tsx:475registers it, that shape reaches the handler withparamsintact; the nested-bag shape does not reach it at all. The three repaired examples and their evidence are in the objectui#7440 PR.navigate_editexample needs more than a mechanical rewrite — see the sibling finding onparamsnever being template-evaluated. A rewrite that keeps"recordId": "${record.id}"publishes a second silently-inert example.Dedup
Scanned the 191 open issues carrying
findingordocumentation(repo-scoped REST listings, paged to exhaustion). Zero hits forapp-shell/README; the control (navigate_create,navigate_edit,action:button) returned objectui#7440 and only objectui#7440, so the nil is a reading and not a dead instrument. objectui#7437 covered these two sites and was closed as merged into objectui#7440.Generated by Claude Code