title: Task operations lifecycle scenario: id: task-operations surface: automation category: automation.background-tasks-and-flows coverage: primary: - automation.task-list-show-cancel - automation.task-notifications - automation.task-audit-and-maintenance - automation.chat-task-board - automation.task-pressure-status objective: Verify persisted task state crosses the current operator, chat, notification, audit, maintenance, and cancellation boundaries. successCriteria: - Task records survive a canonical SQLite registry reload before operator inspection. - The task CLI lists pressure, shows detail, updates notification policy, and cancels a live CLI task. - The authorized /tasks command projects active session tasks from the production task registry. - A state-change notification reaches the owner session event queue and its policy and progress survive reload. - Audit identifies stale task state and maintenance reconciles and prunes the persisted records it reports. docsRefs: - docs/cli/tasks.md - docs/automation/tasks.md codeRefs: - src/tasks/task-registry.ts - src/tasks/task-registry.store.sqlite.ts - src/tasks/task-registry-delivery.ts - src/tasks/task-registry.audit.ts - src/tasks/task-registry.maintenance.ts - src/commands/tasks.ts - src/auto-reply/reply/commands-tasks.ts - src/tasks/task-operations.e2e.test.ts execution: kind: vitest path: src/tasks/task-operations.e2e.test.ts summary: Run the SQLite-backed task lifecycle through operator commands, chat projection, notifications, audit, maintenance, and cancellation.