Skip to content

/new and /reset should clear session model overrides #65200

Description

@rmzlb

Summary

/new and /reset preserve modelOverride and providerOverride from the previous session entry. This means a /model change made days or weeks ago survives indefinitely through resets, silently overriding channels.modelByChannel and agents.defaults.model.primary.

Expected behavior

/new should clear modelOverride, providerOverride, and authProfileOverride so the session falls back to modelByChannel or the configured default. If the user wants a specific model for the new session, they can use /new <model>.

Current behavior

In initSessionState() (reply module), when resetTriggered && entry:

persistedModelOverride = entry.modelOverride;
persistedProviderOverride = entry.providerOverride;
persistedAuthProfileOverride = entry.authProfileOverride;

These are copied forward into the new session entry, making the override sticky across resets.

Reproduction

  1. In a Telegram topic with modelByChannel pointing to opus-bedrock
  2. Run /model codex — session override is set
  3. Run /new — new session starts
  4. The session still uses codex instead of falling back to modelByChannel

Suggested fix

In the resetTriggered && entry block, skip copying model/provider/auth overrides:

if (resetTriggered && entry) {
    persistedThinking = entry.thinkingLevel;
    persistedVerbose = entry.verboseLevel;
    persistedReasoning = entry.reasoningLevel;
    persistedTtsAuto = entry.ttsAuto;
    // Do NOT persist model overrides through /new
    // persistedModelOverride = entry.modelOverride;
    // persistedProviderOverride = entry.providerOverride;
    // persistedAuthProfileOverride = entry.authProfileOverride;
}

Alternatively, /new could accept a --keep-model flag for users who want the current behavior.

Context

  • Version: 2026.4.9
  • Relevant code: initSessionState() in compiled reply-BwK-bN2w.js
  • Source: src/auto-reply/reply/session.ts
  • Doc states: "/new starts a new session" but does not clarify override persistence

Workaround

Use session_status(model="default") or /model default to manually clear the override after /new.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions