{"repo":"NousResearch/hermes-agent","public_id":"80006","display_label":"Dotted keys broken in nested config set logic","summary":"A bug where dotted keys (such as Matrix room IDs) are incorrectly split at dots during config set operations, causing silent data loss. The members cover the bug report and two related fix attempts targeting key matching and container preservation.","subsystem":"hermes_cli","counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":99699,"merged_at":"2026-08-31T19:18:48+00:00"},"resolution":{"state":"resolved","by":"pr-99699"},"freshness":{"state":"verified","last_verified_at":"2026-08-31T19:18:48+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":80006,"pr_number":99699,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-31T19:18:48+00:00"},{"issue_number":84064,"pr_number":99699,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-31T19:18:48+00:00"},{"issue_number":91095,"pr_number":99699,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-31T19:18:48+00:00"},{"issue_number":91607,"pr_number":99699,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-31T19:18:48+00:00"},{"issue_number":99124,"pr_number":99699,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-08-31T19:18:48+00:00"}],"members":[{"kind":"issue","number":80006,"title":"[Bug]: hermes config set splits Matrix room IDs at dots — channel_prompts keyed by room ID is silently broken","url":null,"state":"closed"},{"kind":"pr","number":80007,"title":"fix(config): preserve dotted keys under open-dict leaf containers (#80006)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#80253","number":80253},{"kind":"pr","value":"#80006","number":80006},{"kind":"pr","value":"#76978","number":76978}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":80253,"title":"fix(cli): use greedy key match in _set_nested to handle dotted keys (#80006)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#80006","number":80006},{"kind":"pr","value":"#99699","number":99699},{"kind":"pr","value":"#84152","number":84152},{"kind":"pr","value":"#84064","number":84064},{"kind":"pr","value":"#91095","number":91095},{"kind":"pr","value":"#91607","number":91607},{"kind":"pr","value":"#99124","number":99124}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":99699,"title":"fix(config): support literal dots in config key paths (set/get/unset)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_cli/config.py","tests/hermes_cli/test_config_dotted_key_names.py","tests/hermes_cli/test_set_config_value.py","utils.py","website/docs/reference/cli-commands.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}