FN-8684: persist task deletion events transactionally
Persist task-deletion lifecycle events through a transactional PostgreSQL outbox.
- Add the task lifecycle outbox schema, migration, and atomic writer.
- Route deletion notice persistence through the transaction and preserve non-blocking cleanup.
- Cover outbox behavior, schema installation, and caller attribution with tests.
Files changed:
.changeset/fn-8684-task-deleted-outbox-writer.md | 7 +
docs/architecture.md | 6 +
docs/storage.md | 6 +
.../src/__tests__/postgres/schema-applier.test.ts | 82 ++++++++-
.../task-delete-caller-attribution.test.ts | 12 +-
.../task-delete-nonblocking-cleanup.test.ts | 13 +-
.../core/src/__tests__/task-delete-notice.test.ts | 7 +-
.../0040_fn_8684_task_lifecycle_outbox.sql | 44 +++++
packages/core/src/postgres/schema-applier.ts | 15 +-
packages/core/src/postgres/schema/project.ts | 27 +++
.../__tests__/lifecycle-outbox-writer.test.ts | 201 +++++++++++++++++++++
.../core/src/task-store/archive-lifecycle-2.ts | 93 ++++++++--
packages/core/src/task-store/async-persistence.ts | 26 ++-
packages/core/src/task-store/lifecycle-outbox.ts | 46 +++++
14 files changed, 557 insertions(+), 28 deletions(-)
Fusion-Task-Id: FN-8684
Fusion-Task-Lineage: 1869d221-2d8a-48fb-b245-9cd1af56bda0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>