-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
[openclaw status] Model field should distinguish base model from active fallback #96126
Copy link
Copy link
Closed
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.maturity:stableIssue affects a taxonomy feature currently scored M4/M5.Issue affects a taxonomy feature currently scored M4/M5.
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.Auth, provider routing, model choice, or SecretRef resolution may break.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.maturity:stableIssue affects a taxonomy feature currently scored M4/M5.Issue affects a taxonomy feature currently scored M4/M5.
Type
Fields
Priority
None yet
Title
[openclaw status] Model field should distinguish base model from active fallback
Summary
When a session's primary model fails and a fallback is used,
session_statusandopenclaw status --jsonreport only the active (fallback) model. This makes it appear as if the configuredprimaryhas been replaced, which can cause confusion or look like a routing policy violation when one isn't intended.Environment
main(alsotelegram,ocr)minimax/MiniMax-M3ollama/qwen3.5-codgician-q4km,ollama/qwen3.6-blue:35b-a3bReproduction
minimax/MiniMax-M3, fallbacks =ollama/qwen3.5-codgician-q4km, ...session_statusCurrent behavior
openclaw status --jsonsessions.recent[0]:{ "model": "MiniMax-M3", ← raw "configuredModel": "minimax/MiniMax-M3", "selectedModel": "openai/gpt-5.5", ← active fallback "modelSelectionReason": null, ← missing reason ... }The base/active separation exists in
--jsonoutput but the human-readable status card collapses both into a singleModel:line, hiding the configured primary.Expected behavior
The status card should show both base and active, plus why the fallback was selected. Example:
Or a single line if no fallback is in use:
Why this matters
configuredModel/selectedModel/modelSelectionReason) is already there, just not surfaced in the status cardSuggested fix
In the status card formatter, when
selectedModel != configuredModel:modelSelectionReason(currentlynull— populate when fallback is selected)Fallbacks:line for the chainSeverity
Low (cosmetic / observability), but high value for operators who manage multi-model setups.
Related
agents.defaults.model.fallbackschain configagents.list[].model.fallbacksper-agent overridesmodelSelectionReasonfield insessions.recent[](currently alwaysnull)