Problem (surfaced by the pir-1428 builder while mirroring gateIconFor, 2026-08-12)
phaseArtifactVerb (apps/streamdeck/src/actions.ts:229-239) maps gates spec-approval, plan-approval, dev-approval, pr - but not verify-approval, which the VS Code sidebar's gate vocabulary knows (gateIconFor in apps/vscode/src/views/builder-row.ts maps it to the verified codicon). A builder blocked at verify-approval returns undefined, so the Builder Action Automatic press opens a terminal instead of the review artifact, and the phase-aware dial mode resolves through the same resolver.
Fix
Add verify-approval to the gate branch, returning view-diff (same as dev-approval/pr - the human is reviewing completed work). One line plus a test alongside the existing gate cases.
Protocol
BUGFIX (isolated one-line mapping gap with existing test patterns; no hardware gate needed - the resolver is fully unit-tested). Sequence after #1428 merges to avoid actions.ts churn.
Problem (surfaced by the pir-1428 builder while mirroring gateIconFor, 2026-08-12)
phaseArtifactVerb(apps/streamdeck/src/actions.ts:229-239) maps gatesspec-approval,plan-approval,dev-approval,pr- but notverify-approval, which the VS Code sidebar's gate vocabulary knows (gateIconForinapps/vscode/src/views/builder-row.tsmaps it to theverifiedcodicon). A builder blocked atverify-approvalreturnsundefined, so the Builder Action Automatic press opens a terminal instead of the review artifact, and the phase-aware dial mode resolves through the same resolver.Fix
Add
verify-approvalto the gate branch, returningview-diff(same asdev-approval/pr- the human is reviewing completed work). One line plus a test alongside the existing gate cases.Protocol
BUGFIX (isolated one-line mapping gap with existing test patterns; no hardware gate needed - the resolver is fully unit-tested). Sequence after #1428 merges to avoid actions.ts churn.