Repository navigation
fix(server): fail Claude turns waiting for unsupported mod input - #24320
Conversation
…17531) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a narrowly scoped server bug fix that converts an unsupported Claude mod interaction from an indefinite running state into an explicit failure, then ensures follow-ups use a fresh process. Passive panes and normal Claude turns remain unchanged, with regression coverage for the affected lifecycle paths. Notes:
You can add or adjust custom eligibility rules. Learn more. |
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Handle focus requests and stopping queries apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.ts, apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts |
The adapter identifies focus-requested panes, fails the active turn with claude_mod_ui_unsupported, and closes the query without an interrupt. Continuation and unchanged-selection paths no longer reuse a stopping query. Tests cover focused and passive panes, plus a follow-up turn while the prior query closes. |
Issue 17531 fixture tooling
| Layer / File(s) | Summary |
|---|---|
Prepare the mod environment and native evidence fixture scripts/fixtures/issue-17531/seed.py, scripts/fixtures/issue-17531/seed-native.py |
seed.py creates a disposable project and installs a pinned playground plugin using an isolated Claude configuration. seed-native.py validates a pinned checkout, writes a static provider-failure screen and EAS profile, and updates .gitignore when needed. |
Priority:
Estimated code review effort: 3 (Moderate) | ~20 minutes
Change: Bug fix · Severity of issue fixed: Medium
Sequence Diagram(s)
sequenceDiagram
participant ClaudeCodeQuery
participant ClaudeAdapterV2
participant ActiveTurn
ClaudeCodeQuery->>ClaudeAdapterV2: Send ui_panes frame with focus_requested_id
ClaudeAdapterV2->>ActiveTurn: Fail with claude_mod_ui_unsupported
ClaudeAdapterV2->>ClaudeCodeQuery: Close query without interrupt
Suggested reviewers: t3dotgg
Merge Risk: 
Minimal · up to 2a0c0
-
The change is mergeable after normal checks; the investigated handling and fixture setup concerns do not establish a blocking failure.
Pre-merge checks: 
4
-
Full details: Linked Issues check
-
Explanation
Issue
#17531targets the Claude turn hang caused by unsupported mod pane input. The adapter now detects a pane-focus request, emits theclaude_mod_ui_unsupportedprovider failure with the mod name and recovery guidance, closes the query without answering the mod, and prevents reuse of a stopping query. The added tests cover focused panes, passive panes, and follow-up submission during query close. The issue's generic settings proposal and longer-term proposals are alternatives, not acceptance criteria for this fix.
Full details: Out of Scope Changes check
-
Explanation
The changes remain related to
#17531. Adapter tests verify the failure and query-lifecycle behavior. The two fixture scripts reproduce the issue and document the native presentation evidence without changing unrelated runtime behavior. No unrelated product feature or provider behavior is established by the reviewed changes.
Full details: Description check
-
Explanation
The pull request description covers the problem, implementation, scope, linked issue, verification results, evidence, and known limitations. It is sufficiently complete for review, although it does not include a direct maintainer approval comment beyond the stated automated triage.
-
Finishing Touches
-
📝 Generate docstrings
-
- Commit to this branch
- Create a new PR
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.
They are reproduction aids no test reads; the PR body links uploaded copies. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Dismissing prior approval to re-evaluate 69b6a99
…tream pingdotgg#24320) Cherry-picked from pingdotgg#24320 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream pingdotgg#12025, pingdotgg#24320, pingdotgg#25181 and pingdotgg#25240 added strings and test expectations that still say T3 Code, and pingdotgg#23561/pingdotgg#24320 left issue numbers in comments that the low-value-comment lint rejects. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(antigravity): Claude and GPT models, thinking levels, and diff edits (pingdotgg#26876) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(web): choose what the thread details card shows (pingdotgg#26904) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(updates): switch your whole fleet between Stable and Nightly in one step (pingdotgg#26288) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(antigravity): file reads no longer show unrelated errors (pingdotgg#26910) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(release): release notes and the update popover open with a short note (pingdotgg#26893) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cli): t3 starts on a fresh Ubuntu server without libatomic (pingdotgg#26912) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): update everything no longer waits on npm for service hosts (pingdotgg#26917) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * test(web): pin the npm wait floor for update everything (pingdotgg#26921) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(antigravity): served reads stop spinning and duplicate model names are labeled (pingdotgg#26928) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): queue Copilot follow-ups without killing background agents (pingdotgg#26715) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): Antigravity effort no longer shows a speedometer in the composer (pingdotgg#26929) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(release): Linux CLI archives build on runners without package docs (pingdotgg#26932) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): reconnecting notice no longer shifts the new thread composer (pingdotgg#26958) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(marketing): homepage looks like the app (pingdotgg#26960) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * chore(release): prepare v0.1.5 * fix(cli): restore Windows desktop launcher console input (pingdotgg#24870) Co-authored-by: Nathan Shan <nathanielcrush51@gmail.com> Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com> * feat(settings): add and list 1Password secret providers behind T3CODE_FEATURE_SECRETS (pingdotgg#25709) Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(mobile): use monospace in the Android terminal preview (pingdotgg#23401) Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(web): edit from here uses a pencil icon (pingdotgg#21878) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(desktop): clear Cache Storage when deleting browser profile data (pingdotgg#22002) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(web): respect reduced motion in thread loading controls (pingdotgg#22100) Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(provider-acp): redact API keys with underscores in ACP stderr logs (pingdotgg#24015) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(provider-core): redact compound credential keys in provider errors (pingdotgg#23313) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(web): show rounded diff counts as 1m instead of 1000k (pingdotgg#23723) Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(desktop): a timed-out login-shell probe no longer skips the server's PATH repair (pingdotgg#21771) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): keep the previous preview browser version on a shared home (pingdotgg#23771) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(settings): servers check secret provider writes and keep unknown configs to themselves (pingdotgg#27044) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): keep a closed split terminal's tab in view (pingdotgg#22106) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(web): the ~ breadcrumb opens the home folder (pingdotgg#22412) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(gitlab): accept merge request URLs from self-hosted hosts (pingdotgg#23848) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): commits no longer land on a branch switched in mid-action (pingdotgg#24473) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): image attachments report their size when the T3 home is behind a symlink (pingdotgg#24245) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(ssh): skip directories in config includes (pingdotgg#25187) Co-authored-by: Alex Southwell <4596216+saphid@users.noreply.github.com> * fix(server): Authorized clients names Edge, Firefox and Opera on phones correctly (pingdotgg#23340) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(mobile): fork rows show a readable label instead of a thread ID (pingdotgg#22064) Co-authored-by: Jeremiah Jordan <zanson@zanson.org> Co-authored-by: GPT-6.1-Sol <noreply@openai.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(markdown): formulas ending in a comma render (pingdotgg#22883) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(scripts): dev runner expands ~ in --home-dir and T3CODE_HOME (pingdotgg#25560) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(desktop): keep development protocol requests on the configured server (pingdotgg#22010) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(mobile): apply terminal toolbar modifiers to arrow keys (pingdotgg#22161) Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): clean old logs and artifacts under a symlinked T3 home (pingdotgg#24097) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): preserve URL arguments in Android device actions (pingdotgg#25205) Co-authored-by: Alex Southwell <4596216+saphid@users.noreply.github.com> * fix(server): keep terminal history after cancelled sequences (pingdotgg#25193) Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> * fix(auth): accept a typed pairing code regardless of letter case (pingdotgg#22089) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(web): find in thread opens from the thread title menu, so phones can reach it (pingdotgg#22352) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(desktop): resolve executable commands when checking CLI shadowing (pingdotgg#22046) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): SQLite temp files no longer block the event loop (pingdotgg#24194) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): a branch named like a tag no longer reads as heads/<name> (pingdotgg#24258) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): cap generated worktree folder names (pingdotgg#25212) Co-authored-by: Dara Adedeji <76637177+SunkenInTime@users.noreply.github.com> * perf(server): checkpoint capture scans the index listing by record instead of by byte (pingdotgg#21329) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): PR discovery sweeps skip hidden subagent threads (pingdotgg#26983) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(shared): stop parsing CLI flags after -- (pingdotgg#25204) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> * fix(server): remove abandoned v1 database copies on startup (pingdotgg#25301) Co-authored-by: Matěj Suchánek <16311043+immakermatty@users.noreply.github.com> * fix(web): Enter no longer skips an unanswered question (pingdotgg#23626) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(web): keep wide characters in terminal links (pingdotgg#24013) Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): session stops no longer trigger storage sweeps unless a deleted worktree waits (pingdotgg#26038) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(provider-core): subagent threads no longer inherit the parent's pin (pingdotgg#21271) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(device): report failed Android permission changes (pingdotgg#22358) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): thread lists load beyond SQLite variable limit (pingdotgg#25696) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): allow large git status metadata (pingdotgg#25207) Co-authored-by: Alex Southwell <4596216+saphid@users.noreply.github.com> * perf(mobile): flatten large file trees without copying descendants (pingdotgg#21276) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(web): show theme conflicts even when another import fails (pingdotgg#23223) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(usage): reject cyclic model mappings before saving (pingdotgg#23963) Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(settings): offer Use existing CLI in managed Codex settings (pingdotgg#23160) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(git): honor project provider settings (pingdotgg#23672) Co-authored-by: Tejas Parmar <parmartejas@vanojay.in> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(desktop): force-close stalled Linux MIME cache helpers (pingdotgg#25210) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> * fix(cli): auth pairing create rejects a --base-url without http(s):// (pingdotgg#23343) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): signed asset and upload URLs stay out of HTTP traces (pingdotgg#24556) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): clone errors no longer show a token from the URL's query (pingdotgg#24698) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(claude): pass every --add-dir launch directory to Claude (pingdotgg#23281) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(composer): retry expired catalogs after failed discovery (pingdotgg#23174) Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(auth): preserve pairing codes after scope rejection (pingdotgg#25222) Co-authored-by: Alex Southwell <4596216+saphid@users.noreply.github.com> * fix(mobile): discard unchanged queued edits after starting (pingdotgg#25232) Co-authored-by: Tristan Knight <18444302+tris203@users.noreply.github.com> * fix(server): t3 project commands wait for a busy server's reply (pingdotgg#24090) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(web): wait for fresh diff pages in review guides (pingdotgg#23225) Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): Antigravity stops retrying session startup while signed out (pingdotgg#24939) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(web): create tasks on a permitted connected environment (pingdotgg#23244) Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(mobile): recognize this thread's main checkout (pingdotgg#23764) Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(web): keep usage hubs that share a host (pingdotgg#23767) Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(github): read text and mixed-case pull request templates (pingdotgg#25025) Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> * fix(web): keep HTML prototype selection rings visible (pingdotgg#23745) Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(mobile): list pull request repositories once per environment (pingdotgg#25219) Co-authored-by: Tristan Knight <18444302+tris203@users.noreply.github.com> * fix(shared): Open in Zed prefers zeditor over the ZFS zed on Linux (pingdotgg#23416) Signed-off-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com> Co-authored-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): native Codex subagents no longer show the parent's reasoning effort (pingdotgg#24467) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): mark unread works after an automatic compaction (pingdotgg#25286) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): show MCP App forms from failed tool results (pingdotgg#25225) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> * fix(server): restore Linux session display for editor launches (pingdotgg#25228) Co-authored-by: Inaya Yousfi <193243337+inayayousfi@users.noreply.github.com> * fix(usage): keep host identity across container recreation (pingdotgg#25220) Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com> * fix(opencode): authenticate with the resolved server password (pingdotgg#25230) Co-authored-by: Alex Southwell <4596216+saphid@users.noreply.github.com> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * feat(web): allow resizing the file explorer (pingdotgg#25737) Co-authored-by: Rishabh Bothra <37180068+07rjain@users.noreply.github.com> * fix(server): update shared Codex installs from their owning home (pingdotgg#25235) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> * fix(cli): keep published runtimes in place during installation (pingdotgg#24092) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(web): right panel launcher letters work on non-Latin keyboard layouts (pingdotgg#21508) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): report a deleted or replaced ownership lock (pingdotgg#21886) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(server): mark unread no longer brings back a dismissed wake (pingdotgg#24080) Co-authored-by: maria-rcks <maria@kuuro.net> * fix(mobile): stop refreshes in hidden PR Guide panes (pingdotgg#25486) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: maria-rcks <maria@kuuro.net> * fix(desktop): installing the t3 command no longer reports its own launcher as another t3 (pingdotgg#22375) Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * test(mobile): load the branch occupancy test without native sources (pingdotgg#27063) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(settings): project edits keep overrides the client does not know (pingdotgg#24472) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(client): retry the permissions check after a reconnect (pingdotgg#27008) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(mobile): tab bar spans the screen on iOS before 26 (pingdotgg#27089) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(server): thread recovery reads are 10x faster (pingdotgg#27099) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(server): source control discovery no longer stalls up to 10s on Bitbucket (pingdotgg#27102) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf: huge checkpoints ship up to 75x smaller to clients (pingdotgg#27110) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(server): sidebar shell loads 3x faster and startup thread counts 80x faster (pingdotgg#27106) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(server): preparing a run is 15x faster and uses 200x less memory (pingdotgg#27105) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(server): traces name what grew the heap, for ~0.3µs per span (pingdotgg#27104) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(gitcafe): PR sync makes 2x fewer GitCafe requests for unchanged PRs (pingdotgg#27100) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(shared): SQLite reads stop queueing behind each other, up to 5x faster under load (pingdotgg#27097) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(server): git status runs in parallel and repo detection spawns 3x fewer git processes (pingdotgg#27103) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(client): dead connection routes are probed 30x less often (pingdotgg#27101) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(server): idle servers run 100x fewer background queries and 4.8M fewer spans a day (pingdotgg#27098) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(devices): support Android EAS Simulator sessions (pingdotgg#26797) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web,mobile): image-only messages show the image, not the placeholder prompt (pingdotgg#26769) * ci(mobile): production deploys use a Release Manager Expo token (pingdotgg#27285) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * ci(mobile): maintainers can deploy EAS previews for reviewed fork commits (pingdotgg#27292) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): agents yield CPU, tasks, and reclaim to the server under pressure (pingdotgg#27176) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(server): `t3 service protect` keeps the server alive when agents fill memory (pingdotgg#27239) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): held queues release agent and scheduled messages once the thread completes a run (pingdotgg#27221) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): restart continuations retry failed starts and respect a parent's stop (pingdotgg#27222) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): Stop during a restart no longer leaves the thread stuck (pingdotgg#27141) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(scripts): bound check:changed concurrency and step time (pingdotgg#27227) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(shared): durations under 10s drop a trailing .0 (pingdotgg#27316) * feat(web): switch the composer between rich text and Markdown source from a button or mod+/ (pingdotgg#26777) * fix(server): t3_thread_organize rejects unknown arguments instead of archiving the caller (pingdotgg#26718) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): composer Markdown source button shows the pilcrow again (pingdotgg#27375) * revert(web): remove the composer rich text toggle button and mod+/ shortcut (pingdotgg#27390) * fix(server): HTML preview browsers quit when done instead of waiting to be killed (pingdotgg#27224) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(terminal): retain and pace slow fallback process queries (pingdotgg#24640) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): show readable provider runtime failure banners (pingdotgg#24614) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: AdEx-Partners-DE <stark.burns@adexpartners.com> * fix(gitlab): share merge request reads across detail and checks (pingdotgg#24392) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(usage): count Claude advisor calls under the advisor model (pingdotgg#24139) * fix(web): name the sidebar logo link T3 Code home (pingdotgg#24209) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(server): fail Claude turns waiting for unsupported mod input (pingdotgg#24320) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): Stop always completes, and an agent that ignores it can be force stopped (pingdotgg#27252) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix: guest links can load earlier turns (pingdotgg#27354) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): repair main after merge burst Rename leftover fakeProvider to fakePullRequestProvider, replace the removed encodeScanCache in the advisor usage test, and drop an issue number from a ClaudeAdapterV2 comment that lint rejects. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): let slow worktree checkouts finish (pingdotgg#23802) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(settings): point provider environment variables at a secret provider (pingdotgg#27115) Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> * feat(desktop): back/forward buttons and trackpad swipe navigation (pingdotgg#27430) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * feat(web): review local commits in the Diff pane (pingdotgg#19941) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(relay): show the account's real tunnel cap in T3 Connect settings (pingdotgg#27442) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(web): streaming replies no longer re-render every visible timeline row (pingdotgg#27420) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): streaming replies re-render only their last Markdown block (pingdotgg#27417) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): the git actions panel no longer re-renders on every streamed update (pingdotgg#27418) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * perf(web): streamed assistant text re-renders only its own row (pingdotgg#27419) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(server): `t3 service protect` can ask for your sudo password (pingdotgg#27465) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> --------- Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> Signed-off-by: Pujitha Paladugu <10557236+pujitha24@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: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Theo Browne <me@theo.li> Co-authored-by: t3-code-bot[bot] <269035359+t3-code-bot[bot]@users.noreply.github.com> Co-authored-by: Nathan Shan <nathanielcrush51@gmail.com> Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com> Co-authored-by: Utkarsh Patil <73941998+UtkarshUsername@users.noreply.github.com> Co-authored-by: Yordis Prieto <yordis.prieto@gmail.com> Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Victor Vogel <satsdev@only21mil.xyz> Co-authored-by: GPT-6.1 Sol <noreply@openai.com> Co-authored-by: maria-rcks <maria@kuuro.net> Co-authored-by: Lakshmi Tanmay <lakshmi@voltcrash.com> Co-authored-by: Alex Southwell <saphid@gmail.com> Co-authored-by: SAPHID <saphid@users.noreply.github.com> Co-authored-by: tiliakoos <73005126+tiliakoos@users.noreply.github.com> Co-authored-by: Onkar Pradip Jadhav <118719336+Onkarj012@users.noreply.github.com> Co-authored-by: MarcoDotIO <Marcus.Arnett10@gmail.com> Co-authored-by: Alex Southwell <4596216+saphid@users.noreply.github.com> Co-authored-by: Jeremiah Jordan <jeremiah@apache.org> Co-authored-by: Jeremiah Jordan <zanson@zanson.org> Co-authored-by: Nikita Maximilian Grimm <github@nikitagrimm.de> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: Mantas Kantautas <mantas.kantautas@gmail.com> Co-authored-by: Dara Adedeji <76637177+SunkenInTime@users.noreply.github.com> Co-authored-by: Joseph Vidal <135430578+josephv123@users.noreply.github.com> Co-authored-by: Simone <185146821+Lucenx9@users.noreply.github.com> Co-authored-by: Matěj Suchánek <16311043+immakermatty@users.noreply.github.com> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: luke <97411838+luke2x@users.noreply.github.com> Co-authored-by: parmartejas <110296251+parmartejass@users.noreply.github.com> Co-authored-by: Tejas Parmar <parmartejas@vanojay.in> Co-authored-by: Tristan Knight <18444302+tris203@users.noreply.github.com> Co-authored-by: Stevan Borus <steva.borus@gmail.com> Co-authored-by: Pujitha Paladugu <pujitha.rathna@gmail.com> Co-authored-by: Pujitha Paladugu <10557236+pujitha24@users.noreply.github.com> Co-authored-by: Koushik_xd <122906171+koushikxd@users.noreply.github.com> Co-authored-by: oliver <97427849+flamboh@users.noreply.github.com> Co-authored-by: Inaya Yousfi <193243337+inayayousfi@users.noreply.github.com> Co-authored-by: Rishabh Bothra <37180068+07rjain@users.noreply.github.com> Co-authored-by: Marcel Jiron · MarMarLabs <marmar9615@icloud.com> Co-authored-by: Scott Norteman <snorteman@gmail.com> Co-authored-by: fixfon <12512757+fixfon@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Gourav Kumar Dhiman <gkrdhiman@gmail.com> Co-authored-by: Nathan Schroeder <49214985+SchroederNathan@users.noreply.github.com> Co-authored-by: AdEx-Partners-DE <stark.burns@adexpartners.com> Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com> Co-authored-by: Bilal Bakr <62337003+Bil0000@users.noreply.github.com>
**v0.1.6-nightly.20261030.3917** · 19 changes from 6 contributors ## Highlights Connect provider credentials to a secret provider. Force-stop unresponsive agents. ## Fixes - Stopping during a restart no longer leaves threads stuck (#27141) - Agents no longer archive the wrong thread (#26718) - HTML previews no longer leave browsers running (#27224) - Provider failures show readable error messages (#24614) - Claude advisor calls appear in Usage (#24139) - Unsupported Claude mod prompts no longer leave turns running (#24320) - Stop works when an agent becomes unresponsive (#27252) - Guests can load earlier turns in shared threads (#27354) - Slow worktree checkouts can finish without breaking retries (#23802) <details> <summary>Full changelog</summary> ## What's Changed * fix(server): Stop during a restart no longer leaves the thread stuck by @t3dotgg in pingdotgg/t3code#27141 * fix(scripts): bound check:changed concurrency and step time by @juliusmarminge in pingdotgg/t3code#27227 * fix(shared): durations under 10s drop a trailing .0 by @maria-rcks in pingdotgg/t3code#27316 * feat(web): switch the composer between rich text and Markdown source from a button or mod+/ by @maria-rcks in pingdotgg/t3code#26777 * fix(server): t3_thread_organize rejects unknown arguments instead of archiving the caller by @juliusmarminge in pingdotgg/t3code#26718 * fix(web): composer Markdown source button shows the pilcrow again by @maria-rcks in pingdotgg/t3code#27375 * revert(web): remove the composer rich text toggle button and mod+/ shortcut by @maria-rcks in pingdotgg/t3code#27390 * fix(server): HTML preview browsers quit when done instead of waiting to be killed by @juliusmarminge in pingdotgg/t3code#27224 * fix(terminal): retain and pace slow fallback process queries by @juliusmarminge in pingdotgg/t3code#24640 * fix(server): show readable provider runtime failure banners by @juliusmarminge in pingdotgg/t3code#24614 * fix(gitlab): share merge request reads across detail and checks by @juliusmarminge in pingdotgg/t3code#24392 * fix(usage): count Claude advisor calls under the advisor model by @fixfon in pingdotgg/t3code#24139 * fix(web): name the sidebar logo link T3 Code home by @shivamhwp in pingdotgg/t3code#24209 * fix(server): fail Claude turns waiting for unsupported mod input by @juliusmarminge in pingdotgg/t3code#24320 * fix(server): Stop always completes, and an agent that ignores it can be force stopped by @juliusmarminge in pingdotgg/t3code#27252 * fix: guest links can load earlier turns by @juliusmarminge in pingdotgg/t3code#27354 * fix(server): let slow worktree checkouts finish by @juliusmarminge in pingdotgg/t3code#23802 * feat(settings): point provider environment variables at a secret provider by @yordis in pingdotgg/t3code#27115 **Full Changelog**: pingdotgg/t3code@v0.1.6-nightly.20261030.3904...v0.1.6-nightly.20261030.3917 </details> Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.1.6-nightly.20261030.3917
Problem
Claude Code 2.1.303 with the blast-radius mod holds Bash calls behind a terminal pane that T3 cannot display. Running
rm -r buildin a disposable repository leaves the turn Running without any way to answer the mod.Change
Fail the active turn with an error naming the mod and explaining how to continue when Claude requests pane focus. Close the query without answering the mod, and prevent follow-ups from reusing that stopping query. Panes without a focus request keep their existing behavior.
Scope and approval
Fixes #17531
GitCafe: #17531
Triaged bug via the automated issue flow.
Verification
expected failed; received undefined).vp test run apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts: 211 passed, including focused/passive frames and a follow-up submitted while close is held. Both final reviewers independently passed the full file.vp run --filter t3 typecheck), and diff whitespace checks passed. Both Python fixture scripts parse; the isolated reproduction seed ran successfully.Evidence
Linux, Chromium 154, light theme, 1280×800 CSS viewport; after DPR 2 and visual scale 1. Claude 2.1.303, blast-radius 0.1.0 from pinned playground commit, isolated Claude configuration inherited by the actual child. The reproduction scripts are not committed; they are uploaded as
seed.py(isolated Bash/mod reproduction) andseed-native.py(offline native presentation fixture).3b95e7831b
1a464140dc
Same pair; zero tolerance, 8× amplification
Same pair; max channel delta >16/255
Before recording begins after submission and remains Running for 40.9 seconds. The before transcript records the mod timing out about 16 minutes later.
After focus and recovery recording: submit at ~00:07; focus and close at ~00:16.66; full error by ~00:28; fresh resumed query at ~00:32.89; successful tool result at ~00:42.44; UI Done by ~00:53.28.
Repeated-focus recording: submit near the start, focus at ~00:05.77, then failure. The separately recorded process snapshot finds the previously observed PID absent afterward.
Evidence index and complete timestamp guide, sanitized after transcript, and artifact hashes.
What else changed in the captures: identifiers, timestamps, sidebar threads, timeline grouping/collapse, and the error panel replacing Running. Historical main/UI differs between before and after; clocks were not frozen and before DPR was not measured. Pixel differences are descriptive. The adapter behavior and existing failure renderers are unchanged between the captured revision and the PR head. Later commits clarify comments and merge main through f416175804. Reproduction-only fixture scripts were added and then removed from the branch; the uploaded copies above are byte-identical.
Verification limits
The runtime follow-up opened about 16 seconds after close. Immediate retry is proven by the deterministic held-close test, not a real-time recording.
Real passive-frame behavior is unverified: two loaded fixture-mod runs completed, but emitted no
ui_panes. The ordered protocol test covers a passive pane.Desktop/Electron was not run separately; its failure renderer is shared with web. Reconnect and remote client lifecycle were not exercised separately. No platform-specific runtime code changed.
The historical before source is not the final merge base. The proof auditor recomputed the supplied diffs exactly but did not rebuild a capture from the uploaded seed.
Native presentation unverified: the EAS iOS simulator build failed with
Unable to resolve module dependency: GhosttyKitinT3TerminalNative(Pods). No installable artifact or simulator session was produced. The static fixture exported successfully and its scoped mobile typecheck passed; those checks do not prove native rendering. No mobile runtime source changed. The uploaded native fixture script preserves the exact failure message for a later native capture. Sanitized build failure, fixture provenance.Models: Claude Opus 5.5 and GPT-6.1-Sol, through Claude Code and Codex in T3 Code.