mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-11-06 13:26:40 +00:00
CI on the salvage was red on the code-health ratchet (over-cap facades grew; two blind excepts) and on the pm observer fixture, whose isolated source tree carries pm/ + hermes_cli/ but no utils. - config_backend imports become module-level in the facades (it imports only stdlib); gateway, auth and telegram take config_exists through the hermes_cli.config import they already have. - Pure helpers move to topical siblings, offsetting the growth: _csv_or_list_to_set -> gateway/run_common.py, the dotted config-path pair -> hermes_cli/backup_restore.py, the voice/timezone/web-backend checks -> hermes_cli/config_value_checks.py, _load_config_dict -> hermes_cli/profile_memory_config.py (both callers are memory-provider code). - _load_config_dict catches YAMLError/OSError/UnicodeError instead of Exception. - _load_config_cache_hit probes readability with config_backend.probe_config_readable (a 1-byte read through the backend's open) instead of a full parse plus a blind except. - pm/plugins_state.read_home_selection checks config_exists before importing the YAML stack, so a home with no config never needs utils. - developer-guide/config-backend.md describes this build (file backend only). Same approach as @benbarclay's 74421be709 in #122509, which does not cherry-pick onto current main.