FN-8685: add durable cross-process task deletion consumers
Deliver durable, replay-safe cross-process task deletion observation.
- Add PostgreSQL lifecycle consumer cursors, leases, acknowledgements, retention, and recovery.
- Start named consumers in dashboard, serve, and engine runtime paths.
- Preserve delete integration metadata while suppressing replayed GitHub and GitLab side effects.
- Cover outbox identity, observed delivery, fencing, and reconciliation behavior.
Files changed:
...fn-8685-cross-process-task-deleted-observers.md | 7 +
.../fn-8685-task-deleted-outbox-consumers.md | 7 +
docs/architecture.md | 8 +-
...tgres-cross-process-task-deleted-observation.md | 8 +-
docs/storage.md | 10 +-
packages/cli/src/commands/dashboard.ts | 9 +-
packages/cli/src/commands/serve.ts | 9 +-
packages/cli/src/project-context.ts | 9 +-
.../task-deleted-outbox-consumer.pg.test.ts | 157 ++++++++
...-deleted-observed-dispatch-side-effects.test.ts | 36 ++
.../task-lifecycle-consumer-identity.test.ts | 22 ++
packages/core/src/index.ts | 11 +
.../0041_fn_8685_task_lifecycle_consumers.sql | 88 +++++
packages/core/src/postgres/schema-applier.ts | 16 +-
packages/core/src/postgres/schema/project.ts | 45 +++
packages/core/src/postgres/startup-factory.ts | 4 +
packages/core/src/store.ts | 54 ++-
.../__tests__/lifecycle-outbox-writer.test.ts | 4 +-
.../core/src/task-store/archive-lifecycle-2.ts | 1 +
packages/core/src/task-store/lifecycle-ops.ts | 13 +-
packages/core/src/task-store/lifecycle-outbox.ts | 2 +
packages/core/src/task-store/project-store-ops.ts | 4 +-
.../src/task-store/task-deleted-outbox-consumer.ts | 333 +++++++++++++++++
.../task-store/task-lifecycle-consumer-identity.ts | 32 ++
.../task-store/task-lifecycle-consumer-registry.ts | 396 +++++++++++++++++++++
.../task-store/task-lifecycle-event-retention.ts | 104 ++++++
packages/core/src/task-store/task-mutation-ops.ts | 1 +
packages/dashboard/src/github-tracking-state.ts | 12 +-
packages/dashboard/src/gitlab-delete-close.ts | 3 +
packages/dashboard/src/gitlab-split-close.ts | 7 +-
packages/dashboard/src/project-store-resolver.ts | 9 +-
packages/engine/src/project-manager.ts | 4 +-
packages/engine/src/project-runtime.ts | 2 +-
packages/engine/src/runtimes/in-process-runtime.ts | 17 +-
packages/engine/src/self-healing.ts | 27 ++
35 files changed, 1439 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-8685
Fusion-Task-Lineage: 63eca9ac-d2af-44b0-ba79-388a950148d3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>