hermes-agent/plugins
Teknium 4c677698ff fix(windows): stop persistent gateway console after update + close checker variable-argv blind spot
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).
2026-06-27 15:39:17 -07:00
..
browser fix: guard int(os.getenv()) casts against malformed env vars (#40598) 2026-06-07 06:14:24 -07:00
context_engine feat(context-engine): host contract for external context engines 2026-05-28 01:45:30 -07:00
cron_providers fix(cron): avoid provider package shadowing core cron 2026-06-23 23:39:22 -07:00
dashboard_auth fix(dashboard-auth): follow redirects on self-hosted OIDC discovery (#53399) 2026-06-27 14:14:51 +10:00
disk-cleanup 🐛 fix(disk-cleanup): avoid brittle sweep review issues 2026-06-15 05:25:27 -07:00
google_meet fix(windows): stop persistent gateway console after update + close checker variable-argv blind spot 2026-06-27 15:39:17 -07:00
hermes-achievements revert(plugins): restore user dashboard plugin backend API auto-import (#43719) (#51950) 2026-06-24 07:46:54 -07:00
image_gen fix shape 2026-06-25 12:38:33 -07:00
kanban fix(security): sanitize kanban markdown html 2026-06-21 13:10:17 -07:00
memory fix(windows): stop persistent gateway console after update + close checker variable-argv blind spot 2026-06-27 15:39:17 -07:00
model-providers feat: add reasoning_effort support to ollama-cloud provider 2026-06-23 11:51:43 -07:00
observability fix(langfuse): bound _TRACE_STATE growth from non-finalizing turns 2026-06-18 12:59:41 +05:30
platforms fix(windows): stop persistent gateway console after update + close checker variable-argv blind spot 2026-06-27 15:39:17 -07:00
security-guidance plugins: add security-guidance — pattern-matched warnings on dangerous code writes (#33131) 2026-05-27 02:07:21 -07:00
spotify chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
teams_pipeline chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
video_gen fix(plugins): thread-safe lazy-singleton helpers; fix honcho TOCTOU (#24759) (#42150) 2026-06-08 09:35:22 -07:00
web fix(ddgs): bound DuckDuckGo search with a wall-clock timeout (#36776) 2026-06-25 01:45:06 +05:30
__init__.py feat(memory): pluggable memory provider interface with profile isolation, review fixes, and honcho CLI restoration (#4623) 2026-04-02 15:33:51 -07:00
plugin_utils.py fix(plugins): thread-safe lazy-singleton helpers; fix honcho TOCTOU (#24759) (#42150) 2026-06-08 09:35:22 -07:00