teknium1
e7e1928174
fix(update): the invoking profile's launchd restart is claimed only on a pid that changed
...
`hermes update` on macOS printed "✓ Restarted ai.hermes.gateway" for the
profile running the update whenever launchd reported *any* pid for the label —
including the pre-update process the restart was supposed to replace.
f29ee96dd3 closed this for SIBLING labels only
(`_wait_for_launchd_service_pid(label, old_pid=old_pid, ...)`); the invoking
profile kept `wait_for_launchd_gateway_supervision` →
`_launchctl_label_supervising_process`, a predicate that is true for "launchctl
list exits 0 and some positive pid" and never compares against the pid seen
before the restart.
- `_launchctl_supervised_pid()` exposes the pid `_launchctl_label_supervising_process`
already parsed; the boolean is now a thin wrapper over it.
- `wait_for_launchd_gateway_supervision(..., old_pid=...)` accepts a fresh pid
only, mirroring the sibling loop's contract. `old_pid=None` keeps the old
"any supervised pid" meaning for callers with no pre-restart observation.
- `_restart_launchd_gateway_after_update()` snapshots the pid before
`launchd_restart()` and passes it in; the failure line now says launchd is
not supervising a NEW process. The snapshot is verification-only, so the
no-`launchctl list`-gating invariant of #74973 is untouched.
Also from round-2 review of this PR:
- the supervised-serve discharge test parametrized 5 supervisors, 3 of which
the inventory writer can never put on a serve/dashboard row; cut to the two
it can emit and documented the parity-only members.
- `_marker_only_restart_obsolete` now names who still owns a discharged
launchd-supervised serve (update-time `report_unaccounted_runtimes`, exit 1).
2026-09-20 20:13:57 -07:00
..
2026-09-13 09:40:44 -07:00
2026-09-20 15:53:25 -07:00
2026-09-19 23:42:20 -07:00
2026-09-20 20:13:33 -07:00
2026-09-20 12:50:53 -07:00
2026-09-14 09:02:28 -07:00
2026-09-15 04:11:11 -07:00
2026-09-18 09:50:52 -07:00
2026-09-20 11:30:36 -07:00
2026-09-19 02:36:56 -07:00
2026-09-20 13:21:24 -07:00
2026-09-15 03:58:44 -07:00
2026-09-15 03:58:44 -07:00
2026-09-20 18:43:11 -07:00
2026-09-17 12:28:25 +05:30
2026-09-11 03:45:33 +05:30
2026-09-15 20:44:42 +05:30
2026-09-15 04:57:29 -07:00
2026-09-19 12:11:58 -07:00
2026-09-19 12:11:58 -07:00
2026-09-19 20:45:06 -07:00
2026-09-15 20:44:42 +05:30
2026-09-15 04:12:13 -07:00
2026-09-15 04:12:13 -07:00
2026-09-20 14:29:39 -07:00
2026-09-18 10:17:59 -07:00
2026-09-16 14:34:59 -07:00
2026-09-20 18:21:34 -07:00
2026-09-12 22:07:41 -07:00
2026-09-20 18:29:22 -07:00
2026-09-15 03:38:29 -07:00
2026-09-12 22:07:41 -07:00
2026-09-16 14:34:59 -07:00
2026-09-18 11:01:52 -07:00
2026-09-20 22:46:49 -04:00
2026-09-19 09:23:22 -07:00
2026-09-17 00:34:50 -05:00
2026-09-20 20:13:41 -07:00
2026-09-20 18:20:44 -07:00
2026-09-19 10:28:34 -07:00
2026-09-16 16:53:40 -07:00
2026-09-08 03:06:30 -07:00
2026-09-15 18:24:22 -07:00
2026-09-12 08:25:54 -07:00
2026-09-20 16:23:22 -07:00
2026-09-12 08:25:54 -07:00
2026-09-19 09:57:21 -07:00
2026-09-19 10:47:48 -07:00
2026-09-20 18:23:02 -07:00
2026-09-20 13:35:09 -07:00
2026-09-19 10:28:34 -07:00
2026-09-20 18:43:11 -07:00
2026-09-19 10:28:34 -07:00
2026-09-15 14:52:26 +05:30
2026-09-19 10:47:48 -07:00
2026-09-15 18:25:46 -07:00
2026-09-20 13:55:03 -07:00
2026-09-18 01:43:35 +05:30
2026-09-20 15:56:33 -07:00
2026-09-19 10:28:34 -07:00
2026-09-18 01:43:35 +05:30
2026-09-20 13:55:03 -07:00
2026-09-15 04:08:53 -07:00
2026-09-20 13:35:09 -07:00
2026-09-20 18:43:11 -07:00
2026-09-15 04:12:13 -07:00
2026-09-20 10:52:54 -07:00
2026-09-19 10:22:33 -07:00
2026-09-19 10:44:26 -07:00
2026-09-19 09:30:56 -07:00
2026-09-15 06:29:50 -07:00
2026-09-12 08:25:36 -07:00
2026-09-20 13:37:10 -07:00
2026-09-12 16:17:04 -07:00
2026-09-20 18:54:24 -07:00
2026-09-15 06:29:50 -07:00
2026-09-15 21:47:48 -07:00
2026-09-15 05:25:39 -07:00
2026-09-20 12:44:48 -07:00
2026-09-20 15:17:49 +05:30
2026-09-20 16:32:50 -07:00
2026-09-20 20:13:33 -07:00
2026-09-16 08:57:18 -07:00
2026-09-19 16:28:57 +05:30
2026-09-13 05:07:11 -07:00
2026-09-13 05:09:06 -07:00
2026-09-20 16:33:49 -07:00
2026-09-19 09:20:54 -07:00
2026-09-20 18:25:48 -07:00
2026-09-13 05:07:11 -07:00
2026-09-13 09:18:02 -07:00
2026-09-16 23:13:20 -04:00
2026-09-10 01:25:45 -07:00
2026-09-19 12:30:32 -07:00
2026-09-20 12:15:07 -07:00
2026-09-13 05:09:06 -07:00
2026-09-20 20:13:25 -07:00
2026-09-20 12:15:07 -07:00
2026-09-20 15:57:25 -07:00
2026-09-15 12:06:08 -07:00
2026-09-20 10:39:01 -07:00
2026-09-06 05:41:46 -07:00
2026-09-19 01:27:29 -07:00
2026-09-12 21:39:10 -07:00
2026-09-14 08:10:36 -07:00
2026-09-18 12:52:36 -07:00
2026-09-15 04:12:13 -07:00
2026-09-16 08:57:18 -07:00
2026-09-16 00:33:03 -07:00
2026-09-16 08:57:18 -07:00
2026-09-16 08:57:18 -07:00
2026-09-15 03:44:36 -07:00
2026-09-20 18:33:07 -07:00
2026-09-15 04:07:13 -07:00
2026-09-20 12:47:14 -07:00
2026-09-20 18:52:45 -07:00
2026-09-20 20:13:57 -07:00
2026-09-20 10:44:52 -07:00
2026-09-20 12:03:06 -07:00
2026-09-07 00:51:41 -07:00
2026-09-18 10:00:29 -07:00
2026-09-17 20:56:27 +05:30
2026-09-20 10:19:25 -07:00
2026-09-16 00:32:15 -07:00
2026-09-20 10:06:50 -07:00
2026-09-16 16:58:43 -07:00
2026-09-20 15:53:55 -07:00
2026-09-07 14:16:57 -07:00
2026-09-18 22:36:24 -07:00
2026-09-20 10:41:25 -07:00
2026-09-20 19:03:47 -07:00
2026-09-18 09:48:41 -07:00
2026-09-18 20:34:16 -07:00
2026-09-15 18:35:32 -07:00
2026-09-20 18:43:59 -07:00
2026-09-20 16:33:49 -07:00
2026-09-07 04:46:54 -07:00
2026-09-07 04:46:54 -07:00
2026-09-15 18:33:43 -07:00
2026-09-09 12:18:58 -07:00
2026-09-20 19:03:47 -07:00
2026-09-16 16:56:22 -07:00
2026-09-17 20:56:27 +05:30
2026-09-15 04:12:13 -07:00
2026-09-18 10:10:05 -07:00
2026-09-15 04:12:13 -07:00
2026-09-20 10:05:53 -07:00
2026-09-19 02:01:36 -07:00
2026-09-12 08:25:54 -07:00
2026-09-18 15:40:37 +05:30
2026-09-20 15:50:26 -07:00
2026-09-20 16:41:21 +05:30
2026-09-20 18:51:36 -07:00
2026-09-18 09:38:34 -07:00
2026-09-19 02:44:02 -07:00
2026-09-16 15:16:09 -05:00
2026-09-18 10:01:01 -07:00
2026-09-20 12:40:36 -07:00
2026-09-20 18:16:47 +05:30
2026-09-18 09:23:13 -07:00
2026-09-15 03:38:29 -07:00
2026-09-17 09:03:29 -07:00
2026-09-16 17:11:01 -07:00
2026-09-15 05:34:29 -07:00
2026-09-13 05:07:11 -07:00
2026-09-19 09:34:40 -07:00
2026-09-13 20:54:50 -07:00
2026-09-15 04:12:13 -07:00
2026-09-19 10:26:08 -07:00
2026-09-20 14:29:39 -07:00
2026-09-20 14:29:39 -07:00
2026-09-20 14:29:39 -07:00
2026-09-20 12:16:06 -07:00
2026-09-10 09:11:00 -07:00
2026-09-19 10:26:08 -07:00
2026-09-20 14:02:17 +05:30
2026-09-12 01:35:05 -07:00
2026-09-12 01:35:05 -07:00
2026-09-20 16:22:25 -07:00
2026-09-20 14:29:39 -07:00
2026-09-14 22:01:32 +00:00
2026-09-11 03:45:31 +05:30
2026-09-10 18:11:25 -07:00
2026-09-20 12:44:48 -07:00
2026-09-19 09:42:18 -07:00
2026-09-16 00:32:15 -07:00
2026-09-18 09:43:19 -07:00
2026-09-16 17:15:38 -07:00
2026-09-20 14:29:39 -07:00
2026-09-17 00:11:27 -07:00
2026-09-17 00:11:27 -07:00
2026-09-20 11:49:00 -07:00
2026-09-19 03:19:18 -07:00
2026-09-18 09:43:19 -07:00
2026-09-20 15:56:55 -07:00
2026-09-15 18:48:59 -07:00
2026-09-20 15:21:14 -07:00
2026-09-16 17:08:25 -07:00
2026-09-17 00:11:27 -07:00
2026-09-17 00:11:27 -07:00
2026-09-17 18:36:20 -07:00
2026-09-11 03:45:31 +05:30
2026-09-16 00:32:15 -07:00
2026-09-13 14:33:11 -07:00
2026-09-16 14:21:14 -07:00
2026-09-16 14:34:59 -07:00
2026-09-06 05:34:01 -07:00
2026-09-18 10:01:01 -07:00
2026-09-16 14:34:22 -07:00
2026-09-20 18:45:07 -07:00
2026-09-13 05:08:29 -07:00
2026-09-18 15:40:37 +05:30
2026-09-20 10:11:40 -07:00
2026-09-13 05:07:50 -07:00
2026-09-13 05:07:11 -07:00
2026-09-18 09:52:03 -07:00
2026-09-20 12:51:30 -07:00
2026-09-20 11:55:07 -07:00
2026-09-14 19:49:12 +05:30
2026-09-15 03:44:36 -07:00
2026-09-18 12:49:40 -07:00
2026-09-19 10:52:01 -07:00
2026-09-20 11:19:50 -07:00
2026-09-20 16:23:22 -07:00
2026-09-15 04:12:13 -07:00
2026-09-19 10:44:26 -07:00
2026-09-19 01:31:49 -07:00
2026-09-11 06:24:54 -07:00
2026-09-11 06:24:54 -07:00
2026-09-11 06:24:54 -07:00
2026-09-17 21:17:15 +05:30
2026-09-16 17:02:13 -07:00
2026-09-20 20:13:41 -07:00
2026-09-19 02:28:50 -07:00
2026-09-11 06:24:54 -07:00
2026-09-20 20:13:25 -07:00
2026-09-18 22:36:41 -07:00
2026-09-20 20:13:33 -07:00
2026-09-18 22:36:41 -07:00
2026-09-13 05:32:38 -07:00
2026-09-15 04:12:13 -07:00
2026-09-18 21:47:13 +05:30
2026-09-18 09:47:06 -07:00
2026-09-12 08:25:54 -07:00
2026-09-19 09:25:29 -07:00
2026-09-18 10:45:07 -07:00
2026-09-18 12:51:22 -07:00
2026-09-12 08:25:54 -07:00
2026-09-18 12:51:22 -07:00
2026-09-13 05:08:29 -07:00
2026-09-18 09:38:34 -07:00
2026-09-11 03:45:31 +05:30
2026-09-12 21:47:53 -07:00
2026-09-13 05:21:02 -07:00
2026-09-14 08:10:36 -07:00
2026-09-20 15:49:42 +05:30
2026-09-15 03:53:13 -07:00
2026-09-19 09:54:20 -07:00
2026-09-15 18:55:47 -07:00
2026-09-16 00:32:15 -07:00
2026-09-15 14:52:26 +05:30
2026-09-11 06:24:54 -07:00
2026-09-08 19:52:26 +05:30
2026-09-15 04:12:13 -07:00
2026-09-20 11:28:15 -07:00
2026-09-12 08:34:43 -07:00
2026-09-19 10:05:26 -07:00
2026-09-20 20:29:14 +05:30
2026-09-20 12:44:48 -07:00
2026-09-20 12:44:48 -07:00
2026-09-12 08:25:54 -07:00
2026-09-20 20:13:57 -07:00
2026-09-17 00:02:09 -07:00
2026-09-20 09:52:06 -07:00
2026-09-13 05:08:20 -07:00
2026-09-20 20:13:57 -07:00
2026-09-16 17:44:36 -07:00
2026-09-18 10:15:11 -07:00
2026-09-20 00:13:01 -07:00
2026-09-20 18:51:36 -07:00
2026-09-19 02:33:41 -07:00
2026-09-20 10:40:12 -07:00
2026-09-19 02:01:36 -07:00
2026-09-20 00:22:24 -07:00
2026-09-15 04:12:13 -07:00
2026-09-20 18:52:45 -07:00
2026-09-20 17:00:11 -07:00
2026-09-19 23:59:11 -07:00
2026-09-20 10:21:52 -07:00
2026-09-19 00:17:19 -07:00
2026-09-09 21:16:40 +05:30
2026-09-20 17:00:43 -07:00
2026-09-18 12:46:54 -07:00
2026-09-18 15:12:27 -07:00
2026-09-07 07:11:36 -07:00
2026-09-18 15:11:47 -07:00
2026-09-19 15:04:44 +05:30
2026-09-19 15:04:44 +05:30
2026-09-14 08:10:36 -07:00
2026-09-20 12:40:36 -07:00
2026-09-12 18:35:21 -07:00
2026-09-15 20:44:42 +05:30
2026-09-19 00:17:19 -07:00
2026-09-20 20:13:41 -07:00
2026-09-20 12:00:44 -07:00
2026-09-13 21:30:02 -07:00
2026-09-13 20:55:29 -07:00
2026-09-15 18:27:06 -07:00
2026-09-19 01:29:03 -07:00
2026-09-09 02:36:00 -07:00