Teknium
a3b6d91302
Merge branch 'simp/r2-update-doctor' into simp/integration2
2026-09-02 17:05:20 -07:00
Teknium
74b4d698fc
Merge branch 'simp/r2-config-tools' into simp/integration2
2026-09-02 17:05:18 -07:00
Teknium
42ed0b4d5c
Merge branch 'simp/r2-kanban-cli' into simp/integration2
2026-09-02 17:05:17 -07:00
Teknium
d6f56549c0
Merge branch 'simp/r2-webserver' into simp/integration2
2026-09-02 17:05:16 -07:00
Teknium
f1a3a75a03
Merge branch 'simp/r2m-runtime' into simp/integration2
2026-09-02 17:05:15 -07:00
Teknium
de93b6ec3e
Merge branch 'simp/r2m-switch' into simp/integration2
2026-09-02 17:05:10 -07:00
Teknium
d3f556e4e2
Merge branch 'simp/r2m-models' into simp/integration2
2026-09-02 17:05:09 -07:00
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
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
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
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
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
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
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
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
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
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
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
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
Teknium
568afa038b
refactor(auth): trim re-export tuples to names with a caller outside the origin package
2026-09-02 16:24:36 -07:00
Teknium
64cf496ca5
refactor(models): collapse deepinfra/custom-cache/provider-list helpers; module docstrings
2026-09-02 16:24:19 -07:00
Teknium
2a9c5d8cf5
refactor(doctor_state): unify state.db repair path, memory-provider dispatch table; doctor.py header
2026-09-02 16:23:25 -07:00
Teknium
f78d519e5a
refactor(auth): collapse duplicate corrupt-store warning, drop dead _SUPPORTED_PREFIXES
2026-09-02 16:23:15 -07:00
Teknium
f28dfda667
refactor(web_server): flatten nested guards in auth middleware + plugin cache; module docstring describes the split
2026-09-02 16:23:06 -07:00
Teknium
55ba3cbd61
refactor(tools_config): extract MCP checklist + enable/disable command into tools_config_mcp; compact checklist/reconfigure helpers
2026-09-02 16:22:15 -07:00
Teknium
975783c31e
refactor(models): table-drive opencode api-mode routing; collapse copilot/anthropic catalog helpers
2026-09-02 16:20:36 -07:00