mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-25 17:18:11 +00:00
A session pinned to a named custom provider could silently reroute to the user's default provider on resume/rebuild. Session rows persist the RESOLVED provider — bare "custom" for every named providers:/custom_providers: entry — and when no base_url survived in model_config, the existing heal (canonical_custom_identity) had only the config.model.provider fallback left. For users whose global default is a BUILT-IN provider (e.g. nous) that tier cannot fire, so the bare provider was dropped, resume fell back to the default provider with the session's custom model name, and the default endpoint 404'd with "Model '<x>' not found. The requested model does not exist in our configuration or OpenRouter catalog." Re-selecting via /model fixed it until the next resume — the reported symptom. Add a model-name recovery tier between the base_url reverse-lookup and the config fallback: find_custom_provider_identity_by_model() maps the stored model back to the entry that serves it (model/default_model/models catalog, dict and legacy list shapes). The session row always stores the model, so the entry identity survives even when the row has no base_url AND the global default points elsewhere. All five bare-custom heal sites in tui_gateway/server.py now pass the model: _ensure_session_db_row, _stored_session_runtime_overrides, _runtime_model_config, _make_agent, and _model_picker_context. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| test_billing_rpc.py | ||
| test_codex_app_server_live_events.py | ||
| test_compaction_status.py | ||
| test_compress_lock_skip.py | ||
| test_compute_host.py | ||
| test_compute_host_phase1.py | ||
| test_custom_provider_session_persistence.py | ||
| test_delegation_session_lifecycle.py | ||
| test_entry_sys_path.py | ||
| test_fast_session_scope.py | ||
| test_finalize_session_persist.py | ||
| test_gateway_owned_session_reap.py | ||
| test_goal_command.py | ||
| test_image_routing_stale_model.py | ||
| test_inline_rpc_gil_starvation.py | ||
| test_interim_assistant_callback.py | ||
| test_iso_certify_seam.py | ||
| test_make_agent_provider.py | ||
| test_mcp_late_refresh_thread_owner.py | ||
| test_mcp_reload_rev.py | ||
| test_moa_reference_emit.py | ||
| test_model_switch_marker_role.py | ||
| test_pet_generate_rpc.py | ||
| test_project_tree.py | ||
| test_projects_rpc.py | ||
| test_protocol.py | ||
| test_reasoning_config_per_model.py | ||
| 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_slash_worker_profile_home.py | ||
| test_slash_worker_sys_path.py | ||
| test_subagent_child_mirror.py | ||
| test_subprocess_encoding.py | ||
| test_undo_command.py | ||
| test_wait_for_mcp_discovery.py | ||