hermes-bsd/tools
Grogger 8bf09455dc fix(windows): suppress console window flash on subprocess spawns
Add creationflags=CREATE_NO_WINDOW to every Windows Popen call
across the terminal, process registry, code execution, and kanban
worker subsystems. Prevents visible CMD windows from flashing on
the user's desktop during agent operation.

Also adds the _IS_WINDOWS module constant to kanban_db.py where
it was missing, for consistency with the other patched files.

5 Popen sites across 4 files:
- tools/environments/local.py (terminal foreground spawn)
- tools/process_registry.py (background process spawn)
- tools/code_execution_tool.py (sandbox + interpreter probe)
- hermes_cli/kanban_db.py (kanban worker spawn)
2026-05-16 23:05:27 -07:00
..
browser_providers fix(tools): wrap browser provider network calls with error handling 2026-05-15 01:53:06 -07:00
computer_use fix(async): close unscheduled coroutines in all threadsafe bridges (#26584) 2026-05-15 14:00:01 -07:00
environments fix(windows): suppress console window flash on subprocess spawns 2026-05-16 23:05:27 -07:00
neutts_samples
__init__.py
ansi_strip.py
approval.py Inspired by Claude Code: tighten dangerous-command detection (#26829) 2026-05-16 01:24:25 -07:00
binary_extensions.py
browser_camofox.py feat(browser): support externally managed Camofox sessions 2026-05-12 15:14:49 -07:00
browser_camofox_state.py
browser_cdp_tool.py fix(async): close unscheduled coroutines in all threadsafe bridges (#26584) 2026-05-15 14:00:01 -07:00
browser_dialog_tool.py
browser_supervisor.py fix(async): close unscheduled coroutines in all threadsafe bridges (#26584) 2026-05-15 14:00:01 -07:00
browser_tool.py feat: wire ensure_dependency into TUI and browser tool call sites 2026-05-15 14:45:43 -07:00
budget_config.py chore: remove Atropos RL environments and tinker-atropos integration (#26106) 2026-05-15 10:36:38 +05:30
checkpoint_manager.py chore: ruff auto-fix PLR6201 — tuple → set in membership tests (#23937) 2026-05-11 11:13:25 -07:00
clarify_gateway.py feat(gateway): wire clarify tool with inline keyboard buttons on Telegram (#24199) 2026-05-12 16:33:33 -07:00
clarify_tool.py
code_execution_tool.py fix(windows): suppress console window flash on subprocess spawns 2026-05-16 23:05:27 -07:00
computer_use_tool.py feat(computer-use): cua-driver backend, universal any-model schema 2026-05-08 11:07:38 -07:00
credential_files.py
cronjob_tools.py fix(env-flags): widen truthy-only session env checks to sibling sites 2026-05-15 12:35:07 -07:00
debug_helpers.py
delegate_tool.py fix(delegate): tool_trace false-positive error detection for short outputs 2026-05-16 22:54:22 -07:00
discord_tool.py feat: add Discord message deletion action 2026-05-07 05:11:09 -07:00
env_passthrough.py
feishu_doc_tool.py perf(cli): cut ~19s from 'hermes' cold start (skills cache + lazy Feishu + no Nous HTTP) (#22138) 2026-05-08 16:39:32 -07:00
feishu_drive_tool.py perf(cli): cut ~19s from 'hermes' cold start (skills cache + lazy Feishu + no Nous HTTP) (#22138) 2026-05-08 16:39:32 -07:00
file_operations.py fix(lsp): shift baseline diagnostics into post-edit coordinates (#25978) 2026-05-14 15:56:07 -07:00
file_state.py
file_tools.py chore: ruff auto-fix PLR6201 — tuple → set in membership tests (#23937) 2026-05-11 11:13:25 -07:00
fuzzy_match.py chore: ruff auto-fixes — collapsible-else-if, if-stmt-min-max, dict.fromkeys (#23926) 2026-05-11 11:03:29 -07:00
homeassistant_tool.py
image_generation_tool.py feat(image-gen): actionable setup message when no FAL backend is reachable (#26222) 2026-05-15 01:33:13 -07:00
interrupt.py
kanban_tools.py chore: ruff auto-fix PLR6201 — tuple → set in membership tests (#23937) 2026-05-11 11:13:25 -07:00
lazy_deps.py security(deps): bump aiohttp, anthropic, cryptography to CVE-fixed versions (#26830) 2026-05-16 01:25:25 -07:00
managed_tool_gateway.py
mcp_oauth.py fix(mcp-oauth): persist OAuth server metadata across process restarts (#21226) 2026-05-07 05:35:33 -07:00
mcp_oauth_manager.py fix(mcp-oauth): persist OAuth server metadata across process restarts (#21226) 2026-05-07 05:35:33 -07:00
mcp_tool.py fix(mcp): validate remote URLs up-front with a clear error (#27105) 2026-05-16 13:06:56 -07:00
memory_tool.py fix(memory): eliminate TOCTOU race in Windows file lock creation 2026-05-15 15:28:18 -07:00
microsoft_graph_auth.py feat(msgraph): add auth and client foundation 2026-05-08 09:27:26 -07:00
microsoft_graph_client.py fix(msgraph): stream download_to_file body instead of buffering 2026-05-08 09:27:26 -07:00
mixture_of_agents_tool.py chore: ruff auto-fix C401, C416, C408, PLR1722 (#23940) 2026-05-11 11:20:58 -07:00
neutts_synth.py
openrouter_client.py
osv_check.py chore: ruff auto-fix PLR6201 — tuple → set in membership tests (#23937) 2026-05-11 11:13:25 -07:00
patch_parser.py chore: ruff auto-fix PLR6201 — tuple → set in membership tests (#23937) 2026-05-11 11:13:25 -07:00
path_security.py
process_registry.py fix(windows): suppress console window flash on subprocess spawns 2026-05-16 23:05:27 -07:00
registry.py security: sanitize tool error strings before injecting into model context (#26823) 2026-05-16 00:57:39 -07:00
schema_sanitizer.py fix: strip Codex-hostile top-level schema combinators 2026-05-07 07:03:21 -07:00
send_message_tool.py fix(tools): forward thread_id via metadata in _send_via_adapter live path 2026-05-12 18:48:44 -07:00
session_search_tool.py fix: make session search initialize session db 2026-05-09 14:36:58 -07:00
skill_manager_tool.py chore: ruff auto-fix PLR6201 — tuple → set in membership tests (#23937) 2026-05-11 11:13:25 -07:00
skill_provenance.py
skill_usage.py feat(cross-platform): psutil for PID/process management + Windows footgun checker 2026-05-08 14:27:40 -07:00
skills_guard.py feat(skills-hub): add huggingface/skills as trusted default tap (#2549) 2026-05-15 01:25:33 -07:00
skills_hub.py feat(skills-hub): add huggingface/skills as trusted default tap (#2549) 2026-05-15 01:25:33 -07:00
skills_sync.py chore: ruff auto-fix C401, C416, C408, PLR1722 (#23940) 2026-05-11 11:20:58 -07:00
skills_tool.py fix(env-flags): widen truthy-only session env checks to sibling sites 2026-05-15 12:35:07 -07:00
slash_confirm.py fix(async): close unscheduled coroutines in all threadsafe bridges (#26584) 2026-05-15 14:00:01 -07:00
terminal_tool.py fix(env-flags): widen truthy-only session env checks to sibling sites 2026-05-15 12:35:07 -07:00
tirith_security.py fix(windows): silence tirith-unavailable banner + skip install/spawn attempts on unsupported platforms (#26718) 2026-05-15 20:29:28 -07:00
todo_tool.py chore: ruff auto-fix PLR6201 — tuple → set in membership tests (#23937) 2026-05-11 11:13:25 -07:00
tool_backend_helpers.py
tool_output_limits.py
tool_result_storage.py fix(tool-result-storage): persist via stdin to bypass 128 KB exec-arg cap (#22913) 2026-05-09 18:44:58 -07:00
transcription_tools.py fix(xai-http): preserve ~/.hermes/.env fallback and XAI_STT_BASE_URL precedence 2026-05-15 12:11:32 -07:00
tts_tool.py fix: remove unused import and hoist module-level constant 2026-05-16 22:49:54 -07:00
url_safety.py fix(url-safety): allow only http and https schemes 2026-05-15 01:52:48 -07:00
video_generation_tool.py feat(video_gen): unified video_generate tool with pluggable provider backends (#25126) 2026-05-13 16:39:41 -07:00
vision_tools.py chore: ruff auto-fix C401, C416, C408, PLR1722 (#23940) 2026-05-11 11:20:58 -07:00
voice_mode.py fix(voice_mode): detect audio in WSL when sd.query_devices() returns empty list but PULSE_SERVER is set 2026-05-12 18:43:50 -07:00
web_tools.py fix(tools): add return_exceptions to asyncio.gather in web_tools 2026-05-15 01:50:41 -07:00
website_policy.py
x_search_tool.py feat(x_search): gated X (Twitter) search tool with OAuth-or-API-key auth (#26763) 2026-05-16 00:58:27 -07:00
xai_http.py fix(xai-http): preserve ~/.hermes/.env fallback and XAI_STT_BASE_URL precedence 2026-05-15 12:11:32 -07:00
yuanbao_tools.py chore: ruff auto-fix PLR6201 — tuple → set in membership tests (#23937) 2026-05-11 11:13:25 -07:00