Brennan Benson
24a2accc3c
fix(hibernation): reap restored subagent rows with no live agent process ( #11219 )
...
* fix(hibernation): reap restored subagent rows with no live agent process
A pane whose Claude session had a subagent in flight can be locked out of
agent hibernation for good. A PTY that dies while Orca is down never runs
the teardown that clears pane state, so hydrate rebuilds a subagent roster
that nothing can retire: the existing reap needs the parent to emit a
complete `background_tasks` inventory, and a parent that went idle before
the restart never emits one. The restored row keeps gating the pane
'working', and hibernation only accepts 'done'.
Observed locally: six panes parked at SubagentStop in state 'working' for
17 to 145 hours, each still holding a working child row.
Adds a second reap path. Hydrate seeds are marked `restoredFromSnapshot`,
cleared by any live lifecycle event or an id-exact running inventory entry.
One post-restore sweep drops the rows still unconfirmed when the pane's PTY
is absent from the live local inventory, then re-derives the child-gated
'working' to 'done'.
The scan is local-only by construction: panes with a relay connection id are
skipped and SSH-scoped PTY ids resolve as live, since a remote agent runs on
the far host and could never appear in a local listing. An unreadable
inventory is not evidence that anything exited, so it is a no-op. Panes that
have reported to this runtime are left alone.
`stateStartedAt` and `stateHistory` are untouched, so a draft typed while
the pane was working still blocks hibernation.
* fix(hibernation): prove local ownership before restored reap
* fix(hibernation): require authoritative restored PTY absence
* fix(hibernation): probe restored PTY liveness authoritatively
* fix(hibernation): restart idle window after restored reap
* fix(hibernation): type restored reconciliation timing
* fix(hibernation): respect worktree host ownership
* fix(hibernation): preserve same-id restored PTY rebinds
* fix(hibernation): fence batched restored PTY probes
2026-07-29 16:30:44 -07:00
..
2026-07-29 16:30:44 -07:00
2026-07-28 19:58:49 -07:00
2026-07-23 18:35:31 -07:00
2026-07-27 15:41:23 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-28 14:24:15 -07:00
2026-07-22 11:42:34 -07:00
2026-07-27 20:54:02 -07:00
2026-07-27 12:06:23 -07:00
2026-07-29 15:23:06 -07:00
2026-07-28 15:18:07 -07:00
2026-07-27 19:47:07 -07:00
2026-07-23 18:35:31 -07:00
2026-07-27 12:06:23 -07:00
2026-07-13 00:26:22 -07:00
2026-07-23 18:35:31 -07:00
2026-07-13 00:26:22 -07:00
2026-07-26 14:18:21 -07:00
2026-07-27 15:41:23 -07:00
2026-07-29 16:30:44 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-13 00:26:22 -07:00
2026-07-23 18:35:31 -07:00
2026-07-20 03:18:28 -07:00
2026-07-23 18:35:31 -07:00
2026-07-28 14:04:41 -07:00
2026-07-23 18:35:31 -07:00
2026-07-27 20:54:02 -07:00
2026-07-29 00:56:05 -07:00
2026-07-27 15:41:23 -07:00
2026-07-10 00:11:27 -07:00
2026-07-29 15:39:34 -07:00
2026-07-23 18:35:31 -07:00
2026-07-27 01:14:33 -07:00
2026-07-29 11:31:35 -07:00
2026-07-28 17:38:31 -07:00
2026-07-27 01:14:33 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-26 20:31:58 -07:00
2026-07-27 16:36:39 -07:00
2026-07-26 19:46:29 -07:00
2026-07-27 16:36:39 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-27 12:31:37 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-05-30 02:46:28 -07:00
2026-07-28 19:58:49 -07:00
2026-07-28 19:58:49 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 19:05:22 -07:00
2026-07-28 17:49:20 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-29 16:30:44 -07:00
2026-07-29 11:31:35 -07:00
2026-07-29 15:53:42 -07:00
2026-07-29 11:31:35 -07:00
2026-07-21 18:23:20 -07:00
2026-07-29 16:11:53 -07:00
2026-07-29 00:56:05 -07:00
2026-07-26 13:14:57 -07:00
2026-05-30 13:26:48 -07:00
2026-07-29 11:31:35 -07:00
2026-06-29 22:38:29 -07:00
2026-07-29 16:30:44 -07:00
2026-07-23 18:35:31 -07:00
2026-07-20 03:18:24 -07:00
2026-07-25 19:31:44 -07:00
2026-07-24 19:54:25 -07:00
2026-07-23 18:35:31 -07:00
2026-07-29 11:31:35 -07:00
2026-07-20 01:14:17 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-06-17 16:20:37 -07:00
2026-06-17 16:20:37 -07:00
2026-07-23 06:22:56 -07:00
2026-07-23 06:22:56 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-06-22 18:01:37 -07:00
2026-06-22 18:01:37 -07:00
2026-07-17 15:27:39 -07:00
2026-07-17 15:27:39 -07:00
2026-07-24 19:54:25 -07:00
2026-07-24 19:54:25 -07:00
2026-07-26 00:13:48 -07:00
2026-07-26 00:13:48 -07:00
2026-07-26 00:13:48 -07:00
2026-06-30 11:31:55 -07:00
2026-06-30 11:31:55 -07:00
2026-07-27 01:14:33 -07:00
2026-07-27 01:14:33 -07:00
2026-06-30 11:31:55 -07:00
2026-07-22 17:17:59 -07:00
2026-07-22 17:17:59 -07:00
2026-05-30 15:26:11 -04:00
2026-06-29 22:38:29 -07:00
2026-07-16 23:10:40 -07:00
2026-06-19 17:14:55 -07:00
2026-06-29 22:38:29 -07:00
2026-07-28 14:04:41 -07:00
2026-07-28 14:04:41 -07:00
2026-07-29 16:30:44 -07:00
2026-07-23 18:35:31 -07:00
2026-05-30 09:04:52 -07:00
2026-05-30 09:04:52 -07:00
2026-07-18 23:01:29 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-13 01:10:38 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-10 17:52:50 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-07-06 16:43:05 -07:00
2026-07-06 16:43:05 -07:00
2026-05-30 09:04:52 -07:00
2026-05-30 09:04:52 -07:00
2026-07-28 16:51:59 -07:00
2026-07-28 16:51:59 -07:00
2026-07-28 15:34:52 -07:00
2026-07-28 15:34:52 -07:00
2026-07-27 01:14:33 -07:00
2026-07-20 19:47:58 -07:00
2026-07-29 11:31:35 -07:00
2026-07-29 11:31:35 -07:00
2026-06-24 00:17:49 -07:00
2026-06-24 00:17:49 -07:00
2026-06-17 16:08:14 -07:00
2026-07-13 01:10:38 -07:00
2026-07-25 22:28:07 -07:00
2026-07-25 22:28:07 -07:00
2026-06-24 21:07:15 -04:00
2026-06-29 22:38:29 -07:00
2026-07-23 18:03:43 -07:00
2026-07-23 18:03:43 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-25 04:04:19 -07:00
2026-07-25 04:04:19 -07:00
2026-07-25 04:04:19 -07:00
2026-07-25 04:04:19 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-26 02:32:05 -07:00
2026-07-26 02:32:05 -07:00
2026-07-26 02:32:05 -07:00
2026-07-26 02:32:05 -07:00
2026-06-29 22:38:29 -07:00
2026-07-09 16:24:20 -07:00
2026-07-09 16:24:20 -07:00
2026-07-20 14:34:53 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-06-21 18:51:44 -07:00
2026-07-14 01:55:04 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-05-21 21:52:26 -07:00
2026-05-21 21:52:26 -07:00
2026-05-21 21:52:26 -07:00
2026-05-21 21:52:26 -07:00
2026-07-06 20:21:58 -07:00
2026-07-06 20:21:58 -07:00
2026-07-25 03:11:59 -07:00
2026-07-25 03:11:59 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-09 02:13:13 -07:00
2026-07-11 21:03:04 -07:00
2026-07-11 21:03:04 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-27 16:36:39 -07:00
2026-07-27 16:36:39 -07:00
2026-07-17 15:27:39 -07:00
2026-07-17 15:27:39 -07:00
2026-07-09 23:00:01 -07:00
2026-05-30 13:09:17 -07:00
2026-07-23 18:35:31 -07:00
2026-07-28 19:58:58 -07:00
2026-07-28 19:58:58 -07:00
2026-07-28 19:58:58 -07:00
2026-07-28 19:58:58 -07:00
2026-07-28 19:58:58 -07:00
2026-05-26 20:56:11 -07:00
2026-07-22 18:52:37 -07:00
2026-07-09 23:00:01 -07:00
2026-07-28 19:58:58 -07:00
2026-07-28 19:58:58 -07:00
2026-05-31 10:11:51 -07:00
2026-05-31 10:11:51 -07:00
2026-06-29 22:38:29 -07:00
2026-07-11 02:03:14 -07:00
2026-07-27 21:43:41 -07:00
2026-07-27 21:43:41 -07:00
2026-07-24 00:27:40 -07:00
2026-07-24 00:27:40 -07:00
2026-07-25 22:28:07 -07:00
2026-07-25 22:28:07 -07:00
2026-07-27 18:50:52 -07:00
2026-07-27 18:50:52 -07:00
2026-07-27 18:50:52 -07:00
2026-07-27 18:50:52 -07:00
2026-07-11 02:05:58 -07:00
2026-07-04 21:31:51 -07:00
2026-07-04 21:31:51 -07:00
2026-06-29 18:02:10 -07:00
2026-06-03 12:25:54 -07:00
2026-06-03 12:25:54 -07:00
2026-07-23 18:35:31 -07:00
2026-07-02 11:24:07 -07:00
2026-07-23 18:35:31 -07:00
2026-07-26 00:41:03 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-05-29 16:06:33 -07:00
2026-07-19 17:31:34 -07:00
2026-07-14 15:23:06 -07:00
2026-06-29 00:32:36 -07:00
2026-06-29 22:38:29 -07:00
2026-07-12 23:19:15 -07:00
2026-07-19 16:04:05 -07:00