Skip to content

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

@rmzlb

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions