hermes-agent/tests/tui_gateway
ScotterMonk d9cdb81923 feat(config): support per-model reasoning_effort overrides
Add agent.reasoning_overrides dict to config.yaml. Users can now set
a reasoning_effort per model, overriding the global agent.reasoning_effort.

Example:
  agent:
    reasoning_effort: "medium"       # global default
    reasoning_overrides:
      "openrouter/anthropic/claude-opus-4.5": "xhigh"
      "openai/gpt-5": "low"
      "claude-sonnet-4.6": "high"    # bare model name also works

The helper is spelling-tolerant: override keys match regardless of
provider prefix or dots-vs-dashes normalization, so users can write
keys in any sensible form and they'll match.

Resolution priority:
1. Session-scoped /reasoning --session override (gateway only; unchanged)
2. Per-model override from agent.reasoning_overrides (spelling-tolerant)
3. Global agent.reasoning_effort (existing)
4. Provider default (unchanged)

Wired into:
- CLI startup (cli.py)
- Messaging gateway agent construction (gateway/run.py)
- Desktop/TUI _load_reasoning_config (tui_gateway/server.py)
- Cron job scheduler (cron/scheduler.py)
- /model mid-session switch (agent/agent_runtime_helpers.py)
  + _primary_runtime now tracks reasoning_config for correct fallback recovery
- Fallback activation (agent/chat_completion_helpers.py::try_activate_fallback)
  + Re-resolves reasoning_config for the fallback model (best-effort)

Closes #21256 (per-model reasoning_effort defaults).

Note: no hermes config set agent.reasoning_overrides.<model> support;
users edit the YAML directly. _set_nested splits on "." and would
corrupt model keys containing version dots.
2026-07-14 11:46:40 -07:00
..
__init__.py
test_billing_rpc.py
test_compaction_status.py
test_custom_provider_session_persistence.py
test_delegation_session_lifecycle.py
test_entry_sys_path.py
test_finalize_session_persist.py fix tui finalize persist drop conversation_history so disconnect saves chat 2026-07-10 07:47:10 -07:00
test_gateway_owned_session_reap.py
test_goal_command.py
test_inline_rpc_gil_starvation.py
test_make_agent_provider.py
test_mcp_late_refresh_thread_owner.py
test_moa_reference_emit.py
test_model_switch_marker_role.py
test_pet_generate_rpc.py
test_project_tree.py fix(desktop): mirror Windows path identity in live overlay + WSL spelling 2026-07-12 04:33:05 -04:00
test_projects_rpc.py
test_protocol.py Merge pull request #61885 from embwl0x/agent/tui-secret-overlay-expiry 2026-07-12 05:50:24 -05:00
test_reasoning_config_per_model.py feat(config): support per-model reasoning_effort overrides 2026-07-14 11:46:40 -07:00
test_reasoning_session_scope.py
test_render.py
test_review_summary_callback.py
test_session_platform_resolution.py
test_slash_worker_ansi.py
test_slash_worker_mcp_discovery.py test(tui): cover profile-local MCP discovery 2026-07-10 18:09:17 +05:30
test_slash_worker_profile_home.py
test_slash_worker_sys_path.py
test_subagent_child_mirror.py
test_undo_command.py
test_wait_for_mcp_discovery.py