Repository navigation
fix(server): switching the Claude model no longer blocks a later provider switch - #34498
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This prevents idle Claude model-change echoes from being mistaken for background work that blocks provider switching. The filter is narrowly scoped, leaving active turns and genuine background-work handling unchanged. You can add or adjust custom eligibility rules. Learn more. |
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
|
This PR conflicts with See the conflict window. |
…ider switch The Claude CLI answers setModel with a replayed local-command user frame. It arrives before the next turn attaches, so the adapter buffered it as the start of a wake. Nothing drains that buffer on a user turn, so the session reported background work until the process exited and every provider switch was refused. Drop that echo when no turn is active. Co-Authored-By: Claude <noreply@anthropic.com>
6d57859 to
70b1406
Compare
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
EvidenceReal web client, Chromium, 1280×800, light theme; separate fresh databases and real providers. Steps: Haiku 5.5 Medium → send
Base also refused a retry more than three minutes after Sonnet completed, with no Stop button available. Head completed the same handoff and returned |
* fix(shared): atomic saves handle long filenames (pingdotgg#33250) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): message search no longer finds rolled-back turns or cancelled queued messages (pingdotgg#29874) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): OpenDocument slide previews no longer print speaker notes (pingdotgg#33294) Co-authored-by: Geezy <igor.licko@gloryck.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(mobile): cancelled PR checks count as failing in the checks summary (pingdotgg#29809) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(mobile): .markdown, .mdown and .mkd files open with a Markdown preview (pingdotgg#29822) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web,mobile): pull request project filter lists pinned projects first (pingdotgg#29871) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): Claude Fable 5.2 is offered only from Claude Code 2.1.321 (pingdotgg#36805) * fix(mobile): scheduled tasks due within the hour no longer read "Next run in 60 minutes" (pingdotgg#29756) Co-authored-by: Julius Marminge <julius0216@outlook.com> * test(server): title change test ignores a probe pending at browser close (pingdotgg#36818) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): agents can read documents a guest attaches (pingdotgg#29760) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): opening a very large folder no longer freezes the Files panel (pingdotgg#29996) Co-authored-by: Nathan Wong <20381195+thelogicmatrix@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(gitlab): a fork's same-named branch no longer hides the branch's own merge request (pingdotgg#29791) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(editors): Open in Zed no longer finds the ZFS event daemon (pingdotgg#33461) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): preview hover and drag fail within their timeout, not up to 3x later (pingdotgg#33550) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): skills from CLAUDE_CODE_PLUGIN_DIRS plugins show in the composer (pingdotgg#33341) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(gitlab): `glab mr new` links the new merge request to the thread (pingdotgg#33475) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(mobile): Android section headers show the collapse arrow when expanded (pingdotgg#33513) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(claude): tools running at Stop show as stopped, not failed (pingdotgg#29801) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): a pull request whose title holds a numeric search ranks above description-only matches (pingdotgg#33692) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(acp-registry): a uv-installed agent launches its managed command, not a same-named one on PATH (pingdotgg#33836) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): refuse unresolved UTF-16 merge commits (pingdotgg#36817) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): remove worktrees through their owning repository (pingdotgg#33586) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): RTF attachment text keeps joiners and direction marks (pingdotgg#36824) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): scheduled tasks in a non-Git project run in its folder instead of failing (pingdotgg#36821) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): deleting a thread with side chats offers to delete its worktree (pingdotgg#36800) Co-authored-by: Alex Southwell <4596216+saphid@users.noreply.github.com> * perf(web): completed Markdown blocks no longer render twice (pingdotgg#33794) Co-authored-by: Julius Marminge <julius0216@outlook.com> * perf(web): opening a thread from a draft only renders its sidebar row (pingdotgg#33435) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(usage): refetch cached rates early for a model they do not list (pingdotgg#33725) Co-authored-by: DrSeedon <DrSeedon@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): copied email links keep their destination (pingdotgg#36830) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): message search finds smart apostrophes when scanning (pingdotgg#36832) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(shared): preserve whitespace in POSIX PATH directories (pingdotgg#33840) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): dropdown hover fills expanded Git action rows (pingdotgg#35527) Co-authored-by: brkgzlsy <berke.guzelsoy@fabrite.ch> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(clients): undoing a settle puts the thread back where you placed it (pingdotgg#33248) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): queued images open in the image viewer (pingdotgg#33298) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(mobile): removing an environment drops its threads from Android launcher shortcuts (pingdotgg#33726) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): a zero Git fetch interval also stops the status upstream fetch (pingdotgg#33845) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(ssh): include hosts from wildcard filenames with line separators (pingdotgg#35479) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): preserve DOCX non-breaking hyphens in attachment text (pingdotgg#36845) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): diff file tree shows added and deleted files before their patches load (pingdotgg#33310) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): audio and server spinners respect reduced motion (pingdotgg#33795) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): provider switches on portable forks keep inherited conversation (pingdotgg#36839) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): show Browser device preferences read-only for projects (pingdotgg#36846) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(cli): t3 connect unlink with T3 stopped also clears the webhook hold setting (pingdotgg#33822) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): decode escaped XLSX attachment text (pingdotgg#36849) Co-authored-by: Grok 4.7 <noreply@x.ai> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(desktop): recover prepared remote updates on retry (pingdotgg#33605) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): OpenCode keeps its cached models when a cold probe lists none (pingdotgg#33640) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): retain custom model drafts until saved (pingdotgg#35176) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): trackpad scrolling no longer stalls on gaps between right panel tabs (pingdotgg#35255) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): Settings > Projects list follows the selected environment (pingdotgg#36856) * fix(web): pasted images stay at their original insertion point (pingdotgg#35528) Co-authored-by: brkgzlsy <berke.guzelsoy@fabrite.ch> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): Cite is offered for text an agent sent with send_to_user (pingdotgg#36858) * fix(web): desktop browser tabs show native navigation immediately (pingdotgg#35299) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): a steer that misses its turn moves into the run it starts (pingdotgg#36855) * fix(server): keep boolean XLSX cells as true/false in extracted text (pingdotgg#35191) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(desktop): tolerate disk-full console output (pingdotgg#35245) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(dev): first dev start builds the missing resource monitor (pingdotgg#34975) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): a failed comments read no longer hides PR check updates (pingdotgg#33452) Co-authored-by: Emi Griffith <emi.g@jinemi.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(mobile): typing before a chip no longer leaves the iOS caret behind (pingdotgg#33774) Co-authored-by: Julius Marminge <julius0216@outlook.com> * perf(server): git status refresh reads local status once unless refs moved (pingdotgg#29155) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): a setting change no longer detaches a busy session kept from an earlier hand-off (pingdotgg#35258) Co-authored-by: Mika Hertler <mika@mikahertler.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): storage cleanup removes idle worktrees whose branch was renamed or switched (pingdotgg#34984) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(claude): rename the native session when the thread title changes (pingdotgg#34775) Co-authored-by: kumar-karan <kumar-karan@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(desktop): an emptied browser cookie jar imports as empty instead of failing (pingdotgg#34698) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): each websocket RPC starts its own trace so Tempo keeps its spans (pingdotgg#36863) * fix(mobile): compaction notice becomes a chip in the composer (pingdotgg#36872) * fix(web): repeated diff blocks no longer crash the viewer (pingdotgg#35304) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): copied literal Markdown sends as shown (pingdotgg#36867) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): move to Node 26.13.1 without migrations storing JSON arrays as strings (pingdotgg#34576) Co-authored-by: Julius Marminge <julius0216@outlook.com> * perf(server): skip the full untracked scan when Git status shows none (pingdotgg#36870) * fix(server): show Claude's root refusal when it exits before the turn starts (pingdotgg#34621) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): keep a launched thread's title when its first message arrives (pingdotgg#35117) Co-authored-by: Julius Marminge <julius0216@outlook.com> * perf(server): the next turn no longer waits for the previous turn's git status refresh (pingdotgg#32349) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> * fix(server): queued messages no longer wait behind every later delegate completion (pingdotgg#34620) Co-authored-by: Apex-ICP <jesse@apexicp.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(mobile): a link during video playback no longer rebuilds the open thread (pingdotgg#34990) Co-authored-by: Julius Marminge <julius0216@outlook.com> * test(web): terminal drawer test keeps its session atoms across GC (pingdotgg#36888) * fix(server): switching the Claude model no longer blocks a later provider switch (pingdotgg#34498) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): a worktree launch from a missing base branch names the branch (pingdotgg#34452) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): Claude /rename now retitles the T3 thread (pingdotgg#36879) * fix(web): open editors when saving their preference fails (pingdotgg#34308) Co-authored-by: Julius Marminge <julius0216@outlook.com> * feat(client): add-project folder search matches substrings and fuzzy subsequences (pingdotgg#26376) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(web): typing in the file editor no longer jumps to the prompt (pingdotgg#35122) Co-authored-by: user <user@qubes-os.org> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): keep thread find working with many matches in one row (pingdotgg#34402) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): Arabic and Hebrew folds in chat read right to left (pingdotgg#36876) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(mobile): iOS composer text follows the system text size (pingdotgg#34670) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): turn recovery covers interrupted and cancelled runs' abandoned turns (pingdotgg#34639) Co-authored-by: Ali-Al1 <Ali-Al1@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): show TAR hard links in archive previews (pingdotgg#34329) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): preserve ODF paragraph whitespace in agent sidecars (pingdotgg#36883) Co-authored-by: Grok 4.7 <noreply@x.ai> Co-authored-by: Julius Marminge <julius0216@outlook.com> * perf(web): trim terminal link delimiters in linear time (pingdotgg#34397) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(shared): preserve Unicode during command output overwrites (pingdotgg#34332) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): a self-settle survives a queued message steered into the turn (pingdotgg#36896) * fix(server): queued-input index no longer rejects user messages with non-JSON payloads (pingdotgg#36898) * fix(server): filter scheduled tasks without exposing webhook URLs (pingdotgg#27716) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): distinguish media Back from window close (pingdotgg#33125) * fix(mobile): VoiceOver names the iOS message box (pingdotgg#34658) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): PR sync backs off links on hosts it cannot read (pingdotgg#36901) * perf(web): skip oversized TAR preview payload copies (pingdotgg#34301) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): voice cleanup pinned to an ACP provider uses the text model (pingdotgg#36912) * fix(server): Swift TestFlight clients can read settings again (pingdotgg#26455) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(github): Load more no longer stalls on a full page of equal update times (pingdotgg#36910) * fix(desktop): preserve recordings saved in the same millisecond (pingdotgg#34314) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(client): refresh open archive when threads are archived elsewhere (pingdotgg#36909) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): keep files when submodule checks retain a worktree (pingdotgg#34196) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): copying from a later list item keeps its numbers (pingdotgg#36915) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): a failed turn start no longer leaves the thread stuck starting (pingdotgg#14424) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): successive custom model saves keep earlier edits (pingdotgg#36906) Co-authored-by: Grok 4.7 <noreply@x.ai> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): restore word selection in inline code (pingdotgg#36936) * fix(server): recognize Windows Volta provider installs (pingdotgg#36917) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): showing a composer banner no longer makes the page restyle everything until reload (pingdotgg#34537) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(install): launch t3 by absolute path (pingdotgg#13794) Co-authored-by: Julius Marminge <julius0216@outlook.com> * perf(server): Windows process launches no longer block the RPC thread (pingdotgg#32260) Co-authored-by: Lakshmi Tanmay <lakshmi@voltcrash.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): more GitLab merge request links open their file, line or commit (pingdotgg#34662) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(opencode): show background replies after a turn settles (pingdotgg#36887) Co-authored-by: Grok 4.7 <noreply@x.ai> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): conventional commit subjects start lowercase (pingdotgg#36938) * fix(shared): stop rescanning unclosed TeX math (pingdotgg#34398) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): Arabic and Hebrew artifact template cards read right to left (pingdotgg#36922) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): stop leaving Codex plan items running after their run (pingdotgg#22617) Co-authored-by: Julius Marminge <julius0216@outlook.com> * perf(gitlab): MR watches check a one-query fingerprint before full reads (pingdotgg#34638) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): font picker scrolls to every font in short windows (pingdotgg#22795) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(source-control): repository paths match however their names are percent-encoded (pingdotgg#36929) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(mcp): return delegated task handles before client timeouts (pingdotgg#15622) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): allow tooltip text to wrap naturally (pingdotgg#36948) * fix(preview): unload desktop pages before removing their tabs (pingdotgg#35135) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): remove redundant status info icon (pingdotgg#36947) * fix(desktop): agent snapshots keep full detail in narrow and mini previews (pingdotgg#36944) * test(web): pin the minute clock in the sidebar jump-hint render test (pingdotgg#36954) * fix(acp-registry): models show the reasoning levels the agent advertises for them (pingdotgg#36950) Co-authored-by: 0xpolarzero <0xpolarzero@gmail.com> * fix(web): enable Send when the composer holds only a thread context (pingdotgg#23166) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): thread details card no longer jumps mid panel animation (pingdotgg#22614) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web,mobile): /btw and /side drafts show the send arrow while a turn runs (pingdotgg#36932) * fix(server): migrated databases can return freed space to disk (pingdotgg#30066) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(devices): rename EAS Simulator to Expo Simulators (pingdotgg#36951) * fix(server): find the EAS project of variant app configs (pingdotgg#29466) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): include untracked files when Git config hides them (pingdotgg#23134) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web,server): picking the previous branch after an agent's checkout switches back (pingdotgg#30107) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): t3_thread_list leaves out tasks delegated from a linked environment (pingdotgg#36961) * fix(server): prune checkpoint refs owned by deleted threads (pingdotgg#24140) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(mobile): screen readers hear a thread row's status and time (pingdotgg#34636) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): isolate Linux process launches from the RPC event loop (pingdotgg#30209) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * perf(server): Pull no longer waits behind other repositories' fetches (6.3 s → 0.21 s median) (pingdotgg#30059) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(wsl): label WSL environments with their Windows host on every client (pingdotgg#22629) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(azure-devops): derive CLI scope from checkout remotes (pingdotgg#21838) Co-authored-by: Ved Pandey <vedprakash2302@gmail.com> * fix(server): subagent threads no longer show the remote parent their parent was delegated from (pingdotgg#30334) Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): t3_thread_launch worktrees honor the new-worktree setting (pingdotgg#30226) Co-authored-by: Julius Marminge <julius0216@outlook.com> * perf(server): text-only browser snapshots skip the PNG encode (66 ms → 20 ms median) (pingdotgg#30305) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): diff Copy path uses Windows separators in a Windows workspace (pingdotgg#30394) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(opencode): usage totals include what OpenCode 2 spends on compaction (pingdotgg#30565) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(web): opening a project or deleting the open thread skips delegated tasks (pingdotgg#30428) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> * chore: drop RTL changes now covered by upstream, and the mobile direction patch Upstream merged Arabic/Hebrew direction for details folds (pingdotgg#36876) and artifact template cards (pingdotgg#36922), so the fork's copies go. The <bdi> on alert labels and skill chips rendered identically to upstream and goes too, as does the mobile first-strong-letter direction patch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Simone <lucenz@proton.me> Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Alex Southwell <saphid@gmail.com> Co-authored-by: TheGuyWithHAT <igorlickn@gmail.com> Co-authored-by: Geezy <igor.licko@gloryck.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Theo Browne <me@t3.gg> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Nathan Wong <thelogicmatrix@gmail.com> Co-authored-by: Nathan Wong <20381195+thelogicmatrix@users.noreply.github.com> Co-authored-by: Daniel Dewhurst <danjdewhurst@users.noreply.github.com> Co-authored-by: Victor <satsdev@only21mil.xyz> Co-authored-by: David Mendes <david.mendes@outsystems.com> Co-authored-by: Arav Jain <aravhawk@gmail.com> Co-authored-by: juccul <101457938+juccul@users.noreply.github.com> Co-authored-by: Ibrahim Elkamali <igrimanigroman@gmail.com> Co-authored-by: Wout Stiens <71498452+StiensWout@users.noreply.github.com> Co-authored-by: Luis Taniça <matallui@gmail.com> Co-authored-by: Bryan Clark <5405766+moenzuel@users.noreply.github.com> Co-authored-by: Alex Southwell <4596216+saphid@users.noreply.github.com> Co-authored-by: Lakshmi Tanmay <lakshmi@voltcrash.com> Co-authored-by: Dominik Žabčík <35886301+dominikzabcik@users.noreply.github.com> Co-authored-by: Maxim <65215214+DrSeedon@users.noreply.github.com> Co-authored-by: DrSeedon <DrSeedon@users.noreply.github.com> Co-authored-by: Dragesia <69815671+Dragesia@users.noreply.github.com> Co-authored-by: brkgzlsy <berke.guzelsoy@fabrite.ch> Co-authored-by: OpeOginni <107570612+OpeOginni@users.noreply.github.com> Co-authored-by: Mateusz Choma <chomamateusz@gmail.com> Co-authored-by: Baptiste Arnaud <baptiste@typebot.io> Co-authored-by: Grok 4.7 <noreply@x.ai> Co-authored-by: Amman <ammanuelamsal@gmail.com> Co-authored-by: project516 <138796702+Project516@users.noreply.github.com> Co-authored-by: Byntham <135178921+Byntham@users.noreply.github.com> Co-authored-by: rafi-the-dev <rafisleep570@gmail.com> Co-authored-by: Fuksss <fuxik12345@gmail.com> Co-authored-by: Unlock Digital Media <134563073+unlockdigital@users.noreply.github.com> Co-authored-by: Jon Duea <jdueadev@gmail.com> Co-authored-by: Emi Griffith <emerytgriffith@gmail.com> Co-authored-by: Emi Griffith <emi.g@jinemi.com> Co-authored-by: Arun Krishnamurthy <arun.km.279@gmail.com> Co-authored-by: Andrei <108398860+Yuruzuu@users.noreply.github.com> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Mika Hertler <77012401+MikaMcFlurry@users.noreply.github.com> Co-authored-by: Mika Hertler <mika@mikahertler.com> Co-authored-by: Alex Hatzenbuhler <hatz@hey.com> Co-authored-by: Karan Kumar <karan.8080dev@gmail.com> Co-authored-by: kumar-karan <kumar-karan@users.noreply.github.com> Co-authored-by: Julio Saldaña <102325762+wincrack07@users.noreply.github.com> Co-authored-by: Jake Leventhal <jakeleventhal@me.com> Co-authored-by: Sohaib Ali <43256484+SohaibAli9@users.noreply.github.com> Co-authored-by: Noah <105475352+Noah-mh@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: Jesse-pink-lab <co.breakingbits@gmail.com> Co-authored-by: Apex-ICP <jesse@apexicp.com> Co-authored-by: Chirag Agggarwal <96696271+Schreezer@users.noreply.github.com> Co-authored-by: Dmitry Farafonov <mail.xaber@gmail.com> Co-authored-by: Michael Bennett <mishdotdev@gmail.com> Co-authored-by: Romil <romilbij@gmail.com> Co-authored-by: Christoffer Artmann <Artgaard@gmail.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> Co-authored-by: Christian R. Kounatze <chreko@gmx.net> Co-authored-by: user <user@qubes-os.org> Co-authored-by: MarcoDotIO <Marcus.Arnett10@gmail.com> Co-authored-by: Ali-Al1 <11404482+Ali-Al1@users.noreply.github.com> Co-authored-by: Ali-Al1 <Ali-Al1@users.noreply.github.com> Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: Alex Vallone <39172404+amv146@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Dara Adedeji <76637177+SunkenInTime@users.noreply.github.com> Co-authored-by: Antony <97451137+TonybynMp4@users.noreply.github.com> Co-authored-by: grey-tsosie <45133231+grey-tsosie@users.noreply.github.com> Co-authored-by: Pavel Kroupa <63880977+Tabonx@users.noreply.github.com> Co-authored-by: kirat02 <142911687+Kirat0201@users.noreply.github.com> Co-authored-by: 0xpolarzero <0xpolarzero@gmail.com> Co-authored-by: Advait Paliwal <advaitspaliwal@gmail.com> Co-authored-by: Hirbod <504909+hirbod@users.noreply.github.com> Co-authored-by: Krystof Woldrich <31292499+krystofwoldrich@users.noreply.github.com> Co-authored-by: Tin Zeljar <tinzeljar@gmail.com> Co-authored-by: Robbie <robbiethewadley@gmail.com> Co-authored-by: Ved Pandey <vedprakash2302@gmail.com> Co-authored-by: spoukyii <61633921+spoukyii@users.noreply.github.com> Co-authored-by: Brett Lyman <LymanBE@gmail.com>
…ider switch (pingdotgg#34498) Co-authored-by: Julius Marminge <julius0216@outlook.com> (cherry picked from commit 3eadb21)
**v0.1.10-nightly.20261114.4709** · 128 changes from 61 contributors - **Fuzzy project search.** Find folders by substring or fuzzy match when adding a local project. - **Claude thread names.** Rename a T3 Code thread using Claude’s /rename command. - **Faster Pull.** Pull no longer waits for background fetches queued behind other repositories. - **More responsive servers.** Windows and Linux servers stay responsive while launching commands. - **Scheduled tasks without Git.** Scheduled tasks now run in non-Git project folders instead of failing during worktree setup. - **File editor focus.** Continue typing in the file editor after sending a line comment without focus jumping to the composer. - **Worktree cleanup safety.** Cleanup preserves untracked and ignored files when submodule checks prevent worktree removal. ### Plus 118 more bug fixes and performance improvements. <details> <summary>Full changelog</summary> ## What's Changed * fix(gitlab): `glab mr new` links the new merge request to the thread by @aravhawk in pingdotgg/t3code#33475 * fix(mobile): Android section headers show the collapse arrow when expanded by @juccul in pingdotgg/t3code#33513 * fix(claude): tools running at Stop show as stopped, not failed by @saphid in pingdotgg/t3code#29801 * fix(web): a pull request whose title holds a numeric search ranks above description-only matches by @only21mil in pingdotgg/t3code#33692 * fix(acp-registry): a uv-installed agent launches its managed command, not a same-named one on PATH by @Marve10s in pingdotgg/t3code#33836 * fix(server): refuse unresolved UTF-16 merge commits by @StiensWout in pingdotgg/t3code#36817 * fix(server): remove worktrees through their owning repository by @matallui in pingdotgg/t3code#33586 * fix(server): RTF attachment text keeps joiners and direction marks by @StiensWout in pingdotgg/t3code#36824 * fix(server): scheduled tasks in a non-Git project run in its folder instead of failing by @moenzuel in pingdotgg/t3code#36821 * fix(web): deleting a thread with side chats offers to delete its worktree by @juliusmarminge in pingdotgg/t3code#36800 * perf(web): completed Markdown blocks no longer render twice by @voltcrash in pingdotgg/t3code#33794 * perf(web): opening a thread from a draft only renders its sidebar row by @dominikzabcik in pingdotgg/t3code#33435 * fix(usage): refetch cached rates early for a model they do not list by @DrSeedon in pingdotgg/t3code#33725 * fix(web): copied email links keep their destination by @StiensWout in pingdotgg/t3code#36830 * fix(server): message search finds smart apostrophes when scanning by @StiensWout in pingdotgg/t3code#36832 * fix(shared): preserve whitespace in POSIX PATH directories by @Lucenx9 in pingdotgg/t3code#33840 * fix(web): dropdown hover fills expanded Git action rows by @Dragesia in pingdotgg/t3code#35527 * fix(clients): undoing a settle puts the thread back where you placed it by @saphid in pingdotgg/t3code#33248 * fix(web): queued images open in the image viewer by @OpeOginni in pingdotgg/t3code#33298 * fix(mobile): removing an environment drops its threads from Android launcher shortcuts by @only21mil in pingdotgg/t3code#33726 * fix(server): a zero Git fetch interval also stops the status upstream fetch by @chomamateusz in pingdotgg/t3code#33845 * fix(ssh): include hosts from wildcard filenames with line separators by @Lucenx9 in pingdotgg/t3code#35479 * fix(server): preserve DOCX non-breaking hyphens in attachment text by @StiensWout in pingdotgg/t3code#36845 * fix(web): diff file tree shows added and deleted files before their patches load by @baptisteArno in pingdotgg/t3code#33310 * fix(web): audio and server spinners respect reduced motion by @voltcrash in pingdotgg/t3code#33795 * fix(server): provider switches on portable forks keep inherited conversation by @StiensWout in pingdotgg/t3code#36839 * fix(web): show Browser device preferences read-only for projects by @StiensWout in pingdotgg/t3code#36846 * fix(cli): t3 connect unlink with T3 stopped also clears the webhook hold setting by @Marve10s in pingdotgg/t3code#33822 * fix(server): decode escaped XLSX attachment text by @StiensWout in pingdotgg/t3code#36849 * fix(desktop): recover prepared remote updates on retry by @ammanviii in pingdotgg/t3code#33605 * fix(server): OpenCode keeps its cached models when a cold probe lists none by @Project516 in pingdotgg/t3code#33640 * fix(web): retain custom model drafts until saved by @saphid in pingdotgg/t3code#35176 * fix(web): trackpad scrolling no longer stalls on gaps between right panel tabs by @Byntham in pingdotgg/t3code#35255 * fix(web): Settings > Projects list follows the selected environment by @juliusmarminge in pingdotgg/t3code#36856 * fix(web): pasted images stay at their original insertion point by @Dragesia in pingdotgg/t3code#35528 * fix(web): Cite is offered for text an agent sent with send_to_user by @juliusmarminge in pingdotgg/t3code#36858 * fix(web): desktop browser tabs show native navigation immediately by @rafi-the-dev in pingdotgg/t3code#35299 * fix(server): a steer that misses its turn moves into the run it starts by @juliusmarminge in pingdotgg/t3code#36855 * fix(server): keep boolean XLSX cells as true/false in extracted text by @SouthCarpet in pingdotgg/t3code#35191 * fix(desktop): tolerate disk-full console output by @unlockdigital in pingdotgg/t3code#35245 * fix(dev): first dev start builds the missing resource monitor by @jdueadev in pingdotgg/t3code#34975 * fix(server): a failed comments read no longer hides PR check updates by @AdeyaDev in pingdotgg/t3code#33452 * fix(mobile): typing before a chip no longer leaves the iOS caret behind by @arun279 in pingdotgg/t3code#33774 * perf(server): git status refresh reads local status once unless refs moved by @Yuruzuu in pingdotgg/t3code#29155 * fix(server): a setting change no longer detaches a busy session kept from an earlier hand-off by @MikaMcFlurry in pingdotgg/t3code#35258 * fix(server): storage cleanup removes idle worktrees whose branch was renamed or switched by @ahatzz11 in pingdotgg/t3code#34984 * fix(claude): rename the native session when the thread title changes by @kumar-karan in pingdotgg/t3code#34775 * fix(desktop): an emptied browser cookie jar imports as empty instead of failing by @wincrack07 in pingdotgg/t3code#34698 * fix(server): each websocket RPC starts its own trace so Tempo keeps its spans by @juliusmarminge in pingdotgg/t3code#36863 * fix(mobile): compaction notice becomes a chip in the composer by @juliusmarminge in pingdotgg/t3code#36872 * fix(web): repeated diff blocks no longer crash the viewer by @jakeleventhal in pingdotgg/t3code#35304 * fix(web): copied literal Markdown sends as shown by @StiensWout in pingdotgg/t3code#36867 * fix(server): move to Node 26.13.1 without migrations storing JSON arrays as strings by @Project516 in pingdotgg/t3code#34576 * perf(server): skip the full untracked scan when Git status shows none by @juliusmarminge in pingdotgg/t3code#36870 * fix(server): show Claude's root refusal when it exits before the turn starts by @SohaibAli9 in pingdotgg/t3code#34621 * fix(server): keep a launched thread's title when its first message arrives by @Noah-mh in pingdotgg/t3code#35117 * perf(server): the next turn no longer waits for the previous turn's git status refresh by @Yuruzuu in pingdotgg/t3code#32349 * fix(server): queued messages no longer wait behind every later delegate completion by @Jesse-pink-lab in pingdotgg/t3code#34620 * fix(mobile): a link during video playback no longer rebuilds the open thread by @Schreezer in pingdotgg/t3code#34990 * test(web): terminal drawer test keeps its session atoms across GC by @juliusmarminge in pingdotgg/t3code#36888 * fix(server): switching the Claude model no longer blocks a later provider switch by @iXab3r in pingdotgg/t3code#34498 * fix(server): a worktree launch from a missing base branch names the branch by @mishdotdev in pingdotgg/t3code#34452 * fix(server): Claude /rename now retitles the T3 thread by @juliusmarminge in pingdotgg/t3code#36879 * fix(web): open editors when saving their preference fails by @romil-bijarnia in pingdotgg/t3code#34308 * feat(client): add-project folder search matches substrings and fuzzy subsequences by @Artmann in pingdotgg/t3code#26376 * fix(web): typing in the file editor no longer jumps to the prompt by @chreko in pingdotgg/t3code#35122 * fix(web): keep thread find working with many matches in one row by @voltcrash in pingdotgg/t3code#34402 * fix(web): Arabic and Hebrew folds in chat read right to left by @newer97 in pingdotgg/t3code#36876 * fix(mobile): iOS composer text follows the system text size by @MarcoDotIO in pingdotgg/t3code#34670 * fix(server): turn recovery covers interrupted and cancelled runs' abandoned turns by @Ali-Al1 in pingdotgg/t3code#34639 * fix(web): show TAR hard links in archive previews by @voltcrash in pingdotgg/t3code#34329 * fix(server): preserve ODF paragraph whitespace in agent sidecars by @StiensWout in pingdotgg/t3code#36883 * perf(web): trim terminal link delimiters in linear time by @voltcrash in pingdotgg/t3code#34397 * fix(shared): preserve Unicode during command output overwrites by @voltcrash in pingdotgg/t3code#34332 * fix(server): a self-settle survives a queued message steered into the turn by @juliusmarminge in pingdotgg/t3code#36896 * fix(server): queued-input index no longer rejects user messages with non-JSON payloads by @juliusmarminge in pingdotgg/t3code#36898 * fix(server): filter scheduled tasks without exposing webhook URLs by @shivamhwp in pingdotgg/t3code#27716 * fix(web): distinguish media Back from window close by @shivamhwp in pingdotgg/t3code#33125 * fix(mobile): VoiceOver names the iOS message box by @MarcoDotIO in pingdotgg/t3code#34658 * fix(server): PR sync backs off links on hosts it cannot read by @juliusmarminge in pingdotgg/t3code#36901 * perf(web): skip oversized TAR preview payload copies by @voltcrash in pingdotgg/t3code#34301 * fix(server): voice cleanup pinned to an ACP provider uses the text model by @juliusmarminge in pingdotgg/t3code#36912 * fix(server): Swift TestFlight clients can read settings again by @shivamhwp in pingdotgg/t3code#26455 * fix(github): Load more no longer stalls on a full page of equal update times by @juliusmarminge in pingdotgg/t3code#36910 * fix(desktop): preserve recordings saved in the same millisecond by @romil-bijarnia in pingdotgg/t3code#34314 * fix(client): refresh open archive when threads are archived elsewhere by @StiensWout in pingdotgg/t3code#36909 * fix(server): keep files when submodule checks retain a worktree by @romil-bijarnia in pingdotgg/t3code#34196 * fix(web): copying from a later list item keeps its numbers by @StiensWout in pingdotgg/t3code#36915 * fix(server): a failed turn start no longer leaves the thread stuck starting by @saphid in pingdotgg/t3code#14424 * fix(web): successive custom model saves keep earlier edits by @StiensWout in pingdotgg/t3code#36906 * fix(web): restore word selection in inline code by @Yash-Singh1 in pingdotgg/t3code#36936 * fix(server): recognize Windows Volta provider installs by @StiensWout in pingdotgg/t3code#36917 * fix(web): showing a composer banner no longer makes the page restyle everything until reload by @amv146 in pingdotgg/t3code#34537 * fix(install): launch t3 by absolute path by @t3dotgg in pingdotgg/t3code#13794 * perf(server): Windows process launches no longer block the RPC thread by @SunkenInTime in pingdotgg/t3code#32260 * fix(web): more GitLab merge request links open their file, line or commit by @TonybynMp4 in pingdotgg/t3code#34662 * fix(opencode): show background replies after a turn settles by @StiensWout in pingdotgg/t3code#36887 * fix(server): conventional commit subjects start lowercase by @juliusmarminge in pingdotgg/t3code#36938 * fix(shared): stop rescanning unclosed TeX math by @voltcrash in pingdotgg/t3code#34398 * fix(web): Arabic and Hebrew artifact template cards read right to left by @newer97 in pingdotgg/t3code#36922 * fix(server): stop leaving Codex plan items running after their run by @grey-tsosie in pingdotgg/t3code#22617 * perf(gitlab): MR watches check a one-query fingerprint before full reads by @TonybynMp4 in pingdotgg/t3code#34638 * fix(web): font picker scrolls to every font in short windows by @Byntham in pingdotgg/t3code#22795 * fix(source-control): repository paths match however their names are percent-encoded by @Tabonx in pingdotgg/t3code#36929 * fix(mcp): return delegated task handles before client timeouts by @maria-rcks in pingdotgg/t3code#15622 * fix(web): allow tooltip text to wrap naturally by @Yash-Singh1 in pingdotgg/t3code#36948 * fix(preview): unload desktop pages before removing their tabs by @Kirat0201 in pingdotgg/t3code#35135 * fix(web): remove redundant status info icon by @Yash-Singh1 in pingdotgg/t3code#36947 * fix(desktop): agent snapshots keep full detail in narrow and mini previews by @juliusmarminge in pingdotgg/t3code#36944 * test(web): pin the minute clock in the sidebar jump-hint render test by @juliusmarminge in pingdotgg/t3code#36954 * fix(acp-registry): models show the reasoning levels the agent advertises for them by @juliusmarminge in pingdotgg/t3code#36950 * fix(web): enable Send when the composer holds only a thread context by @only21mil in pingdotgg/t3code#23166 * fix(web): thread details card no longer jumps mid panel animation by @Yuruzuu in pingdotgg/t3code#22614 * fix(web,mobile): /btw and /side drafts show the send arrow while a turn runs by @juliusmarminge in pingdotgg/t3code#36932 * fix(server): migrated databases can return freed space to disk by @advaitpaliwal in pingdotgg/t3code#30066 * fix(devices): rename EAS Simulator to Expo Simulators by @hirbod in pingdotgg/t3code#36951 * fix(server): find the EAS project of variant app configs by @krystofwoldrich in pingdotgg/t3code#29466 * fix(server): include untracked files when Git config hides them by @only21mil in pingdotgg/t3code#23134 * fix(web,server): picking the previous branch after an agent's checkout switches back by @Yuruzuu in pingdotgg/t3code#30107 * fix(server): t3_thread_list leaves out tasks delegated from a linked environment by @juliusmarminge in pingdotgg/t3code#36961 * fix(server): prune checkpoint refs owned by deleted threads by @Zheruel in pingdotgg/t3code#24140 * fix(mobile): screen readers hear a thread row's status and time by @MarcoDotIO in pingdotgg/t3code#34636 * fix(server): isolate Linux process launches from the RPC event loop by @voltcrash in pingdotgg/t3code#30209 * perf(server): Pull no longer waits behind other repositories' fetches (6.3 s → 0.21 s median) by @Yuruzuu in pingdotgg/t3code#30059 * fix(wsl): label WSL environments with their Windows host on every client by @RJWadley in pingdotgg/t3code#22629 * fix(azure-devops): derive CLI scope from checkout remotes by @juliusmarminge in pingdotgg/t3code#21838 * fix(server): subagent threads no longer show the remote parent their parent was delegated from by @spoukyii in pingdotgg/t3code#30334 * fix(server): t3_thread_launch worktrees honor the new-worktree setting by @LymanBE in pingdotgg/t3code#30226 ## New Contributors * @juccul made their first contribution in pingdotgg/t3code#33513 * @matallui made their first contribution in pingdotgg/t3code#33586 * @moenzuel made their first contribution in pingdotgg/t3code#36821 * @Dragesia made their first contribution in pingdotgg/t3code#35527 * @OpeOginni made their first contribution in pingdotgg/t3code#33298 * @chomamateusz made their first contribution in pingdotgg/t3code#33845 * @ammanviii made their first contribution in pingdotgg/t3code#33605 * @rafi-the-dev made their first contribution in pingdotgg/t3code#35299 * @jdueadev made their first contribution in pingdotgg/t3code#34975 * @AdeyaDev made their first contribution in pingdotgg/t3code#33452 * @ahatzz11 made their first contribution in pingdotgg/t3code#34984 * @wincrack07 made their first contribution in pingdotgg/t3code#34698 * @SohaibAli9 made their first contribution in pingdotgg/t3code#34621 * @Noah-mh made their first contribution in pingdotgg/t3code#35117 * @Jesse-pink-lab made their first contribution in pingdotgg/t3code#34620 * @Schreezer made their first contribution in pingdotgg/t3code#34990 * @mishdotdev made their first contribution in pingdotgg/t3code#34452 * @Artmann made their first contribution in pingdotgg/t3code#26376 * @chreko made their first contribution in pingdotgg/t3code#35122 * @amv146 made their first contribution in pingdotgg/t3code#34537 * @grey-tsosie made their first contribution in pingdotgg/t3code#22617 * @hirbod made their first contribution in pingdotgg/t3code#36951 * @krystofwoldrich made their first contribution in pingdotgg/t3code#29466 * @Zheruel made their first contribution in pingdotgg/t3code#24140 * @LymanBE made their first contribution in pingdotgg/t3code#30226 **Full Changelog**: pingdotgg/t3code@v0.1.10-nightly.20261114.4695...v0.1.10-nightly.20261114.4709 </details> Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.10-nightly.20261114.4709
…ider switch (pingdotgg#34498) Co-authored-by: Julius Marminge <julius0216@outlook.com> (cherry picked from commit 3eadb21)


Problem
After changing the Claude model in a thread, every send to another provider is refused:
Nothing is running and there is no Stop button. Only Force stop clears it.
T3 changes the model on the running CLI. The CLI answers with an echo,
<local-command-stdout>Set model to …</local-command-stdout>, before the next turn starts. T3 kept that echo as the start of a background wake, and nothing cleared it.flowchart TD A["Send with a new Claude model"] --> B["T3 calls setModel on the running CLI"] B --> C["CLI echoes: Set model to …"] C --> D["Before: kept as a background wake<br/>Now: dropped"] D --> E["Turn runs and ends"] E --> F["Send to another provider<br/>Before: refused<br/>Now: hand-off starts"] classDef changed fill:#fef3c7,stroke:#d97706,color:#78350f class D,F changedsetModel, no turn activeExisting fixes
The symptom is reported in #32296. This cause is not reported there. None of the open fixes removes the echo:
resultin the same checkmika/queue-busy-switchfrom #32296resultFrom reading their code, not from running those branches.
Change
In
ClaudeAdapterV2.ts, a replayed local-command echo that arrives while no turn is active is dropped instead of buffered. Frames inside a turn are handled as before.Other providers
Only Claude is affected. The others start a wake on an explicit turn-start event, not on any frame that arrives between turns:
userecho frameuser,assistantorresultframeconfig_option_updateorcurrent_mode_updateuser_message, staterunningresponseagent_startturn/startedFrom reading each adapter, not from running the providers.
Scope and approval
Small focused fix of an obvious bug: a thread with nothing running cannot switch provider. One cause, one adapter, no change to the guard's policy or to any default. No triaged issue; refs #32296, which stays open because its other stale-state cases are not addressed.
Verification
Before is
ClaudeAdapterV2.tsfrommainwith this PR's test:The test answers
setModelwith the echo, as the CLI does, and runs a turn on the new model. It also checks that a rootuserframe that is not an echo still counts; widening the fix to anyuserframe fails that assertion.From the incident (a fork build from 2026-11-06, Windows, Claude Code 2.1.316, UTC):
The log has no task or subagent frames. All 6 live model switches in local logs produced this echo, each just before the CLI confirmed the switch.
vp run check:changed: static checks pass. Its tests: 409 passed, 1 skipped, 1 failed. The failure isnative fork > forks a session from its original directory after the workspace root changes, a Windows path assertion this change does not touch; it failed the same way on unmodifiedmainat60efd7c869. The app with a real Claude turn, the full suites and the build were not run. Node 24.4.1, not the pinned 26.12.1.Written with Claude Fable 5.2 in T3 Code.
🤖 Generated with Claude Code