mrshu
19b0ddce40
fix(process): correct detached crash recovery state
...
Previously crash recovery recreated detached sessions as if they were
fully managed, so polls and kills could lie about liveness and the
checkpoint could forget recovered jobs after the next restart.
This commit refreshes recovered host-backed sessions from real PID
state, keeps checkpoint data durable, and preserves notify watcher
metadata while treating sandbox-only PIDs as non-recoverable.
- Persist `pid_scope` in `tools/process_registry.py` and skip
recovering sandbox-backed entries without a host-visible PID handle
- Refresh detached sessions on access so `get`/`poll`/`wait` and active
session queries observe exited processes instead of hanging forever
- Allow recovered host PIDs to be terminated honestly and requeue
`notify_on_complete` watchers during checkpoint recovery
- Add regression tests for durable checkpoints, detached exit/kill
behavior, sandbox skip logic, and recovered notify watchers
2026-04-08 03:35:43 -07:00
..
2026-02-26 03:20:08 +03:00
2026-03-23 07:43:12 -07:00
2026-04-03 17:50:01 -07:00
2026-04-01 04:18:50 -07:00
2026-04-07 02:35:26 +05:30
2026-03-30 20:36:56 -07:00
2026-04-07 08:40:22 -04:00
2026-04-07 03:28:44 -07:00
2026-03-17 02:02:57 -07:00
2026-03-28 17:25:04 -07:00
2026-04-08 02:35:48 -07:00
2026-04-01 12:03:56 -07:00
2026-03-31 10:40:13 -07:00
2026-03-13 22:14:00 -07:00
2026-02-27 03:29:26 -05:00
2026-04-07 12:49:39 -07:00
2026-04-07 17:19:07 -07:00
2026-03-27 13:22:01 -07:00
2026-03-27 04:03:00 -07:00
2026-04-03 21:14:42 -07:00
2026-02-26 13:55:54 +03:00
2026-03-17 01:40:02 -07:00
2026-03-30 02:45:41 -07:00
2026-03-02 04:34:21 -08:00
2026-03-26 14:50:26 -07:00
2026-04-06 23:01:11 -07:00
2026-04-03 23:30:12 -07:00
2026-03-10 20:45:13 -07:00
2026-03-24 08:19:34 -07:00
2026-03-08 16:47:20 -07:00
2026-03-31 12:53:19 -07:00
2026-04-01 00:50:08 -07:00
2026-04-04 10:18:57 -07:00
2026-03-23 07:43:12 -07:00
2026-03-17 02:22:12 -07:00
2026-03-14 11:27:02 -07:00
2026-02-26 03:20:08 +03:00
2026-03-04 18:34:16 +03:00
2026-03-01 11:53:50 +03:00
2026-03-13 02:51:51 -07:00
2026-03-27 15:28:19 -07:00
2026-03-23 22:45:55 -07:00
2026-03-28 14:43:41 -07:00
2026-04-07 17:19:07 -07:00
2026-03-30 13:28:10 +09:00
2026-04-02 08:43:06 -07:00
2026-04-07 17:19:07 -07:00
2026-04-07 08:40:22 -04:00
2026-03-29 15:52:54 -07:00
2026-04-05 22:08:00 -07:00
2026-04-04 10:18:57 -07:00
2026-04-03 02:29:20 -07:00
2026-04-07 18:00:01 -07:00
2026-04-04 10:18:57 -07:00
2026-04-02 20:54:27 -07:00
2026-04-03 13:10:11 -07:00
2026-03-14 07:53:56 -07:00
2026-04-07 17:19:07 -07:00
2026-03-31 09:29:59 +09:00
2026-04-08 03:35:43 -07:00
2026-04-05 12:46:07 -07:00
2026-03-17 02:34:35 -07:00
2026-03-26 19:38:04 -07:00
2026-04-08 03:35:43 -07:00
2026-03-20 14:54:25 -07:00
2026-03-27 07:49:44 -07:00
2026-03-10 17:09:51 -07:00
2026-03-17 02:02:57 -07:00
2026-04-06 16:49:52 -07:00
2026-04-06 16:49:52 -07:00
2026-03-26 14:35:31 -07:00
2026-03-16 19:01:39 +03:00
2026-03-28 17:52:32 -07:00
2026-04-01 04:19:19 -07:00
2026-04-07 09:58:45 -07:00
2026-04-01 04:19:19 -07:00
2026-03-04 05:30:43 -08:00
2026-03-02 02:00:09 -08:00
2026-03-26 13:40:21 -07:00
2026-03-14 23:15:04 -07:00
2026-03-30 08:37:19 -07:00
2026-03-26 01:08:02 +05:30
2026-03-28 17:52:32 -07:00
2026-03-15 21:13:40 -07:00
2026-03-04 17:23:23 +03:00
2026-03-21 17:10:17 -07:00
2026-04-04 16:57:24 -07:00
2026-03-31 08:48:54 +09:00
2026-03-29 21:51:44 -07:00
2026-03-30 13:28:10 +09:00
2026-03-16 23:39:41 -07:00
2026-03-08 23:07:38 +03:00
2026-04-07 17:19:07 -07:00
2026-04-08 02:24:32 -07:00
2026-03-31 08:48:54 +09:00
2026-03-31 03:10:01 -07:00
2026-03-23 15:40:42 -07:00
2026-03-29 20:55:04 -07:00
2026-03-14 14:27:21 +03:00
2026-03-31 12:13:33 -07:00
2026-03-31 08:48:54 +09:00
2026-03-17 04:28:03 -07:00
2026-03-30 08:10:14 -07:00
2026-03-01 01:54:27 +03:00
2026-02-26 13:30:55 +03:00
2026-03-17 02:22:12 -07:00