Status: accepted for specification; implementation pending.
Where should durable task graph state live, given the existing Rust/WebAssembly Memory Helper already maintains project-scoped checklists, todos, notes, and task handoffs?
Extend the existing Memory Helper subsystem to own durable TLG run state. Do not introduce an unrelated task database or leave the Coding Worker JSON task-run store as a competing source of truth.
The Rust transition kernel will validate task-run and node-state transitions, bounded attempts and feedback, reducer application, and compare-and-swap run versions. The TypeScript persistence wrapper will store task runs, checkpoints, and an append-only hash-chained event ledger in SQLite.
Existing checklists and todos remain the user-visible task projection. A task run links to one checklist, and graph transitions update linked checklist items through the governed task-state boundary.
The Memory Helper already provides trusted project scope, deterministic Rust validation, SQLite durability, restart hydration, task identifiers, nested items, statuses, and shared access from the main agent and Coding Worker. Building around it preserves one durable task model for agents and the TUI.
plan-implementationimplement-core-contractsimplement-memory-retrievalimplement-agent-runtimeimplement-sim-one-tui-work-paneintegrate-and-repairverify-memory-smokereview-architecture-securityspecify-task-lifecycle-architectureverify-release-reconciliation-specificationsRevisit if measured WASM transition overhead or SQLite contention prevents the required task throughput, while preserving one canonical task authority and the same trust boundary.