fix(tasks): clean orphaned parent-owned acp sessions

This commit is contained in:
Peter Steinberger
2026-04-29 04:35:00 +01:00
parent d130a77a3b
commit 5a9c0efa54
6 changed files with 209 additions and 7 deletions

View File

@@ -318,7 +318,7 @@ A sweeper runs every **60 seconds** and handles four things:
Checks whether active tasks still have authoritative runtime backing. ACP/subagent tasks use child-session state, cron tasks use active-job ownership, and chat-backed CLI tasks use the owning run context. If that backing state is gone for more than 5 minutes, the task is marked `lost`.
</Step>
<Step title="ACP session repair">
Closes terminal parent-owned one-shot ACP sessions, and closes stale terminal persistent ACP sessions only when no active conversation binding remains.
Closes terminal or orphaned parent-owned one-shot ACP sessions, and closes stale terminal or orphaned persistent ACP sessions only when no active conversation binding remains.
</Step>
<Step title="Cleanup stamping">
Sets a `cleanupAfter` timestamp on terminal tasks (endedAt + 7 days). During retention, lost tasks still appear in audit as warnings; after `cleanupAfter` expires or when cleanup metadata is missing, they are errors.