mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-31 19:16:29 +00:00
Two distinct Windows console bugs that survived #53791/#53810/#53829: 1. Persistent console after update that kills the gateway when closed. _spawn_gateway_restart_watcher rewrote the respawned gateway argv to windowless pythonw, but launched the WATCHER process itself with sys.executable — the venv console python.exe during `hermes update`. uv's venv launcher re-execs the base console interpreter, allocating a conhost that DETACHED_PROCESS/CREATE_NO_WINDOW can't suppress; the respawned gateway inherits it. Resolve the watcher interpreter to pythonw too (no-op on POSIX). 2. The AST footgun checker only resolved a flashing program when argv[0] was a string literal, so the update path's `git_cmd = ["git", ...]` then `subprocess.run(git_cmd + [...], capture_output=True)` calls were invisible and shipped unflagged — one console flash per call. Teach _argv_head to resolve variable and concat (BinOp Add) argv via a module-wide name->program map. Route the 39 newly-visible calls in main.py + 23 across 12 other files through the _subprocess_compat chokepoint (or creationflags=windows_hide_flags()). Also fixes a latent NameError: main.py called _subprocess_compat.run with no module import in scope — the update path would have crashed on Windows. Tests: checker 32/32, watcher/restart/detach 5/5. Update suite failures drop 29->7 (remaining 7 are pre-existing baseline failures). |
||
|---|---|---|
| .. | ||
| ci | ||
| lib | ||
| tests | ||
| whatsapp-bridge | ||
| analyze_livetest.py | ||
| benchmark_browser_eval.py | ||
| build_model_catalog.py | ||
| build_skills_index.py | ||
| check-windows-footguns.py | ||
| check_subprocess_stdin.py | ||
| contributor_audit.py | ||
| discord-voice-doctor.py | ||
| docker_config_migrate.py | ||
| hermes-gateway | ||
| install.cmd | ||
| install.ps1 | ||
| install.sh | ||
| install_psutil_android.py | ||
| keystroke_diagnostic.py | ||
| kill_modal.sh | ||
| lint_diff.py | ||
| LIVETEST_README.md | ||
| profile-tui.py | ||
| release.py | ||
| run_tests.sh | ||
| run_tests_parallel.py | ||
| sample_and_compress.py | ||
| setup_open_webui.sh | ||
| tool_search_livetest.py | ||