← Back to PRs

#21876: fix(session): clear model override on /new and /reset

by sauerdaniel open 2026-02-20 13:50 View on GitHub →
size: S
## 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