36f1423411
On Windows, the pre-update concurrent-instance gate aborted with exit 2 whenever ANY other process held the venv hermes.exe shim — including the gateway itself, which _pause_windows_gateways_for_update() stops moments later and the post-update restart phase brings back. Users with a running gateway were forced into a manual taskkill dance before every update. The gate now filters gateway runtimes out of the abort list and proceeds when nothing else is concurrent. Classification delegates to _is_pausable_gateway -> gateway.status.looks_like_gateway_command_line (the canonical shlex-tokenized, profile-selector-aware matcher shared by the Desktop preflight exemption and the venv-holder guard fallback), so the gate's exemption and the pause machinery cannot drift apart. Anything not positively identified as a gateway — REPLs, dashboard, Desktop backend children, gateway MANAGEMENT commands like 'gateway status', unreadable cmdlines — still aborts exactly as before, and the abort message now lists only the PIDs that are actually the user's problem. Surgical reapply of PR #37039 by @damadorPL onto current main (the gate moved from hermes_cli/main.py to hermes_cli/update_cmd.py in the main.py decomposition); his substring classifier was replaced with the canonical matcher, which also fixes the 'hermes gateway status' misclassification flagged in review. Co-authored-by: Hermes <hermes@nousresearch.com>
2 lines
10 B
Plaintext
2 lines
10 B
Plaintext
damadorPL
|