- Per-task cost spike auto-pause toggle (opt-in)Closes the named rev-55 next-sprint candidate. New `workspace.taskCostSpikeAction` column controls what happens when a task is detected as spiking by the rev-55 detector: `none`/null (rev-55 alarm-only default โ no behavioural change) or `pause` (rev-56 auto-pause โ the pulse engine's `selectNextTask` filter skips spiking tasks until the operator explicitly acknowledges). Mirrors the rev-49 stale-task auto-archive opt-in pattern + the rev-20 workspace-level cost-cap auto-pause pattern at the per-task axis. Closes the descriptive โ defensive loop on the per-task cost story: rev 51 cumulative + rev 54 trajectory + rev 55 spike alarm + rev 56 defensive auto-action. Operators with a runaway task that's eating the budget no longer have to manually intervene โ opt-in once and the queue self-heals.
- Per-task cost spike acknowledgment (POST /api/tasks/{id}/cost-spike-ack + v1 mirror)New `task.costSpikeAckedAt` timestamp + `acknowledgeTaskCostSpike()` helper. The rev-55 detector now skips tasks acked in the current workspace-TZ day, so the โก pill, daily Slack push, digest section, and rev-56 auto-pause filter all agree on what 'acked' means. Distinct from rev-23 pin (permanent โ exempts forever) and rev-50 renew (resets staleness). Ack = 'I see this spike, stop alarming today, but the underlying spike is real and I want to keep watching for tomorrow.' Mirrored on `/api/v1/tasks/{id}/cost-spike-ack` so the cost-axis MCP cluster now closes the detect โ triage โ ack โ reconfigure loop without a single dashboard-only path.
- Inline 'Ack' button beside the rev-55 โก pillNew `CostSpikeAckButton` mounts directly beside the rev-55 โก pill on every spiking active-work card. One click POSTs `/api/tasks/{id}/cost-spike-ack` and refreshes โ the pill disappears, the auto-pause filter (when enabled) releases the task, the daily Slack push and digest section both skip it. Visual weight is deliberately quieter than the pill itself (no background, no pulsing) โ the pill is the alarm; the button is the answer. The active-work card pill row now reads at four levels: cumulative spend (rev 51) โ trajectory shape (rev 54) โ spike alarm (rev 55) โ operator response (rev 56) โ all in the same line.
- GET/PUT /api/v1/workspace/cost-spike-config + integrations panel UIBearer-auth endpoint reads/writes `workspace.taskCostSpikeAction` so MCP hosts can flip the workspace's cost-spike behaviour programmatically. Indexed in the /api/v1 self-describing index. Plus a new 'Per-task cost spike action' section in the integrations panel (alongside the rev-49 stale-task auto-archive section under 'Cost guardrails'/'Queue hygiene') with two buttons: Alarm only (default) and Auto-pause spiking tasks. The cost-axis story now has TWO operator control surfaces on the protocol-bound side (cost-spike-config + auto-archive-config) plus ONE counter-action surface (cost-spike-ack). Closes the named rev-55 follow-up; the cost-axis MCP cluster is six axes deep + two control surfaces + one ack surface โ the upcoming MCP server has nothing left to design on the cost surface.