hermes-agent/tools
ethernet 2bdef2f87f fix: give the managed git the env it needs to find its own helpers
Hermes puts its provisioned tools on PATH but never passed their tool
env, so the bundled git ran without GIT_EXEC_PATH. A relocated
dugite-native build resolves helpers, templates and system config
against a prefix that existed on the BUILD machine, so every agent-run
`git clone`/`fetch`/`push` over http failed on a managed install:

    git: 'remote-http' is not a git command.

`git --version` kept working, which is why this went unnoticed — nothing
that skips a helper is affected.

managed_tool_env() already computed the right values; two call sites
simply did not use it. tools/environments/local.py applied
managed_path_dirs() alone, and noninteractive_git_env() — the shared
helper behind MCP installs, plugin updates, worktree fetches and the
desktop review pane — only added its prompt-suppression vars to a copy
of os.environ. Both now layer the tool env in under any caller value, so
a user pointing at their own git tooling still wins, and both fail open
so a system git keeps working untouched.

Also adds PREFIX, which dugite's own setupEnvironment() sets on Linux
and we were missing. Dugite's source is explicit about why: "when
building Git for Linux and then running it from an arbitrary location,
you should set PREFIX for the process to ensure that it knows how to
resolve things." The env is the vendor's supported interface for a
relocated git, not a workaround.

Tests drive a real provisioned git and assert on the clone: PATH alone
reproduces the helper failure, PATH plus the tool env reaches the
network instead.
2026-08-13 18:16:01 -04:00
..
computer_use
environments fix: give the managed git the env it needs to find its own helpers 2026-08-13 18:16:01 -04:00
neutts_samples
wakewords
__init__.py
ansi_strip.py
approval.py
async_delegation.py
audio_container.py
binary_extensions.py
blueprints.py
browser_camofox.py
browser_camofox_state.py
browser_cdp_tool.py
browser_dialog_tool.py
browser_supervisor.py
browser_tool.py
budget_config.py
checkpoint_manager.py
clarify_gateway.py
clarify_tool.py
close_terminal_tool.py
code_execution_tool.py fix(docker): per-session container isolation and session-scoped workspace mounts 2026-08-09 14:35:02 -07:00
computer_use_tool.py
credential_files.py
cronjob_tools.py
daemon_pool.py
debug_helpers.py
delegate_tool.py fix(docker): per-session container isolation and session-scoped workspace mounts 2026-08-09 14:35:02 -07:00
delegation_live_log.py
delegation_output_schema.py
desktop_ui.py
discord_tool.py
env_passthrough.py
env_probe.py
fal_common.py
feishu_doc_tool.py
feishu_drive_tool.py
file_operations.py
file_state.py
file_tools.py feat(tools): stat-based special-file guard for read_file + readtool eval harness 2026-08-09 23:30:02 -07:00
flux3_video_tool.py
focus_pane_tool.py
fuzzy_match.py
homeassistant_tool.py
hook_output_spill.py
image_generation_tool.py
image_source.py
interrupt.py
kanban_tools.py
lazy_deps.py unify install provenance on a single code-scoped install-stamp.json 2026-08-10 11:21:49 -04:00
managed_tool_gateway.py
mcp_dashboard_oauth.py
mcp_oauth.py
mcp_oauth_manager.py
mcp_schema_cache.py
mcp_stdio_watchdog.py
mcp_tool.py
memory_tool.py
microsoft_graph_auth.py
microsoft_graph_client.py
neutts_synth.py
open_preview_tool.py
openrouter_client.py
osv_check.py
patch_parser.py
path_security.py
process_registry.py refactor: clean up gateway scope identity predicate and tests 2026-08-09 21:43:32 +05:30
project_tools.py
react_to_message_tool.py
read_extract.py
read_preview_tool.py
read_terminal_tool.py
read_window_tool.py
registry.py
schema_sanitizer.py
self_repo_guard.py
send_message_tool.py
session_search_tool.py
skill_linter.py
skill_manager_tool.py
skill_provenance.py
skill_usage.py
skills_ast_audit.py
skills_guard.py
skills_hub.py feat(skills-hub): fall back to live repo for optional skills missing from local checkout 2026-08-09 23:14:18 -07:00
skills_sync.py
skills_sync_client.py
skills_tool.py
slash_confirm.py
terminal_hints.py
terminal_tool.py fix(docker): per-session container isolation and session-scoped workspace mounts 2026-08-09 14:35:02 -07:00
thread_context.py
threat_patterns.py
tirith_security.py
todo_tool.py
tool_backend_helpers.py
tool_output_limits.py
tool_result_storage.py
tool_search.py
transcription_tools.py
tts_streaming.py
tts_text_normalize.py
tts_tool.py
url_safety.py
video_generation_tool.py
vision_tools.py
voice_mode.py
wake_word.py
web_tools.py
website_policy.py
working_diff.py
write_approval.py
x_search_tool.py
xai_http.py
xai_video_tools.py
yuanbao_tools.py