P1 Tool Loader Collapses to Cronjob-Only at Runtime — get_environment Not Exported in v0.17.0 (#53667)

Executive Summary

On a fresh v0.17.0 install, the agent loads only the cronjob tool at runtime — even though hermes doctor reports web, terminal, file, and memory as available (all green checkmarks). Every environment-dependent toolset (web, web_search, file, terminal) is silently dropped. The agent literally reports it has "only the cronjob tool." This is a P1 — major feature broken, no workaround. The agent is reduced to a cron scheduler.

Root Cause Analysis

The Missing Export

tools/environments/__init__.pyget_environment is imported by the backend-probe path but is not exported by that module in v0.17.0. When the execution environment can't be established, all environment-dependent tools fall away, leaving only cronjob (the one tool that needs no execution environment).

The Cascade

Backend Probe Failure
Backend probe unavailable (import failed): cannot import name 'get_environment' from 'tools.environments' (/home/<user>/.hermes/hermes-agent/tools/environments/__init__.py)

Why Doctor Can't See It

hermes doctor's per-tool check_fn checks don't exercise the environment probe — they test tool availability in isolation. The runtime tool-selection path hits the probe, fails, and drops the tools. Doctor says green; runtime says cronjob-only.

Survives Every Standard Remedy

Remedy AttemptedResult
hermes update to clean 0.17.0 (with history-divergence reset)FAILED
uv pip install -e . --force-reinstall of all 60 packagesFAILED
Switching terminal.backend from docker to localShell restored, toolset still cronjob-only
Installing ddgs web-search backendFAILED
hermes doctor --fixReports everything green, cannot see the fault

Impact Assessment

DimensionSeverityDetail
Agent FunctionalityCRITICALAgent is effectively brain-dead — can schedule cron jobs but cannot search the web, read/write files, or run commands
Detection GapCRITICALhermes doctor and doctor --fix cannot detect the fault — all checks return green
WorkaroundNONENo known workaround — five standard remedies attempted, all failed
Fix ComplexityLOWExport get_environment from tools/environments/__init__.py
ScopeWIDEAffects all fresh v0.17.0 installs — every new user gets a cronjob-only agent

Proposed Fix

Export get_environment from tools/environments/__init__.py. The function exists in the module but is not part of the public API surface — the backend probe imports it directly and fails when it's not found in the module's exports.

PR: #53680 already open | Reporter willing to submit PR.

Source Evidence

📋 https://hermes-agent.reviews/hermes-tool-loader-collapse-cronjob-only-53667.html
Tracked by hermes-agent.reviews — June 27, 2026