# Requests board — task drawer, history, and actions

outcome: clicking a task shows everything known about it — full history with clickable agents/sessions — and the owner can dispatch, edit, stop, or kill work from the board; proof links always open real proof.
status: ACTIVE — factory run launched 2026-08-15 against this plan.
source request: owner 2026-08-15 /brainstorm (drawer + clickable history + dispatch button + right-click Edit/View/Delete/Stop/Kill + real proof links; /plans-style drawer mockup is the approved interaction pattern).
design spec: docs/specs/2026-08-15-requests-drawer-actions-design.md — slices D1–D5, seams, decisions, and the owner's verbatim anchors live there; this plan tracks execution.
depends on: live status registry (docs/plans/2026-08-15-live-status-registry.md) — receipt_trail is the drawer's data source. If its factory run has not landed L1 yet, build D1 against the L1 schema in the registry spec and land dark until the table exists.

## Execution

- [ ] D1 drawer with full history (trail-fed activity story; honest empty state)
- [ ] D2 clickable actors → session/agent page (trail meta carries session_id; dead sessions render honestly)
- [ ] D3 proof is real (proof_url only when real; registry stamps backfill; no stub links)
- [ ] D4 Dispatch button (collector endpoint → detached factory run on the cluster; card flips in seconds; launch failure visible)
- [ ] D6 per-task routing: editable priority + account/CLI/model on pending rows; Dispatch and lane pickup honor it verbatim; unsatisfiable routing fails visibly (owner ask 2026-08-15, 5th re-ask of the editing theme — do not drop)
- [ ] D5 right-click menu Edit/View/Delete(archive)/Stop(graceful)/Kill(confirmed, pid-verified) with state-gated rendering

Each slice: gates green (`pnpm --filter web test|typecheck|build`, collector `bun test`), lands via ship.sh submit, deploys via the watcher, and its named owner-visible evidence is proven live before the next starts. UI: Astryx primitives for new components; od-ui-dev skill rules; owner language on card faces.

- [ ] R1 live progress tail (second factory run — first R slice, owner's pick)
- [ ] R2 deliveries timeline strip (needs L2 deployed stamps live)
- [ ] R3 answer box on blocked cards + edge-triggered notify
- [ ] R4 "Mark not what I meant" reopen-with-history

constraints: Kill path must never touch a session the ledger cannot pid-verify as the row's claimed worker; human terminal scopes untouchable. Delete = archive, never hard delete. All actions journal trail entries.

current receipt: plan authored + spec landed together; factory launched from wt/requests-drawer-spec.
next executable action: factory run executes D1; when D1–D6 complete, launch the second factory run for R1–R4 (orchestrator holds the trigger — no owner gate).
