Why: Reconcile interrupted dispatch without spending another model request.
Evidence: Core package tests pass locally; integration exercises acceptance and recovery.
Impact: Add one optional persisted run identifier.
Refs: feature/workbench-flow-completion
Why: Retain full results and exact answers across persistence and reload.
Evidence: go test ./... passed locally, including full-tail and legacy JSON coverage.
Impact: Add contract roundtrip tests and a guarded dispatching state.
Refs: feature/workbench-flow-completion
Why: Keep background results and optional decisions outside the foreground conversation lock.
Evidence: Core package tests and combination checks are recorded in the Dev task.
Impact: Add an optional backward-compatible work card payload without a database migration.
Refs: feature/workbench-flow-completion
Why: Contract foundation for the inbox/command-bus/workspaces phase (proposal
D28/D30): ActivityCard as the first-class state object behind the right-rail
inbox, card.* stream events, inline-confirm anchoring (anchorMessageId +
blocked/blockReason) on HITL, seven new UI schema vocabularies, plugin
provides.commands/workspaces, workflow card step and workspace declarations.
Evidence: go vet clean; conformance goldens regenerated and verified — new
activity_card / hitl_card_blocked / event_card_created / event_card_resolved /
ui_vocabularies samples plus extended plugin_manifest; CardStatus.Terminal
helper unit-covered via build; ts/types.ts mirrors all additions.
Impact: Additive only (omitempty fields, new types, new event types) — existing
consumers ignore unknown values per forward-compat rule; vocabulary spec types
carry a Spec suffix to avoid const-name collisions.
Refs: modules/documents docs/proposals/2026-09-30-ui-inbox-command-workspace.md