You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Spin-off from the published-skills factual sweep (flight ⑩, card #13841 / program #13658). Found by the "file the spec-side twin" rule: the skill text and this docblock carried the same false fact, and correcting only the skill leaves it published one surface over.
The drift
packages/spec/src/ui/action.zod.ts (line 770, the JSDoc on ActionAiSchema.requiresConfirmation):
Override confirmation for AI calls. When unset, the bridge defaults to true for actions that look destructive (confirmText set, mode:'delete', or variant:'danger').
The implementation stopped reading confirmText when #7828 landed (maintainer ruling, Option A). packages/runtime/src/action-execution.ts:
Executed against the built tree this hour: actionLooksDestructive with confirmText alone returns false; mode: 'delete' and variant: 'danger' each return true. packages/runtime/src/action-execution-destructive.test.ts pins both directions.
Why it matters beyond a stale comment
It is a SAFETY-shaped claim. An author reading the schema believes a confirmText action will be routed through the HITL confirmation path. It will not.
Two other in-repo carriers already state the corrected rule (packages/mcp/src/mcp-server-runtime.ts line 134, and the runtime pin test's header), so this is a single-site drift, not a repo-wide one.
Fix
Rewrite the docblock to the post-#7828 signal set: mode: 'delete' / variant: 'danger' are the declared signals; confirmText is not one; ai.requiresConfirmation overrides either way. Byte-neutral-or-shrinking. Nothing about .describe() changes — the published describe string is already neutral ("Override HITL confirmation for AI invocations."), so the generated reference page at content/docs/references/ui/action.mdx is unaffected; this is the source-reader surface only.
Historical context, not to be rewritten: docs/adr/0011-actions-as-ai-tools.md describes actionRequiresApproval with the pre-#7828 heuristic. ADRs record the decision of their day.
Spin-off from the published-skills factual sweep (flight ⑩, card #13841 / program #13658). Found by the "file the spec-side twin" rule: the skill text and this docblock carried the same false fact, and correcting only the skill leaves it published one surface over.
The drift
packages/spec/src/ui/action.zod.ts(line 770, the JSDoc onActionAiSchema.requiresConfirmation):The implementation stopped reading
confirmTextwhen #7828 landed (maintainer ruling, Option A).packages/runtime/src/action-execution.ts:Executed against the built tree this hour:
actionLooksDestructivewithconfirmTextalone returnsfalse;mode: 'delete'andvariant: 'danger'each returntrue.packages/runtime/src/action-execution-destructive.test.tspins both directions.Why it matters beyond a stale comment
confirmTextaction will be routed through the HITL confirmation path. It will not.actionLooksDestructivekeys destructiveness offconfirmText— the exact signal #7278/#7309 are migrating away, and 6 of 14 actions flip #7828 rationale is exactly this class:confirmTextis UI dialog copy that approvals:sys_approval_request.approval_reject/approval_recalldeclare bothconfirmTextandparams, so one decision opens two sequential dialogs #7278/platform-objects: 16 more actions declare bothconfirmTextandparams, so one click opens two sequential dialogs (same shape as #7278) #7309 are actively migrating ontodescription, so 6 of 14 identity actions flipped classification the moment theirconfirmTextwas removed. A docblock that keeps teaching it re-seeds the reasoning the ruling retired.packages/mcp/src/mcp-server-runtime.tsline 134, and the runtime pin test's header), so this is a single-site drift, not a repo-wide one.Fix
Rewrite the docblock to the post-#7828 signal set:
mode: 'delete'/variant: 'danger'are the declared signals;confirmTextis not one;ai.requiresConfirmationoverrides either way. Byte-neutral-or-shrinking. Nothing about.describe()changes — the published describe string is already neutral ("Override HITL confirmation for AI invocations."), so the generated reference page atcontent/docs/references/ui/action.mdxis unaffected; this is the source-reader surface only.Historical context, not to be rewritten:
docs/adr/0011-actions-as-ai-tools.mddescribesactionRequiresApprovalwith the pre-#7828 heuristic. ADRs record the decision of their day.Filed unassigned for triage.
Generated by Claude Code