Files
oh-my-pi/packages
roboomp 57732e9dcd fix(coding-agent): detach hard-aborted refs so ensureLive can't route into a dead session
Preserving aborted refs on dispose exposed a latent invariant break: the
executor's hard-abort path (finalizeSubagentLifecycle) set status `aborted`
and disposed the session without detaching it. With the ref now retained, it
kept a dangling pointer to the disposed session, and ensureLive returns any
non-null ref.session before its revivability check — so hub focus / transcript
chat could route into a dead session.

- finalizeSubagentLifecycle: detach the session before disposing on the
  terminal hard-abort path, upholding the AgentRef invariant (session === null
  when aborted).
- release(tombstone): detach before dispose too (capture the live session
  first), same invariant.
- unregisterUnlessParked: preserve `aborted` refs only when already detached;
  an aborted ref still holding a live session is a bug and is unregistered
  rather than kept reachable.
- Regression test now asserts ensureLive rejects a tombstoned id as terminal.

Fixes #7250
2026-08-01 09:42:41 +00:00
..
2026-08-01 08:35:39 +02:00
2026-08-01 08:35:39 +02:00
2026-08-01 08:35:39 +02:00
2026-07-31 20:56:49 +02:00
2026-08-01 08:35:39 +02:00
2026-08-01 08:35:39 +02:00
2026-08-01 08:35:39 +02:00
2026-08-01 08:35:39 +02:00
2026-08-01 08:35:39 +02:00
2026-08-01 08:35:39 +02:00
2026-08-01 08:35:39 +02:00
2026-08-01 08:35:39 +02:00