teknium1
ba65ce668a
fix(kanban): review handoff rollback discards staged copies; no double upload
...
Two review follow-ups on request_review's artifact staging.
Staging copies files into attachments/<tid>/ inside the write txn, but
the copy is a filesystem side effect the rollback cannot undo. When a
later step in the same txn raised (anything other than
ArtifactPreservationError, e.g. run bookkeeping), the task correctly
stayed `running` but the copy leaked, so the retry staged `a_1.txt`
beside an orphan `a.txt`. _stage_completion_artifacts now returns the
copies and request_review discards them on any exception around the
txn, reusing the same unlink/rmdir logic the staging helper already
had. complete_task is left alone: its txn has a different shape (the
early-return paths and acceptance recording) and its cleanup runs the
scratch workspace anyway, so it was not the identical one-line change.
The notifier unions payload['artifacts'] with paths parsed from the
summary prose and dedupes by full path only. For `review_requested` the
scratch original still exists (the reviewer's completion is what
deletes it), so a summary naming the original uploaded the file twice:
staged copy and original. Prose-parsed paths whose basename matches a
staged artifact are now skipped; `completed` delivery is unaffected in
practice because there the original is already gone by delivery time.
2026-09-13 14:37:17 -07:00
..
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:19:48 -07:00
2026-09-13 05:21:02 -07:00
2026-09-13 05:07:11 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 22:07:41 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 20:43:42 -07:00
2026-09-12 08:25:49 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 08:23:58 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 08:24:52 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:07:11 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 08:25:36 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:09:06 -07:00
2026-09-12 16:17:04 -07:00
2026-09-13 05:07:50 -07:00
2026-09-12 08:24:29 -07:00
2026-09-13 19:30:48 +05:30
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 06:50:57 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:09:06 -07:00
2026-09-12 08:24:11 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 08:25:54 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:07:50 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 21:39:10 -07:00
2026-09-12 08:23:44 -07:00
2026-09-13 20:06:00 +05:30
2026-09-12 12:52:19 -07:00
2026-09-13 05:08:20 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:07:11 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 21:27:21 -07:00
2026-09-13 14:37:17 -07:00
2026-09-13 05:09:06 -07:00
2026-09-13 14:37:17 -07:00
2026-09-12 12:32:55 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 08:23:44 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:09:06 -07:00
2026-09-12 08:41:00 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 08:34:43 -07:00
2026-09-12 08:34:43 -07:00
2026-09-12 20:49:18 -07:00
2026-09-12 08:34:43 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:21:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 14:05:36 -07:00
2026-09-12 08:24:42 -07:00
2026-09-12 14:05:36 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 14:05:36 -07:00
2026-09-13 05:21:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 08:24:26 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 07:57:13 -07:00
2026-09-12 08:26:48 -07:00
2026-09-12 12:52:19 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:21:02 -07:00
2026-09-12 08:27:53 -07:00
2026-09-13 14:35:32 -07:00
2026-09-13 14:33:11 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:07:11 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:40:44 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 14:35:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 08:47:04 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:09:06 -07:00
2026-09-12 12:52:19 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:08:29 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:21:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-12 12:32:55 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:08:20 -07:00
2026-09-13 05:08:20 -07:00
2026-09-12 08:47:21 -07:00
2026-09-13 05:08:20 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 19:05:28 +05:30
2026-09-12 21:00:55 -07:00
2026-09-12 08:49:16 -07:00
2026-09-13 05:21:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:21:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 05:09:06 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00
2026-09-13 09:18:02 -07:00