{"repo":"NousResearch/hermes-agent","public_id":"113301","display_label":"Prevent save_config from overwriting config when read returns empty","summary":"These issues and PRs concern a bug where save_config collapses an existing config.yaml to fewer sections when the cached or raw read returns empty. The fixes add a guard to refuse overwriting an existing config file in that scenario.","subsystem":null,"counts":{"members":6,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":4},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":114227},"resolution":{"state":"resolved","by":"pr-114227"},"freshness":{"state":"verified","last_verified_at":"2026-09-17T15:49:48+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.3333333333333333},"fix_edges":[{"issue_number":113301,"pr_number":114227,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":113301,"title":"save_config collapses a config to non-default values when the raw read returns empty (32 sections -> 7)","url":null,"state":"closed"},{"kind":"pr","number":113321,"title":"fix(cli): keep save_config from collapsing over an existing-but-empty config.yaml","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"38870824ad","number":0},{"kind":"pr","value":"#114227","number":114227},{"kind":"pr","value":"#113301","number":113301}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":113323,"title":"fix(config): refuse to save over an existing config that reads empty","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"38870824ad","number":0},{"kind":"pr","value":"#114227","number":114227}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":113332,"title":"fix(cli): refuse to save over an existing config.yaml that reads empty","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#113323","number":113323},{"kind":"pr","value":"#113323","number":113323},{"kind":"pr","value":"#113301","number":113301}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":113383,"title":"fix(config): refuse to save over an existing config that reads empty (32 sections -> 7)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#113323","number":113323},{"kind":"pr","value":"#113301","number":113301}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":114227,"title":"save_config no longer collapses an intact config.yaml when the cached read comes back empty (#113301)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_cli/config.py","tests/hermes_cli/test_config.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}