Teknium
182724d09f
Merge branch 'simp/r2-gw-rest-stream' into simp/r2-gw-rest
2026-09-02 16:55:01 -07:00
Teknium
ba7599c953
Merge branch 'simp/r2-gw-rest-config' into simp/r2-gw-rest
2026-09-02 16:55:01 -07:00
Teknium
b3754e4e19
Merge branch 'simp/r2-gw-rest-slash' into simp/r2-gw-rest
2026-09-02 16:55:01 -07:00
Teknium
8c86804dc4
refactor(approval_detection): compact option tables; drop stale section banner in approval.py
2026-09-02 16:54:57 -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
884c697291
refactor(delegate): split _finalize_child_results (memory/hooks/cost rollup), lift _create_isolated_worktree and _report_child_done, collapse dead worktree-attach import fallback
2026-09-02 16:54:15 -07:00
Teknium
79fc9d127f
Merge simp/r2m-runtime into simp/r2-models-runtime
2026-09-02 16:53:16 -07:00
Teknium
934a35a604
Merge simp/r2m-models into simp/r2-models-runtime
2026-09-02 16:53:16 -07:00
Teknium
015639a6d7
refactor(computer_use): compact capture mixin (name helper, flat signatures/log calls)
2026-09-02 16:53:14 -07:00
Teknium
18fa584366
refactor(computer_use): _CaptureView shares capture-derived facts across response branches; _detach_locked, _bounds_hints, _best_effort_write dedupe (997->976 LOC)
2026-09-02 16:52:47 -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
f54075e0bb
refactor(state): unify lock/lease claim (_claim_lease_row); finalize_orphaned via _write_rowcount
2026-09-02 16:52:21 -07:00
Teknium
3d0e9af47a
refactor(tool_executor): inline memory_manager_executor into resolve_invoke_tool_executor
...
Single-caller factory replaced by the equivalent closure; comment compaction only
otherwise.
2026-09-02 16:51:42 -07:00
Teknium
3f93fdfc95
refactor(tool_executor): split execute_tool_calls_concurrent into _ConcurrentBatch + shared result helpers
...
Behavior-neutral extraction of the 686-LOC concurrent executor and the 429-LOC
sequential executor into focused helpers:
- _ConcurrentBatch (run_worker / submit_all / await_completion / run) and
_StartOrderGate replace the nested closures + nonlocal counters; _ToolOutcome
replaces the 7-tuple result slots; _ParsedCall/_parse_tool_call replaces the
6-tuple parsed-call rows in both executors (-> 2 sites).
- _append_skipped_tool_results unifies the four cancelled/skipped-result loops
(concurrent pre-flight, sequential pre-tool interrupt, sequential
KeyboardInterrupt, sequential post-tool interrupt) -> 4 sites; absorbs
_append_cancelled_tool_results.
- _observe_tool_result / _commit_tool_result / _finalize_tool_batch /
_print_tool_completed / _tool_progress_enabled unify the post-execution
guardrail-observe -> append+flush -> tool.completed -> budget -> /steer tail
shared by the concurrent, sequential and segmented paths (-> 2-3 sites each).
- _unfinished_tool_result, _blocked_tool_result, _abandoned_sequential_result
collapse the duplicated synthesize-result + terminal post_tool_call blocks.
- _registered_tool_worker / _interrupt_worker_tids unify worker tid tracking and
interrupt fan-out between the two middleware runners (-> 2 / 3 sites).
- _run_with_activity_heartbeat extracts the heartbeat thread wrapper.
- _resolve_sequential_dispatch + _SequentialDispatch turn the 5-branch
inline/delegate/context-engine/memory/registry if/elif into a resolver with
per-branch spinner/error/KeyboardInterrupt policy, preserving branch order.
- _cancelled_tool_result and _managed_values inlined (single caller each).
Public signatures (execute_tool_calls_concurrent/sequential/segmented, both
middleware runners, every symbol imported by run_agent.py/agent/tests) are
unchanged; middleware/hook/persistence/progress-callback order is identical.
2026-09-02 16:51:42 -07:00
Teknium
338da30a45
refactor(delegate): _resolve_child_runtime returns AIAgent kwargs (drop _ChildRuntime; routing-filter table); dispatch reuses _detach_child/_signal_child_stop; control actions -> _CONTROL_OUTCOMES table; attribution lookup dedupe
2026-09-02 16:50:57 -07:00
Teknium
6f38d64b7a
refactor(approval): module docstring for the split, blank-line hygiene
2026-09-02 16:50:44 -07:00
Teknium
f65d395535
refactor(state): _FTS_DDL layout table; flatten _fts_table_probe except ladder
2026-09-02 16:50:16 -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
d43ad31c4d
refactor(approval): table-drive interpreter families, fold home-prefix rewriters, compact re-export blocks, drop dead _SHELL_PUNCTUATION
2026-09-02 16:49:10 -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
5820d0b0d5
refactor(gateway/config): extract the config.yaml phase to gateway/config_loader.py; table-driven from_dict; defensive collapse
...
- load_gateway_config (536 LOC) is now a thin orchestrator: legacy gateway.json
-> config_loader.load_yaml_layer -> GatewayConfig.from_dict -> env overrides
-> validation. The yaml phase lives in gateway/config_loader.py as small
functions driven by tables: _TOPLEVEL_BRIDGE (23 top-level/nested
gateway.<key> bridges with 5 fallback modes), _SHARED_KEYS (28 per-platform
keys copied into extra, with per-platform restrictions and transforms) and
_PORT_BRIDGE_KEYS. Logger name kept as "gateway.config".
- GatewayConfig.from_dict: shared pick()/key_label() helpers replace the
repeated "top-level key present else nested gateway.<key>" blocks; warning
order preserved.
- _normalize_unauthorized_dm_behavior / _normalize_notice_delivery unified into
_normalize_choice; _ensure_platform_extra_dict -> _dict_slot (also used by
persist_home_channel); _getenv_int removed (dead since the env pass moved to
config_env, which has its own _int_or).
- Platform._missing_: one _add_pseudo_member helper for both branches.
- Single warning sites in _coerce_optional_positive_int and
coerce_systemd_watchdog_seconds; _validate_gateway_config placeholder pass
flattened; small to_dict/getter collapses. Ruff F401/SIM102 clean.
- tests/hermes_cli/test_config_read_guard.py: allowlist gateway/config_loader.py
(same owner as gateway/config.py — the extracted load_gateway_config phase).
gateway/config.py 2684 -> 1319 LOC (-50.9%); largest function now
GatewayConfig.from_dict at 119 LOC. Resolved-config parity: 160 cells
(16 yaml fixtures x 10 env sets) byte-identical to the integration base,
including captured log records and stderr.
2026-09-02 16:48:36 -07:00
Teknium
eb8d628c97
refactor(hermes_state): restore WHY comments dropped by round-2 sub-branches
...
Comment/docstring-only (AST-identical): surrogate-scrub rationale, persisted
marker stripping invariant, generation counter upgrade semantics, CJK marker
empty-vs-populated rule, WAL 0-page ordering precondition, repair backup
live-connection case, telegram topic delete precondition, mixed-mode
corruption definition, and similar.
2026-09-02 16:48:30 -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
52419bda5d
refactor(delegate): split delegate_task into _normalize_task_list/_coerce_task_schemas/_build_children/_execute_and_aggregate(_Batch); _build_child_agent -> _open_child_session_db/_construct_child_agent/_announce_child_spawn; _run_single_child -> _lease_child_credential/_await_child/_merge_late_steer
2026-09-02 16:46:39 -07:00
Teknium
2a9e16fded
refactor(computer_use): compact cua_backend re-export imports (AST-identical)
2026-09-02 16:46:34 -07:00
Teknium
629e6eb1b5
refactor(turn): split finalize_turn into phase helpers (576 -> 264 LOC)
2026-09-02 16:46:33 -07:00
Teknium
fa827f596e
refactor(gateway/hosted_rooms): reflow multi-line SQL constants (whitespace-only, parity-verified)
2026-09-02 16:46:00 -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
a61298a21c
refactor(computer_use): doctor — shared structured/first-line helpers, unified version message
2026-09-02 16:45:39 -07:00
Teknium
52d982281c
refactor(state): _stale_holder guard helper; join implicit-concat SQL fragments (AST-identical)
2026-09-02 16:44:38 -07:00
Teknium
067b31bc8c
refactor(tts): refresh module-layout docstring for new sibling modules
2026-09-02 16:44:14 -07:00
Teknium
6ebbb6c787
refactor(tts): share auxiliary-model tag rewrite between xAI and Gemini
2026-09-02 16:44:14 -07:00
Teknium
19997e9978
refactor(tts): lift chunk synthesis loop out of text_to_speech_tool
2026-09-02 16:44:14 -07:00
Teknium
93131b17a6
refactor(tts): drop re-export shims with no external consumers; siblings import from defining modules
2026-09-02 16:44:13 -07:00
Teknium
fe25c59281
refactor(tts): plugin-provider layer into tts_tool_plugins with one lookup helper
2026-09-02 16:44:13 -07:00
Teknium
caf37e23d4
refactor(tts): importer factory, requirements table, caps to delivery, legacy strip to text_normalize, single-chunk dedupe
2026-09-02 16:44:13 -07:00
Teknium
ef9f860284
refactor(tts): extract OpenAI/DeepInfra backend and lifecycle leases into sibling modules
2026-09-02 16:44:12 -07:00
Teknium
d913175067
refactor(tts): move command-provider config layer into tts_command_provider
...
Completes the half-done move snapshotted by the parent (wip commit 283f63b):
the tts.providers.<name> config layer (_get_named_provider_config,
_resolve_command_provider_config, _generate_command_tts, ...) now lives in
tools/tts_command_provider.py; tts_tool re-imports the historical names.
2026-09-02 16:44:05 -07:00
Teknium
529f1ac0aa
refactor(turn): drop section-banner comments in turn_facade_lease
2026-09-02 16:43:09 -07:00
Teknium
b4c38f2aa9
refactor(turn): lift run_conversation lease/liveness closures into agent.turn_facade_lease
2026-09-02 16:43:09 -07:00
Teknium
74b928b6a3
refactor(turn): compact log-call formatting in turn_context_compaction
2026-09-02 16:43:08 -07:00
Teknium
d6ef4190cc
refactor(turn): collapse preflight estimator branch, build_api_messages pops, docstrings; add turn_context_compaction tests
2026-09-02 16:42:25 -07:00
Teknium
325a505602
refactor(approval): move smart-verdict observer + elicitation consent to their leaf modules; hoist re-exports
2026-09-02 16:42:18 -07:00
Teknium
2e9a5e9f32
refactor(gateway/slash): collapse /whoami, /platform, /stop, /footer, /verbose duplication; extract /compress preview; module docstrings
2026-09-02 16:41:41 -07:00
Teknium
d507b71e7c
Merge branch 'simp/r2a-mcp-oauth' into simp/r2a-mcp
2026-09-02 16:41:11 -07:00
Teknium
40e4338d27
Merge branch 'simp/r2a-mcp-transport' into simp/r2a-mcp
2026-09-02 16:41:11 -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
84c2e326f2
refactor(turn): split build_turn_context into helpers; extract turn-start compaction to turn_context_compaction.py
2026-09-02 16:40:40 -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