#21876: fix(session): clear model override on /new and /reset
size: S
Cluster:
Session Management Improvements
## Problem
`/model` sets per-session overrides (`providerOverride`, `modelOverride`). After `/new` or `/reset`, these overrides were still carried forward, so users could not reliably return to configured defaults.
This is surprising behavior for a reset and is reported in #21725.
## Root cause
`initSessionState` preserved model/provider overrides during reset-triggered session initialization.
## What changed
- Keep preserving behavior toggles (`thinking`, `verbose`, `reasoning`, `ttsAuto`) across `/new` and `/reset`.
- **Stop** preserving `providerOverride` / `modelOverride` across `/new` and `/reset`.
- Added regression test that verifies:
- behavior overrides are preserved
- model/provider overrides are cleared
- cleared state persists to session store
## Testing
- `pnpm vitest run src/auto-reply/reply/session.test.ts`
- `pnpm check`
- `pnpm build`
## Local Validation
```bash
pnpm build && pnpm check && pnpm vitest run src/auto-reply/reply/session.test.ts
```
## AI-Assisted
AI-assisted. Changes and tests were reviewed and run locally.
Fixes #21725
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
Clears `providerOverride` and `modelOverride` session state on `/new` and `/reset` commands while preserving behavior toggles (`thinking`, `verbose`, `reasoning`, `ttsAuto`). This fixes unexpected behavior where model selection persisted after reset instead of returning to configured defaults.
- Removed preservation of `persistedModelOverride` and `persistedProviderOverride` in the reset-triggered session initialization path (session.ts:254-261)
- Added regression test verifying model/provider overrides are cleared on `/new` while behavior overrides are preserved
- Test confirms cleared state persists to session store
<h3>Confidence Score: 4/5</h3>
- Safe to merge with minor test coverage gap
- Implementation is correct and surgical - only removes the two lines preserving model/provider overrides in the reset path. Test coverage verifies the fix for `/new` and persistence to store. Score reflects incomplete test coverage (missing `/reset` test) rather than implementation issues.
- No files require special attention - implementation is straightforward
<sub>Last reviewed commit: 871d72d</sub>
<!-- greptile_other_comments_section -->
<!-- /greptile_comment -->
Most Similar PRs
#21847: fix(session): /new and /reset no longer carry over model overrides
by hydro13 · 2026-02-20
90.3%
#21849: fix(session): clear model/provider overrides on /new and /reset
by widingmarcus-cyber · 2026-02-20
90.3%
#11613: fix: clear stale model metadata on /new and /reset
by mcaxtr · 2026-02-08
87.4%
#14358: fix: preserve session overrides (verbose, model) across /new or /rese…
by WyattSanders · 2026-02-12
87.2%
#17011: fix(/new /reset): clear model override for reset turn
by Limitless2023 · 2026-02-15
86.8%
#21731: Fix: clear stale session runtime model on /new, /reset, and session...
by AIflow-Labs · 2026-02-20
86.3%
#20185: fix(model): recognize default/reset/clear keywords to clear session...
by yxshee · 2026-02-18
83.9%
#17375: fix(session): don't carry stale model info into reset welcome message
by BinHPdev · 2026-02-15
83.8%
#20770: fix: prevent stale session-entry overwrite during reset-model persi...
by coygeek · 2026-02-19
81.3%
#10186: fix: clear model/provider override when /new starts a fresh session
by Yida-Dev · 2026-02-06
80.6%