docs(FN-5135): document dashboard soft-delete handling invariant

Fusion-Task-Id: FN-5135
Fusion-Task-Lineage: 182c496e-4e3a-4353-be53-86dd4cc5ba19
This commit is contained in:
Fusion (runfusion.ai)
2026-05-19 07:32:33 -07:00
committed by gsxdsm
parent 00518179eb
commit b6b1af240a
2 changed files with 7 additions and 1 deletions

View File

@@ -15,6 +15,12 @@
- Archived-task flows (`archiveTask`, archived cleanup/migration) still hard-delete from the active `tasks` table after copying to cold storage (`archive.db`).
- ID reservation is unchanged: soft-deleted IDs remain reserved. `distributed-task-id` and `task-id-integrity` intentionally scan all task rows (including soft-deleted rows), and must not filter on `deletedAt`.
### Dashboard delete-event handling (FN-5135)
- Dashboard clients treat any SSE payload with `deletedAt != null` (`task:created`, `task:updated`, `task:moved`, `task:merged`) as a delete-equivalent and remove/suppress that task locally.
- SSE slim serialization (`stripTaskListHeavyFields`) must preserve `deletedAt`; dropping it can resurrect soft-deleted cards on live boards.
- Client-side SWR cache hydration also filters `deletedAt` rows before normalization as defense-in-depth; REST slim `listTasks` remains server-filtered with `deletedAt IS NULL`.
### Lineage children (FN-5129)
- `deleteTask` and `archiveTask` now enforce lineage integrity for `sourceParentTaskId` links.