fix(grok): allow model changes in existing threads - #8392
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a minimal, self-contained fix removing Grok’s stale new-thread restriction so the existing You can add or adjust custom eligibility rules. Learn more. |
## What's Changed * feat(mobile): update tool summaries and chat transitions by @juliusmarminge in pingdotgg/t3code#8793 * feat(web): play video attachments in chat by @Bil0000 in pingdotgg/t3code#8688 * fix(web,mobile): snooze menu no longer offers the same wake time twice by @vitalyiegorov in pingdotgg/t3code#8741 * fix(grok): allow model changes in existing threads by @ahmed-besic in pingdotgg/t3code#8392 * feat(mobile): pick, share, and receive files in threads by @t3dotgg in pingdotgg/t3code#8237 ## New Contributors * @ahmed-besic made their first contribution in pingdotgg/t3code#8392 **Full Changelog**: pingdotgg/t3code@v0.0.37-nightly.20260830.1227...v0.0.37-nightly.20260830.1232 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.37-nightly.20260830.1232
## What's Changed * Remove Messages Glass Lab experiment by @juliusmarminge in pingdotgg/t3code#8599 * Require human review for pull requests changing product defaults by @juliusmarminge in pingdotgg/t3code#8603 * fix(codex): avoid quadratic app-server input buffering by @juliusmarminge in pingdotgg/t3code#8605 * fix(mobile): stabilize iOS header item transitions by @juliusmarminge in pingdotgg/t3code#8607 * chore(mobile): upgrade to Expo SDK 57 by @juliusmarminge in pingdotgg/t3code#8609 * fix(mobile): harden native header toolbar items by @juliusmarminge in pingdotgg/t3code#8611 * fix(server): stop querying Claude context usage after turns by @t3dotgg in pingdotgg/t3code#8610 * chore: vouch ryanrhughes by @t3dotgg in pingdotgg/t3code#8613 * feat(web): attach PDFs, ZIPs, and other files to a turn by @t3dotgg in pingdotgg/t3code#8236 * feat(web): keybinding settings as settings rows by @StiensWout in pingdotgg/t3code#8532 * feat: let an environment publish themes as a file by @ryanrhughes in pingdotgg/t3code#8569 * fix(web): clean up provider settings list and editor by @StiensWout in pingdotgg/t3code#8504 * fix(web): keep project picker popup inside the sidebar by @SunkenInTime in pingdotgg/t3code#8627 * fix(mobile): prevent header overflow and back-button artifacts by @juliusmarminge in pingdotgg/t3code#8624 * fix(server): retry automatic thread title generation by @Bil0000 in pingdotgg/t3code#8087 * fix(client-runtime): refresh edited pull request comments by @Bil0000 in pingdotgg/t3code#8094 * fix(web): four composer spacing defects by @Bil0000 in pingdotgg/t3code#8090 * perf(desktop): skip duplicate browser updates by @Bil0000 in pingdotgg/t3code#8018 * fix(web): render nested markdown images correctly by @flamboh in pingdotgg/t3code#8501 * fix(web): unify activity logs and composer banners by @juliusmarminge in pingdotgg/t3code#8693 * fix(mobile): reduce dev-client reload and Metro startup cost by @juliusmarminge in pingdotgg/t3code#8694 * revert(web): restore previous composer banners by @t3dotgg in pingdotgg/t3code#8733 * test(web): remove tests for unreachable helpers by @t3-code[bot] in pingdotgg/t3code#8738 * feat(mobile): update tool summaries and chat transitions by @juliusmarminge in pingdotgg/t3code#8793 * feat(web): play video attachments in chat by @Bil0000 in pingdotgg/t3code#8688 * fix(web,mobile): snooze menu no longer offers the same wake time twice by @vitalyiegorov in pingdotgg/t3code#8741 * fix(grok): allow model changes in existing threads by @ahmed-besic in pingdotgg/t3code#8392 * feat(mobile): pick, share, and receive files in threads by @t3dotgg in pingdotgg/t3code#8237 * fix(web): reduce title bar scroll fade height by @maria-rcks in pingdotgg/t3code#8799 * fix(windows): strip quotes from repaired PATH by @UtkarshUsername in pingdotgg/t3code#8746 * fix(web): open agent images in expanded preview by @maria-rcks in pingdotgg/t3code#8807 * fix(git): follow repository instructions in generated source control text by @maria-rcks in pingdotgg/t3code#8804 * fix(server): stop overpricing cached Claude tokens by @SunkenInTime in pingdotgg/t3code#8806 * fix(web): keep image preview above sidebar control by @maria-rcks in pingdotgg/t3code#8811 * fix(web): keep right panel synced with agent edits by @maria-rcks in pingdotgg/t3code#8803 * fix(web,mobile): render Codex citations and artifact templates by @Yash-Singh1 in pingdotgg/t3code#8584 * chore: add Windows setup script to t3.json by @UtkarshUsername in pingdotgg/t3code#8814 * fix(web): fold interim turn responses by @maria-rcks in pingdotgg/t3code#8828 * fix(web): use circle alert for failed tool calls by @maria-rcks in pingdotgg/t3code#8840 * feat(mobile): add offline iPhone voice input by @t3dotgg in pingdotgg/t3code#8614 * fix(web): prevent pull request metadata overlap by @MatthewFeroz in pingdotgg/t3code#8790 ## New Contributors * @ryanrhughes made their first contribution in pingdotgg/t3code#8569 * @ahmed-besic made their first contribution in pingdotgg/t3code#8392 * @MatthewFeroz made their first contribution in pingdotgg/t3code#8790 **Full Changelog**: pingdotgg/t3code@v0.0.36...v0.0.37 Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.37
Grok supports
session/set_model, and T3's adapter already applies a changed model before the next prompt. However, the provider snapshot still marked Grok as requiring a new thread, so the client disabled model changes and the server rejected them before they reached the adapter.This removes that stale provider lock. Existing client and server behavior now passes the changed selection through to Grok, which switches models within the active session.
Fixes #8385. Builds on the Grok reliability work merged in #8358. The same lock removal appeared in the broader closed PRs #6383 and #7070; this PR isolates only the missing behavior. #6075 remains separate and tracks invalid synthetic
grok-buildmodel IDs.Checks:
vp test run apps/server/src/provider/Layers/GrokProvider.test.ts apps/server/src/orchestration/Layers/ProviderCommandReactor.test.ts apps/web/src/components/ChatView.logic.test.ts(111 passed)session/set_modelfor another advertised modelNo UI components changed, so there are no before/after screenshots.
Implemented with GPT-5.6 Sol through the Codex harness in T3 Code.
Note
Low Risk
Single presentation-field removal with no auth or data-path changes; behavior aligns with already-implemented Grok ACP model switching.
Overview
Grok no longer advertises that model switches require a new thread. The provider presentation drops
requiresNewThreadForModelChange: true, so snapshots no longer carry that lock even though Grok ACP already supportssession/set_modelin the active session.With the flag gone, existing client and server paths can accept mid-thread model changes instead of blocking them up front. The initial snapshot test now expects
requiresNewThreadForModelChangeto be undefined rather than true.Reviewed by Cursor Bugbot for commit c262aa9. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Remove
requiresNewThreadForModelChangefromGROK_PRESENTATIONinGrokProviderAllows Grok model changes in existing threads by removing the
requiresNewThreadForModelChange: trueflag from theGROK_PRESENTATIONconstant in GrokProvider.ts. Updates the pending snapshot test to expect the property asundefined.requiresNewThreadForModelChangefromGROK_PRESENTATIONor derived snapshots will now seeundefinedinstead oftrue.Macroscope summarized c262aa9.