diff --git a/hermes_cli/update_inventory.py b/hermes_cli/update_inventory.py index 42a53be703..503c1aa235 100644 --- a/hermes_cli/update_inventory.py +++ b/hermes_cli/update_inventory.py @@ -324,11 +324,12 @@ def match_runtime_outcomes( Serve/dashboard runtimes are reconciled in their OWN vocabulary and never borrow the gateway's outcome: with ``stale_serve_pids`` a pre-update serve whose incarnation is gone counts as ``restarted``, one still alive is ``unaccounted``; without the probe an untouched serve stays - ``unaccounted``. A Desktop-supervised serve is ``deferred`` only when that probe confirmed its - pre-update incarnation is still alive: the restart phase is forbidden to restart it out from under - the app (it hosts the live Desktop chats), so it is handed back to its supervisor and surfaced. - Without that evidence it remains ``unaccounted``, rather than claiming the app owns an unknown - incarnation. See #111494. + ``unaccounted``. A Desktop-supervised serve is ``deferred`` only when the survivor probe RAN + and still lists its pid: the restart phase is forbidden to restart it out from under the app (it + hosts the live Desktop chats), so it is handed back to its supervisor and surfaced. Without a + probe result it remains ``unaccounted``, rather than claiming the app owns an unknown + incarnation. The probe itself fails closed (unreadable ledger -> every planned serve is listed as + surviving), so ``deferred`` means "not shown to be gone", not "observed alive". See #111494. See #91277. They never borrow the gateway's outcome: ``relaunched_profiles`` and ``hermes-gateway*`` name a