Teknium
d9853c57ad
Merge branch 'simp/r2-climain' into simp/integration2
2026-09-02 17:05:06 -07:00
Teknium
f81f8d848f
Merge branch 'simp/r2m-flows' into simp/integration2
2026-09-02 17:05:06 -07:00
Teknium
93673653fa
Merge branch 'simp/r2-kanban' into simp/integration2
2026-09-02 17:05:05 -07:00
Teknium
fd77c095b1
Merge branch 'simp/r2-config' into simp/integration2
2026-09-02 17:05:05 -07:00
Teknium
cba6a6de8e
Merge branch 'simp/r2-clipy' into simp/integration2
2026-09-02 17:05:04 -07:00
Teknium
e753b034a4
Merge branch 'simp/r2-auth' into simp/integration2
2026-09-02 17:05:01 -07:00
Teknium
41a26c8ba9
refactor(kanban-db): compact long docstrings (rules kept) across origin/dispatch/connect
2026-09-02 17:04:54 -07:00
Teknium
d66a62469b
refactor(update): lift parked-branch guard out of _prepare_checkout_for_update (161 -> 101 LOC)
2026-09-02 17:03:42 -07:00
Teknium
693893df5c
refactor(kanban-db): compact Task field/constant comments that duplicated SCHEMA_SQL; contextlib.suppress for try/except/pass
2026-09-02 17:02:26 -07:00
Teknium
73ca3efea4
refactor(update): lift divergence reconcile and syntax-guard rollback out of _pull_updates (153 -> 47 LOC)
2026-09-02 17:02:23 -07:00
Teknium
d1df0f21ab
refactor(hermes_cli/main): extract memory/acp/tools/insights/monitoring/skills handlers to main_agent_cmds.py
2026-09-02 17:00:17 -07:00
Teknium
2d7fcf636e
refactor(update): compact re-export import blocks (AST-identical, -117 lines)
2026-09-02 17:00:07 -07:00
Teknium
aa4ffc98e9
refactor(hermes_cli/main): extract WhatsApp/Slack/Skill-Sync setup wizards to main_platform_setup.py
2026-09-02 16:59:52 -07:00
Teknium
231ee6bf69
refactor(update): lift profile syncs and post-summary notices out of _run_post_update_maintenance (174 -> 67 LOC)
2026-09-02 16:59:18 -07:00
Teknium
9994d2b113
refactor(hermes_cli/main): unify lazy re-export tables into _LAZY_ATTR_SOURCES; drop 26 unreferenced re-exports
2026-09-02 16:58:15 -07:00
Teknium
832f77939a
refactor(update): lift snapshot safety nets out of _check_and_apply_config_migration (192 -> 130 LOC)
2026-09-02 16:57:00 -07:00
Teknium
0556cbf52b
refactor(model_setup_flows): re-export only names that existed on the origin at base
...
Helpers introduced by the split (_azure_*, _bedrock_text_model_ids, _configured_model_ids, ...)
never lived in model_setup_flows before, so nothing imports/patches them there; keep the
origin's re-export list to the historical surface. Corpus 396/0 diffs, 364 tests green.
2026-09-02 16:56:40 -07:00
Teknium
a11464423a
refactor(kanban-db): drop dead _clear_spawn_failures alias, unify per-task row/link accessors, compact three docstrings
2026-09-02 16:55:53 -07:00
Teknium
ce45e216e7
refactor(update): promote nested _restart_one_systemd_gateway_unit closure to a module-level function (184 -> 70 LOC orchestrator)
2026-09-02 16:55:53 -07:00
Teknium
ebb9f312dc
refactor(status): extract credential sections into status_auth, unify redact_key
...
- new hermes_cli/status_auth.py: _render_api_keys / _render_auth_providers /
_render_nous_gateway / _render_apikey_providers + their data tables and the
OAuth/timestamp helpers; origin helpers imported lazily so status monkeypatches hold
- status.redact_key was a verbatim copy of hermes_cli.config.redact_key -> imported
- sessions/cron/deep/footer renderers compacted; 624 -> 372 lines (base 639)
Parity: r2m_status_golden.py 33 fixtures byte-identical vs base; real
`hermes status`, `status --deep`, `status --help` byte-identical after normalizing
the per-run temp HERMES_HOME path; test_status*/test_estop/test_jobs_json_utf8_bom green.
2026-09-02 16:54:55 -07:00
Teknium
ce54c8e04a
refactor(model_switch): collapse duplicate bodies, flatten alias/flag parsing, trim re-exports
...
- parse_model_flags_detailed: boolean flags via _BOOL_FLAGS table; scope ladder as data
- _load_direct_aliases / _configured_provider_matches / _config_declares_model /
resolve_alias: single scan or builder per shape instead of parallel branches
- _route_from_model_input split at the MoA/alias seam (-> _route_after_alias)
- re-export block trimmed to the names referenced through hermes_cli.model_switch
(acp_adapter, cli.py, tui_gateway, inventory, gateway, tests); orphaned trailing
comment blocks folded into model_switch_providers docstrings
- 2389 -> 2079 lines; largest function _model_sort_key (90 LOC)
Parity: r2m_switch_corpus.py 434 entries byte-identical vs base; 70 model_switch test
files + tests/test_tui_gateway_server.py green.
2026-09-02 16:54:55 -07:00
Teknium
60041b787a
refactor(update): join short multi-line statements onto one line (AST-identical, -416 lines)
2026-09-02 16:52:38 -07:00
Teknium
15651bd877
refactor(update): lift cold-start plan and SCM service pause out of _pause_windows_gateways_for_update (261 -> 163 LOC)
2026-09-02 16:50:01 -07:00
Teknium
0bfcf42133
refactor(update): unify venv-prefix and backend-argv helpers in update_cmd_windows (3+2 call sites)
2026-09-02 16:48:45 -07:00
Teknium
e03a680592
refactor(kanban-db): split into connect/workspace/dispatch/notify modules
...
Byte-identical bodies moved out of hermes_cli/kanban_db.py into four sibling
modules, re-exported from the origin so kanban_db.<name> keeps resolving and
stays the single monkeypatch target; origin-resident helpers are reached via a
late-bound _kb namespace. AST-identity verified for all 329 moved symbols; SQL
statement multiset parity vs base. Three source-inspection tests repointed at
kanban_db_dispatch; the _add_column_if_missing alias test now imports the real
owner (hermes_cli.sqlite_util).
2026-09-02 16:46:52 -07:00
Teknium
1aa9285312
refactor(update): hand-compact comments/docstrings in update_cmd.py, update_cmd_fleet.py, update_cmd_zip.py (AST-identical); rewrite stale module docstring
2026-09-02 16:45:44 -07:00
Teknium
1c20028afd
refactor(kanban-cli): split the subcommand spec list so no function exceeds 300 LOC
2026-09-02 16:40:44 -07:00
Teknium
2df3d507c9
refactor(tools_config): reflow data tables and compact docstrings/comments in tools_config
2026-09-02 16:40:13 -07:00
Teknium
72490fa6cd
refactor(model_setup_flows): extract custom-endpoint, Azure Foundry and Bedrock wizards into concern modules
...
hermes_cli/model_setup_flows_custom.py (_model_flow_custom, _model_flow_named_custom + helpers),
model_setup_flows_azure.py (_model_flow_azure_foundry + Entra preflight / picker),
model_setup_flows_bedrock.py (BEDROCK_GEO_PREFIXES, routability predicates, both Bedrock flows).
Bodies moved verbatim (AST slices); every name re-exported from model_setup_flows (noqa: F401)
so hermes_cli.main and test imports keep resolving. Origin: 1975 -> 1159 lines.
Flow corpus (396 cases): 0 diffs; 34 test files / 364 tests green.
2026-09-02 16:39:35 -07:00
Teknium
40230dcca7
refactor(hermes_cli/main): replace 23 thin cmd_* forwarders with a _forward_command factory table
2026-09-02 16:39:30 -07:00
Teknium
291c33040c
refactor(models): fold credential-file mtime fingerprinting into one helper
2026-09-02 16:38:16 -07:00
Teknium
278669e412
fix(integration): make /browser sub-handlers module-level so _handle_browser_command works on duck-typed hosts
...
The simplification split _handle_browser_command into _browser_use/
_browser_connect/_browser_disconnect/_browser_status mixin methods; tests
(and any caller) invoking CLICommandsMixin._handle_browser_command on a
stub object broke with AttributeError. Hoist them to module-level
functions taking the cli host explicitly; dispatcher behavior unchanged.
2026-09-02 16:36:12 -07:00
Teknium
4d1880e0bf
fix(integration): restore subprocess encoding/stdin guards dropped in simplification
...
Simplification workers collapsed subprocess call sites into shared kwargs
helpers and dropped the Windows/TUI safety kwargs on the way:
- encoding='utf-8', errors='replace' restored on text=True runs in
copilot_acp_client, hermes_cli/setup (vercel install), managed_uv
(codesign steps), local_runtime/hardware._stdout, a2a adapter.
- stdin=subprocess.DEVNULL restored on copilot probe, verify/runner
_SUBPROCESS_KW, iron_proxy._run, google_meet playwright/system_profiler,
simplex convert, whatsapp _RUN_TEXT, mem0 ollama serve Popen.
google_meet sudo/brew install keeps inherited stdin (user-confirmed,
may prompt) — marked noqa: subprocess-stdin.
- Windows-safe SIGKILL: getattr(signal, 'SIGKILL', SIGTERM) in
verify/runner; photon _kill call re-marked windows-footgun: ok
(unreachable on win32).
- scripts/check_subprocess_stdin.py now recognizes **kwargs splats
(**_KW / **_kw(...)) ONLY when the same-file definition provably sets
stdin= — covers tui_gateway _capture_run_kwargs/run_kw. Parity test added.
2026-09-02 16:36:10 -07:00
Teknium
5c9580c696
refactor(models): dedupe ollama probe failure/ollama-config lookups, pricing fetch/entry helpers; logger parity in models_local
2026-09-02 16:35:42 -07:00
Teknium
d46eb1f964
refactor(update): collapse 90 try/except-pass and try/except-logger.debug blocks into suppress()/_best_effort() (new leaf update_cmd_common.py)
2026-09-02 16:34:55 -07:00
Teknium
85c32cfd4e
refactor(kanban-cli): compact docstrings/comments in kanban.py keeping every rationale
2026-09-02 16:34:31 -07:00
Teknium
57f828a3da
refactor(model_setup_flows): shared wizard skeleton in model_setup_flows_common, flows rebuilt on it (2849 -> 1975 lines)
...
- new hermes_cli/model_setup_flows_common.py: _say/_ask prompt primitives, _persist_model/
_finish_model (save model choice -> provider/base_url/api_mode -> scrub creds -> save),
_activate_provider_model (OAuth providers), _oauth_gate (login / use / reauth / cancel),
_curses_choice + _print_numbered (radio picker with numbered fallback); every existing
helper moved there and re-exported from the origin (noqa: F401).
- god flows split: azure_foundry -> _azure_entra_preflight/_azure_pick_model, custom ->
_probe_custom_endpoint/_pick_detected_model/_parse_context_length, named_custom ->
_configured_model_ids/_discover_named_custom_models/_pick_named_custom_model, nous ->
_nous_model_catalog, copilot -> _copilot_obtain_token, bedrock -> _bedrock_text_model_ids.
- 396-case scripted flow corpus (transcript/config.yaml/.env/auth.json): 0 diffs vs base.
2026-09-02 16:33:41 -07:00
Teknium
6eae28cb6d
refactor(hermes_cli): split cmd_chat prologue into helpers; split build_top_level_parser into flags + chat builders
2026-09-02 16:33:36 -07:00
Teknium
601dfdec82
refactor(auth): pack re-export tuples; plugin registry auto-extend as one helper
2026-09-02 16:33:09 -07:00
Teknium
c633aee918
refactor(kanban-db): split create_task into project-link + skills helpers
2026-09-02 16:32:35 -07:00
Teknium
55b8f0e0ab
refactor(kanban-cli): extract dispatcher/maintenance verbs to kanban_ops; unify single-mutation ok/err reporting
2026-09-02 16:32:06 -07:00
Teknium
80b2cc4814
refactor(tools_config): reflow re-import blocks and TOOL_CATEGORIES env_vars rows
2026-09-02 16:31:32 -07:00
Teknium
ebf2875049
refactor(update): lift already-up-to-date finish out of _cmd_update_impl (290 -> 257 LOC)
2026-09-02 16:31:17 -07:00
Teknium
ec8e85965d
refactor(tools_config): compact extracted modules (join statements, tighten comments)
2026-09-02 16:29:58 -07:00
Teknium
9ebda92cca
refactor(kanban-cli): extract boards cluster to kanban_boards; unify goal-gate, id/reason, run-state and config helpers across handlers
2026-09-02 16:29:40 -07:00
Teknium
bff23bea2c
refactor(update): lift option resolution, receipt/plan, git prep, HEAD verification and CalledProcessError handling out of _cmd_update_impl (521 -> 290 LOC)
2026-09-02 16:29:04 -07:00
Teknium
dc4de83c62
refactor(update): lift ZIP download/swap and deps reinstall out of _update_via_zip (327 -> 137 LOC)
2026-09-02 16:25:31 -07:00
Teknium
bf16d5f996
refactor(doctor): trim re-exports to names referenced outside their module
2026-09-02 16:25:28 -07:00
Teknium
5cc3651b3b
refactor(kanban-cli): extract data-driven argparse tree to kanban_parser and output helpers to kanban_output
2026-09-02 16:25:20 -07:00
Teknium
ffa08e6591
refactor(hermes_cli/main): extract dashboard/serve support cluster to main_dashboard.py
2026-09-02 16:24:55 -07:00