{"repo":"NousResearch/hermes-agent","public_id":"111105","display_label":"Detect config file replacements via stat-based cache","summary":"These issues and PRs address a bug where replaced config files with unchanged mtime and size were not detected by stat-based cache signatures. Fixes span config cache logic and a related CLI crash.","subsystem":null,"counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":2,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":111408},"resolution":{"state":"resolved","by":"pr-111408"},"freshness":{"state":"verified","last_verified_at":"2026-09-15T15:17:07+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":111105,"pr_number":111408,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":111105,"pr_number":112002,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":111942,"pr_number":112002,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":111105,"title":"config: unchanged mtime and size hide file replacements","url":null,"state":"closed"},{"kind":"pr","number":111113,"title":"fix(config): detect file replacements in stat-based cache signatures","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"b797e9d7b3","number":0},{"kind":"commit","value":"a1e7f74e64","number":0},{"kind":"commit","value":"182ec5c28d","number":0},{"kind":"pr","value":"#111408","number":111408},{"kind":"pr","value":"#111105","number":111105},{"kind":"pr","value":"#111942","number":111942},{"kind":"pr","value":"#112002","number":112002}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":111408,"title":"fix(config): same-size, same-mtime config replacements are picked up without a restart (#111105, salvage #111113)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/moa_loop.py","agent/prompt_builder.py","agent/skill_utils.py","gateway/run_profile_reconcile.py","hermes_cli/auth.py","hermes_cli/auth_oauth_grants.py","hermes_cli/cli_info_mixin.py","hermes_cli/cli_tui_mixin.py","hermes_cli/commands_completion.py","hermes_cli/config.py","hermes_cli/config_effective.py","hermes_cli/managed_scope.py","hermes_cli/model_switch.py","model_tools.py","tests/conftest.py","tests/gateway/test_profile_serve_signature.py","tests/hermes_cli/test_cli_mcp_config_watch.py","tests/hermes_cli/test_config_cache_signature.py","tests/tools/test_mcp_stability.py","tests/tools/test_model_tools.py","tests/tui_gateway/test_config_profile_scope.py","tests/tui_gateway/test_config_set_display_toggles.py","tests/tui_gateway/test_config_set_voice_chat_mode.py","tests/tui_gateway/test_goal_command.py","tests/tui_gateway/test_protocol.py","tests/tui_gateway/test_session_control.py","tests/tui_gateway/test_tui_gateway_server.py","tui_gateway/server.py","utils.py"]},{"kind":"pr","number":111532,"title":"fix(config): detect file replacements in stat-based cache signatures …","url":null,"state":"closed","close_reason":{"category":"silent_close","implication":"active"},"merged":false},{"kind":"pr","number":112002,"title":"fix(cli): hermes no longer crashes on launch with NameError file_signature (#111942, salvage #111947)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_cli/cli_tui_mixin.py","tests/hermes_cli/test_cli_mcp_config_watch.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}