What happened?
In a WhatsApp direct session, /new does not clear the session-level model override.
It starts a fresh session ID, but the new session still inherits the old providerOverride / modelOverride, so the chat remains pinned to the previous model instead of falling back to the configured default.
Additionally, the reset notice can show a default: model that does not match the current configured agents.defaults.model.primary.
Repro
Environment:
- OpenClaw
2026.3.24
- channel: WhatsApp direct chat
- configured default model:
agents.defaults.model.primary = ollama/minimax-m2.7:cloud
Steps:
- In WhatsApp direct chat, set a session override:
/model gpt
- or any non-default model such as
openai-codex/gpt-5.4
- Confirm with
/status
- Send
/new
- Send
/status again
Expected
After /new (or /reset):
- a fresh session should not keep the previous
modelOverride/providerOverride
- the session should resolve to the configured default model from:
agents.defaults.model.primary
- the reset banner should show the actual configured default model
Actual
After /new:
- the session still uses the previous override model
- the WhatsApp session key remains the same logical route and the new session entry inherits the previous override
- the reset banner can show a
default: model that does not match the current config
Example observed behavior:
- configured default:
ollama/minimax-m2.7:cloud
- active override before reset:
openai-codex/gpt-5.4
- after
/new: still openai-codex/gpt-5.4
- reset notice showed:
✅ New session started · model: openai-codex/gpt-5.4 (default: litellm/gpt-5.3-chat)
Docs expectation
The docs imply reset should start fresh:
docs/concepts/session.md says /new / /reset start a fresh session ID
docs/concepts/model-failover.md says session pinning is reused until the session is reset
Code evidence
Installed bundle still preserves the model override on reset:
dist/pi-embedded-BaSvmUpW.js
if (resetTriggered && entry) {
persistedThinking = entry.thinkingLevel;
persistedVerbose = entry.verboseLevel;
persistedReasoning = entry.reasoningLevel;
persistedTtsAuto = entry.ttsAuto;
persistedModelOverride = entry.modelOverride;
persistedProviderOverride = entry.providerOverride;
...
}
and later writes it back into the session entry.
So /new is effectively “history fresh” but not “model fresh”.
Related issues
This looks related to prior reports in the same area:
This may be a regression or an incomplete fix in the current reset path.
Suggested fix
- On
/new and /reset, do not carry over:
modelOverride
providerOverride
- Ensure the reset notice default model is resolved from the current live config via the same path used for normal default model resolution (
agents.defaults.model.primary)
What happened?
In a WhatsApp direct session,
/newdoes not clear the session-level model override.It starts a fresh session ID, but the new session still inherits the old
providerOverride/modelOverride, so the chat remains pinned to the previous model instead of falling back to the configured default.Additionally, the reset notice can show a
default:model that does not match the current configuredagents.defaults.model.primary.Repro
Environment:
2026.3.24agents.defaults.model.primary = ollama/minimax-m2.7:cloudSteps:
/model gptopenai-codex/gpt-5.4/status/new/statusagainExpected
After
/new(or/reset):modelOverride/providerOverrideagents.defaults.model.primaryActual
After
/new:default:model that does not match the current configExample observed behavior:
ollama/minimax-m2.7:cloudopenai-codex/gpt-5.4/new: stillopenai-codex/gpt-5.4✅ New session started · model: openai-codex/gpt-5.4 (default: litellm/gpt-5.3-chat)Docs expectation
The docs imply reset should start fresh:
docs/concepts/session.mdsays/new//resetstart a fresh session IDdocs/concepts/model-failover.mdsays session pinning is reused until the session is resetCode evidence
Installed bundle still preserves the model override on reset:
dist/pi-embedded-BaSvmUpW.jsand later writes it back into the session entry.
So
/newis effectively “history fresh” but not “model fresh”.Related issues
This looks related to prior reports in the same area:
/new / /reset does not clear session-level model override/model default resolves to 'anthropic/default' instead of resetting to configured default modelSession modelOverride persists across gateway restarts, silently overrides config defaultThis may be a regression or an incomplete fix in the current reset path.
Suggested fix
/newand/reset, do not carry over:modelOverrideproviderOverrideagents.defaults.model.primary)