{"repo":"NousResearch/hermes-agent","public_id":"116911","display_label":"Splitting large cli.py into smaller mixin modules","summary":"A bug report and two refactoring efforts focused on breaking up an oversized cli.py file by moving behavior into topical mixin sibling modules. The work tracks line-count reduction across incremental refactoring steps.","subsystem":null,"counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":2,"attempt_prs":0},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":117688,"merged_at":"2026-09-21T03:42:18+00:00"},"resolution":{"state":"resolved","by":"pr-117642"},"freshness":{"state":"verified","last_verified_at":"2026-09-21T03:42:18+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":116911,"pr_number":117642,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-21T01:43:11+00:00"},{"issue_number":116911,"pr_number":117688,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-21T03:42:18+00:00"}],"members":[{"kind":"issue","number":116911,"title":"[Bug]: cli.py 4,823-line god-file — behavior must move to hermes_cli/cli_*_mixin siblings","url":null,"state":"closed"},{"kind":"pr","number":117642,"title":"refactor(cli): HermesCLI init and TUI run-loop phases move into mixin siblings, cli.py 4,835 -> 3,959 lines (#116911)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["cli.py","hermes_cli/AGENTS.md","hermes_cli/cli_init_mixin.py","hermes_cli/cli_tui_runtime_mixin.py","tests/agent/test_grid_sweep_cli_tui_stream_diagnostics.py","tests/agent/test_org_skill_namespace.py","tests/hermes_state/test_hermes_state_ids.py"]},{"kind":"pr","number":117688,"title":"refactor(cli): cli.py module-level helper clusters move into topical siblings; cli.py lands under 2,000 lines (#116911)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["cli.py","hermes_cli/AGENTS.md","hermes_cli/cli_auto_maintenance.py","hermes_cli/cli_config_load.py","hermes_cli/cli_render.py","hermes_cli/cli_shutdown.py","hermes_cli/cli_single_query.py","hermes_cli/cli_terminal_input.py","tests/agent/test_auxiliary_config_bridge.py","tests/hermes_cli/test_bracketed_paste_timeout.py","tests/hermes_cli/test_cli_quiet_stdout_leak.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}