Neil and Orca
f5abf2aa7b
fix(daemon): decide adoptability from what the daemon can do now, in one place
...
Round five found the same question — can this daemon complete a hello right
now? — answered in three places with three different conclusions, because
'held' had been added as a fifth branch rather than as the classification the
other branches route through. Two of those answers were wrong, and both ended
in no daemon at all, which is the outcome 'held' exists to prevent.
- A daemon whose adoption hello had just failed was handed back tagged
'degraded-new-pty-fallback'. Init skips the lease only for 'held', so it
reopened the same connection, threw, and aborted startup — leaving the
agents alive but unreachable and Manage Sessions -> Restart throwing.
- The pty-spawn-unhealthy arm ran first and claimed a successful hello proved
adoptability, but that reading is from before the grace window. A daemon
that answered at t=0 and went silent through thirty seconds of retries took
that arm and threw the same way. Ask whether it is answering now, first.
The budget was a comment with a Date.now() beside it: one occupancy probe
could cost 50s, because the client's default is a 5s hello per connection
step plus a 30s request timeout. Bound the probe explicitly, start the clock
before the first one, and size the window so the whole path — health check,
pid verification, loop overshoot and process-table read — fits under the
startup fail-open with room to spare.
Also folds the four sibling branches onto the same occupancy resolution.
getAliveDaemonSessionCount was byte-identical to countLiveSessionsOverIpc, so
one concept had two implementations and only one of them had been fixed.
The Windows probe exclusions could never match: the warmup spawns COMSPEC, an
absolute path, against an exact-equality test on 'cmd.exe /c exit'. Compare
the program by basename and keep the argv tail exact.
Co-authored-by: Orca <help@stably.ai >
2026-08-11 21:14:55 -07:00
..
2026-08-03 20:45:23 -07:00
2026-08-05 12:57:02 -07:00
2026-08-04 15:54:17 -07:00
2026-08-04 15:54:17 -07:00
2026-08-10 00:29:26 -07:00
2026-07-26 13:20:23 -07:00
2026-07-28 00:21:13 -07:00
2026-08-11 01:27:02 -07:00
2026-08-11 01:27:02 -07:00
2026-06-22 19:13:32 -07:00
2026-07-12 23:43:07 -07:00
2026-06-09 15:59:17 -07:00
2026-07-27 17:17:03 -07:00
2026-06-29 23:37:30 -07:00
2026-07-27 16:36:39 -07:00
2026-07-27 16:36:39 -07:00
2026-07-12 02:13:41 -07:00
2026-07-08 22:21:40 -07:00
2026-08-10 15:52:59 -07:00
2026-07-13 18:58:21 -07:00
2026-08-04 02:03:40 -07:00
2026-07-28 01:30:52 -07:00
2026-07-28 01:30:52 -07:00
2026-06-29 23:37:30 -07:00
2026-07-06 17:12:27 -07:00
2026-07-06 17:12:27 -07:00
2026-07-27 18:58:36 -07:00
2026-07-03 22:32:11 -07:00
2026-07-03 19:58:07 -07:00
2026-08-09 14:06:25 -07:00
2026-07-13 00:48:51 -07:00
2026-07-13 00:48:51 -07:00
2026-07-23 17:44:43 -07:00
2026-07-27 20:54:02 -07:00
2026-07-27 20:54:02 -07:00
2026-07-27 17:16:01 -07:00
2026-06-09 15:59:17 -07:00
2026-07-20 14:34:53 -07:00
2026-07-20 14:34:53 -07:00
2026-07-20 14:34:53 -07:00
2026-07-26 20:20:12 -07:00
2026-06-22 19:13:32 -07:00
2026-08-05 12:09:24 -07:00
2026-08-06 21:18:52 -07:00
2026-07-29 18:29:10 -07:00
2026-06-07 17:49:01 -07:00
2026-06-07 17:49:01 -07:00
2026-07-03 20:53:16 -07:00
2026-07-03 20:53:16 -07:00
2026-08-07 22:33:50 -07:00
2026-08-07 22:33:50 -07:00
2026-08-11 21:14:55 -07:00
2026-08-09 19:01:35 -07:00
2026-08-09 19:01:35 -07:00
2026-08-03 18:02:45 -07:00
2026-08-03 18:02:45 -07:00
2026-07-27 12:31:37 -07:00
2026-07-27 12:31:37 -07:00
2026-06-02 11:49:00 -07:00
2026-08-11 12:51:29 -07:00
2026-08-09 19:01:35 -07:00
2026-07-27 13:32:29 -07:00
2026-07-27 13:32:29 -07:00
2026-08-05 12:51:05 -07:00
2026-07-19 21:59:22 -04:00
2026-07-19 21:59:22 -04:00
2026-06-05 01:15:54 -07:00
2026-07-22 11:43:01 -07:00
2026-07-22 11:43:01 -07:00
2026-07-30 13:20:47 -07:00
2026-07-30 13:20:47 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-07-22 23:10:19 -07:00
2026-07-27 13:32:29 -07:00
2026-07-26 20:31:52 -07:00
2026-07-27 18:58:36 -07:00
2026-07-27 18:58:36 -07:00
2026-07-30 19:33:05 -07:00
2026-07-30 19:33:05 -07:00
2026-07-30 19:33:05 -07:00
2026-08-03 23:18:15 -07:00
2026-08-03 23:18:15 -07:00
2026-06-28 21:16:02 -07:00
2026-08-04 15:54:17 -07:00
2026-08-04 15:54:17 -07:00
2026-07-27 17:09:31 -07:00
2026-06-15 12:56:22 -07:00
2026-06-29 23:37:30 -07:00
2026-07-27 13:32:29 -07:00
2026-07-27 13:32:29 -07:00
2026-06-03 23:42:33 -07:00
2026-06-04 16:11:51 -04:00
2026-08-10 15:58:17 -07:00
2026-06-03 12:48:00 -07:00
2026-06-28 19:43:18 -07:00
2026-07-27 20:54:02 -07:00
2026-06-28 19:43:18 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-03 02:18:05 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 22:24:09 -07:00
2026-07-24 00:26:39 -07:00
2026-08-04 03:56:33 -07:00
2026-08-04 03:56:33 -07:00
2026-08-04 03:56:33 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-10 21:07:41 -07:00
2026-06-29 23:37:30 -07:00
2026-06-19 15:52:05 -07:00
2026-06-09 15:59:17 -07:00
2026-06-09 15:59:17 -07:00
2026-08-04 03:56:33 -07:00
2026-07-31 15:13:41 -07:00
2026-08-04 03:56:33 -07:00
2026-08-04 03:56:33 -07:00
2026-06-17 15:14:35 -07:00
2026-08-07 22:08:22 -07:00
2026-08-09 15:40:48 -07:00
2026-08-04 03:56:33 -07:00
2026-06-29 11:56:26 -07:00
2026-08-04 03:56:33 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-09 15:40:48 -07:00
2026-08-04 03:56:33 -07:00
2026-08-07 22:08:22 -07:00
2026-08-07 22:08:22 -07:00
2026-06-09 15:59:17 -07:00
2026-08-04 03:56:33 -07:00
2026-07-29 17:44:41 -07:00
2026-07-10 19:08:12 -07:00
2026-07-27 16:36:39 -07:00
2026-07-27 16:36:39 -07:00
2026-07-30 19:24:34 -07:00
2026-07-30 19:24:34 -07:00
2026-07-30 19:24:34 -07:00
2026-07-30 19:24:34 -07:00
2026-07-30 19:24:34 -07:00
2026-07-30 19:24:34 -07:00
2026-06-02 21:15:00 -07:00
2026-07-28 15:34:52 -07:00
2026-06-28 21:19:10 -07:00
2026-06-28 23:40:55 -07:00
2026-07-26 20:31:55 -07:00
2026-07-27 18:58:36 -07:00
2026-08-10 01:00:20 -07:00
2026-06-22 01:07:16 -07:00
2026-06-22 01:07:16 -07:00
2026-07-27 20:54:02 -07:00
2026-08-09 13:19:08 -07:00
2026-05-15 05:44:25 -04:00
2026-07-27 12:31:37 -07:00
2026-07-27 12:31:37 -07:00
2026-07-22 11:43:01 -07:00
2026-08-05 21:17:45 -07:00
2026-07-28 00:21:13 -07:00
2026-08-10 15:52:59 -07:00
2026-07-30 19:33:05 -07:00
2026-08-11 12:20:20 -07:00
2026-08-08 19:06:50 -07:00
2026-07-27 16:26:43 -07:00
2026-08-09 14:29:14 -07:00
2026-07-27 13:32:29 -07:00
2026-07-27 13:32:29 -07:00
2026-05-30 13:09:17 -07:00
2026-07-27 20:54:02 -07:00
2026-05-30 21:46:13 -07:00
2026-07-28 00:21:13 -07:00
2026-07-22 00:22:36 -07:00
2026-07-22 00:22:36 -07:00
2026-08-10 01:17:14 -07:00
2026-07-27 16:40:59 -07:00
2026-08-07 10:14:37 -07:00
2026-07-30 18:08:30 -07:00
2026-07-31 00:22:53 -07:00
2026-06-30 16:36:59 -07:00
2026-07-25 03:50:25 -07:00
2026-07-25 03:50:25 -07:00
2026-08-04 15:54:17 -07:00
2026-07-23 20:20:00 -07:00
2026-07-23 20:20:00 -07:00
2026-07-23 20:20:00 -07:00
2026-07-23 20:20:00 -07:00
2026-07-23 20:20:00 -07:00
2026-07-31 00:22:53 -07:00
2026-07-28 00:21:13 -07:00
2026-07-12 23:43:07 -07:00
2026-07-26 13:19:23 -07:00
2026-07-02 18:41:23 -04:00
2026-07-27 15:48:39 -07:00
2026-07-27 15:48:39 -07:00
2026-07-27 17:18:31 -07:00
2026-08-10 15:52:59 -07:00
2026-08-05 12:57:02 -07:00
2026-08-05 12:57:02 -07:00
2026-06-22 01:07:16 -07:00
2026-07-28 15:34:52 -07:00
2026-07-27 13:32:29 -07:00
2026-07-22 18:52:37 -07:00
2026-08-05 12:57:02 -07:00
2026-08-02 17:40:58 -07:00
2026-05-16 17:44:42 -04:00
2026-07-20 21:36:15 -07:00
2026-08-01 00:25:35 -07:00
2026-07-22 18:25:05 -07:00
2026-06-30 16:36:59 -07:00
2026-06-22 16:42:20 -07:00
2026-08-03 02:18:05 -07:00
2026-06-07 04:15:26 -07:00
2026-07-29 00:47:18 -07:00
2026-07-12 23:50:00 -07:00
2026-07-31 16:17:37 -07:00
2026-08-08 19:06:50 -07:00
2026-06-07 11:01:02 -07:00
2026-07-10 17:27:47 -07:00
2026-07-10 17:27:47 -07:00
2026-06-22 01:07:16 -07:00
2026-07-12 18:15:15 -07:00
2026-07-15 15:23:35 -07:00
2026-08-05 12:57:02 -07:00
2026-08-09 19:01:35 -07:00
2026-08-09 19:01:35 -07:00
2026-08-09 19:01:35 -07:00
2026-07-30 18:27:16 -07:00
2026-08-07 22:54:42 -07:00
2026-07-31 04:58:15 -07:00
2026-07-30 19:33:05 -07:00
2026-07-26 22:26:49 -07:00
2026-07-27 01:02:48 -07:00
2026-07-10 17:27:47 -07:00
2026-06-22 19:13:32 -07:00
2026-07-27 17:38:54 -07:00
2026-07-27 17:38:54 -07:00
2026-07-27 23:28:05 -07:00
2026-06-29 22:38:29 -07:00
2026-08-08 19:06:50 -07:00
2026-07-27 23:28:05 -07:00
2026-06-22 19:13:32 -07:00
2026-06-22 19:13:32 -07:00
2026-07-10 17:27:47 -07:00
2026-07-26 15:32:33 -07:00
2026-08-06 00:23:57 -07:00
2026-07-27 17:15:54 -07:00
2026-06-29 23:37:30 -07:00
2026-06-29 23:37:30 -07:00
2026-06-29 23:37:30 -07:00
2026-08-11 14:03:16 -07:00
2026-06-28 22:58:27 -07:00
2026-07-23 18:35:31 -07:00
2026-08-10 19:56:08 -07:00
2026-07-22 19:11:44 -07:00
2026-07-22 19:11:44 -07:00
2026-08-08 19:06:50 -07:00
2026-08-04 03:56:33 -07:00
2026-08-04 03:56:33 -07:00
2026-08-01 00:25:35 -07:00
2026-07-29 17:44:41 -07:00
2026-06-29 23:37:30 -07:00
2026-04-09 12:28:52 -07:00
2026-07-09 16:09:09 -07:00
2026-07-09 16:09:09 -07:00
2026-07-27 01:14:33 -07:00
2026-07-27 01:14:33 -07:00
2026-07-05 23:56:37 -07:00
2026-06-22 01:07:16 -07:00
2026-07-16 14:47:28 -07:00
2026-07-30 18:27:16 -07:00
2026-07-30 18:27:16 -07:00
2026-07-27 17:38:54 -07:00
2026-06-29 22:38:29 -07:00
2026-07-02 12:11:58 -07:00
2026-07-02 12:11:58 -07:00
2026-08-01 00:25:35 -07:00
2026-07-19 20:25:52 -07:00
2026-07-27 15:48:39 -07:00
2026-07-31 06:08:26 -07:00
2026-08-10 15:52:59 -07:00
2026-08-09 22:24:33 -07:00
2026-08-10 15:44:05 -07:00
2026-06-09 10:43:04 -07:00
2026-08-09 14:41:40 -07:00
2026-08-08 14:06:34 -07:00
2026-08-09 12:53:13 -07:00
2026-07-27 18:58:36 -07:00