Skip to content

chore(coil): merge upstream/main 1da41f9499 (145 commits) - #212

Merged
radroid merged 148 commits into
mainfrom
coil/sync-41073589648
Oct 30, 2026
Merged

radroid merged 148 commits into
mainfrom
coil/sync-41073589648

Conversation

@radroid

@radroid radroid commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

What changed for you

142 user-facing changes from upstream T3 Code, out of 145 upstream commits. Tests, CI, refactors and docs are left out. Compare the full range.

New

  • Settings: Add and list 1Password secret providers behind T3CODE_FEATURE_SECRETS (#25709)
  • Web: Allow resizing the file explorer (#25737)
  • Server: Traces name what grew the heap, for ~0.3µs per span (#27104)
  • Devices: Support Android EAS Simulator sessions (#26797)
  • Server: t3 service protect keeps the server alive when agents fill memory (#27239)
  • Web: Switch the composer between rich text and Markdown source from a button or mod+/ (#26777)
  • Settings: Point provider environment variables at a secret provider (#27115)
  • Desktop: Back/forward buttons and trackpad swipe navigation (#27430)
  • Web: Review local commits in the Diff pane (#19941)
  • Mobile: Message media, file cards and grouped steers match web (#27373)
  • Pi: Import terminal Pi sessions during setup (#27515)
  • Web: Images and videos sent with text sit above the bubble as their own shape (#27306)
  • Web: Files sent without text show as file cards (#27324)

Fixed and improved

  • Mobile: Use monospace in the Android terminal preview (#23401)
  • Web: Edit from here uses a pencil icon (#21878)
  • Desktop: Clear Cache Storage when deleting browser profile data (#22002)
  • Web: Respect reduced motion in thread loading controls (#22100)
  • Provider acp: Redact API keys with underscores in ACP stderr logs (#24015)
  • Provider core: Redact compound credential keys in provider errors (#23313)
  • Web: Show rounded diff counts as 1m instead of 1000k (#23723)
  • Desktop: A timed-out login-shell probe no longer skips the server's PATH repair (#21771)
  • Server: Keep the previous preview browser version on a shared home (#23771)
  • Settings: Servers check secret provider writes and keep unknown configs to themselves (#27044)
  • Web: Keep a closed split terminal's tab in view (#22106)
  • Web: The ~ breadcrumb opens the home folder (#22412)
  • Gitlab: Accept merge request URLs from self-hosted hosts (#23848)
  • Server: Commits no longer land on a branch switched in mid-action (#24473)
  • Server: Image attachments report their size when the T3 home is behind a symlink (#24245)
  • Ssh: Skip directories in config includes (#25187)
  • Server: Authorized clients names Edge, Firefox and Opera on phones correctly (#23340)
  • Mobile: Fork rows show a readable label instead of a thread ID (#22064)
  • Markdown: Formulas ending in a comma render (#22883)
  • Scripts: Dev runner expands ~ in --home-dir and T3CODE_HOME (#25560)
  • Desktop: Keep development protocol requests on the configured server (#22010)
  • Mobile: Apply terminal toolbar modifiers to arrow keys (#22161)
  • Server: Clean old logs and artifacts under a symlinked T3 home (#24097)
  • Server: Preserve URL arguments in Android device actions (#25205)
  • Server: Keep terminal history after cancelled sequences (#25193)
  • Auth: Accept a typed pairing code regardless of letter case (#22089)
  • Web: Find in thread opens from the thread title menu, so phones can reach it (#22352)
  • Desktop: Resolve executable commands when checking CLI shadowing (#22046)
  • Server: SQLite temp files no longer block the event loop (#24194)
  • Server: A branch named like a tag no longer reads as heads/ (#24258)
  • Server: Cap generated worktree folder names (#25212)
  • Server: Checkpoint capture scans the index listing by record instead of by byte (#21329)
  • Server: PR discovery sweeps skip hidden subagent threads (#26983)
  • Shared: Stop parsing CLI flags after -- (#25204)
  • Server: Remove abandoned v1 database copies on startup (#25301)
  • Web: Enter no longer skips an unanswered question (#23626)
  • Web: Keep wide characters in terminal links (#24013)
  • Server: Session stops no longer trigger storage sweeps unless a deleted worktree waits (#26038)
  • Provider core: Subagent threads no longer inherit the parent's pin (#21271)
  • Device: Report failed Android permission changes (#22358)
  • Server: Thread lists load beyond SQLite variable limit (#25696)
  • Server: Allow large git status metadata (#25207)
  • Mobile: Flatten large file trees without copying descendants (#21276)
  • Web: Show theme conflicts even when another import fails (#23223)
  • Usage: Reject cyclic model mappings before saving (#23963)
  • Settings: Offer Use existing CLI in managed Codex settings (#23160)
  • Git: Honor project provider settings (#23672)
  • Desktop: Force-close stalled Linux MIME cache helpers (#25210)
  • Cli: Auth pairing create rejects a --base-url without http(s):// (#23343)
  • Server: Signed asset and upload URLs stay out of HTTP traces (#24556)
  • Server: Clone errors no longer show a token from the URL's query (#24698)
  • Claude: Pass every --add-dir launch directory to Claude (#23281)
  • Composer: Retry expired catalogs after failed discovery (#23174)
  • Auth: Preserve pairing codes after scope rejection (#25222)
  • Mobile: Discard unchanged queued edits after starting (#25232)
  • Server: T3 project commands wait for a busy server's reply (#24090)
  • Web: Wait for fresh diff pages in review guides (#23225)
  • Server: Antigravity stops retrying session startup while signed out (#24939)
  • Web: Create tasks on a permitted connected environment (#23244)
  • Mobile: Recognize this thread's main checkout (#23764)
  • Web: Keep usage hubs that share a host (#23767)
  • Github: Read text and mixed-case pull request templates (#25025)
  • Web: Keep HTML prototype selection rings visible (#23745)
  • Mobile: List pull request repositories once per environment (#25219)
  • Shared: Open in Zed prefers zeditor over the ZFS zed on Linux (#23416)
  • Server: Native Codex subagents no longer show the parent's reasoning effort (#24467)
  • Server: Mark unread works after an automatic compaction (#25286)
  • Server: Show MCP App forms from failed tool results (#25225)
  • Server: Restore Linux session display for editor launches (#25228)
  • Usage: Keep host identity across container recreation (#25220)
  • Opencode: Authenticate with the resolved server password (#25230)
  • Server: Update shared Codex installs from their owning home (#25235)
  • Cli: Keep published runtimes in place during installation (#24092)
  • Web: Right panel launcher letters work on non-Latin keyboard layouts (#21508)
  • Server: Report a deleted or replaced ownership lock (#21886)
  • Server: Mark unread no longer brings back a dismissed wake (#24080)
  • Mobile: Stop refreshes in hidden PR Guide panes (#25486)
  • Desktop: Installing the t3 command no longer reports its own launcher as another t3 (#22375)
  • Settings: Project edits keep overrides the client does not know (#24472)
  • Client: Retry the permissions check after a reconnect (#27008)
  • Mobile: Tab bar spans the screen on iOS before 26 (#27089)
  • Server: Thread recovery reads are 10x faster (#27099)
  • Server: Source control discovery no longer stalls up to 10s on Bitbucket (#27102)
  • Huge checkpoints ship up to 75x smaller to clients (#27110)
  • Server: Sidebar shell loads 3x faster and startup thread counts 80x faster (#27106)
  • Server: Preparing a run is 15x faster and uses 200x less memory (#27105)
  • Gitcafe: PR sync makes 2x fewer GitCafe requests for unchanged PRs (#27100)
  • Shared: SQLite reads stop queueing behind each other, up to 5x faster under load (#27097)
  • Server: Git status runs in parallel and repo detection spawns 3x fewer git processes (#27103)
  • Client: Dead connection routes are probed 30x less often (#27101)
  • Server: Idle servers run 100x fewer background queries and 4.8M fewer spans a day (#27098)
  • Web, Mobile: Image-only messages show the image, not the placeholder prompt (#26769)
  • Server: Agents yield CPU, tasks, and reclaim to the server under pressure (#27176)
  • Server: Held queues release agent and scheduled messages once the thread completes a run (#27221)
  • Server: Restart continuations retry failed starts and respect a parent's stop (#27222)
  • Server: Stop during a restart no longer leaves the thread stuck (#27141)
  • Scripts: Bound check:changed concurrency and step time (#27227)
  • Shared: Durations under 10s drop a trailing .0 (#27316)
  • Server: T3_thread_organize rejects unknown arguments instead of archiving the caller (#26718)
  • Web: Composer Markdown source button shows the pilcrow again (#27375)
  • Server: HTML preview browsers quit when done instead of waiting to be killed (#27224)
  • Terminal: Retain and pace slow fallback process queries (#24640)
  • Server: Show readable provider runtime failure banners (#24614)
  • Gitlab: Share merge request reads across detail and checks (#24392)
  • Usage: Count Claude advisor calls under the advisor model (#24139)
  • Web: Name the sidebar logo link T3 Code home (#24209)
  • Server: Fail Claude turns waiting for unsupported mod input (#24320)
  • Server: Stop always completes, and an agent that ignores it can be force stopped (#27252)
  • Guest links can load earlier turns (#27354)
  • Ci: Repair main after merge burst (da8cc591da)
  • Server: Let slow worktree checkouts finish (#23802)
  • Relay: Show the account's real tunnel cap in T3 Connect settings (#27442)
  • Web: Streaming replies no longer re-render every visible timeline row (#27420)
  • Web: Streaming replies re-render only their last Markdown block (#27417)
  • Web: The git actions panel no longer re-renders on every streamed update (#27418)
  • Web: Streamed assistant text re-renders only its own row (#27419)
  • Server: t3 service protect can ask for your sudo password (#27465)
  • Web: Preserve Ctrl+Arrow terminal key sequences (#23480)
  • Web: Keep PowerShell prompt paths with spaces in one link (#23527)
  • Client: Find unread terminal chunks from the tail (#23779)
  • Pi: Explain when Pi's default model has no credentials (#27513)
  • Shared: TypeScript files no longer show as videos (#27372)
  • Web: Back-to-back messages from you stack as one burst with a single steer label (#27305)
  • Pi: Clear Pi's native queue before Stop aborts (#27514)
  • Pi: Nest tools called through another tool under their caller (#27521)
  • Pi: Explain when an untrusted folder makes Pi skip project resources (#27539)
  • Mobile: Android Thread settings rows no longer vanish with animations removed (#21757)
  • Server: Phone taps, typing and scrolling reach desktop browser tabs again (#19456)

Reverted

  • Web: Remove the composer rich text toggle button and mod+/ shortcut (#27390)

What the sync needed

Today's daily run (#211) failed typecheck with missing-module errors in upstream's new packages/secret-provider-core. The merge itself was clean. The cause: pnpm-lock.yaml merged without a conflict, so scripts/coil/sync-upstream.sh never reinstalled, and verify ran against the pre-merge node_modules. With a fresh install, typecheck and lint are green.

  • Merge: the only conflicts were mobile-eas-preview.yml and mobile-eas-production.yml, kept deleted as retired workflows. Upstream's new mobile-eas-preview-fork.yml (a pull_request_target sibling on Blacksmith runners with Expo secrets) is also dropped in the merge.
  • Script fix: sync-upstream.sh now runs vp i before verify when the merge changes pnpm-lock.yaml, pnpm-workspace.yaml or any package.json, and adds mobile-eas-preview-fork.yml to the retired list. Covered in sync-upstream.test.ts.
  • Seam review: upstream touched the source-control discovery and clone seams. The fork's spawn-failure-only missing status still feeds upstream's now-parallel auth probe, and the fork's SSH→HTTPS clone fallback goes through the same helper that gained upstream's URL normalization. Nothing to port to apps/coil-home (no upstream marketing changes).
  • Fork tests vs. upstream: upstream's new clone-redaction tests assert git's raw stderr line, which the fork's clone diagnostics (Cloning from Bitbucket fails with an undiagnosable error: "cloneRepository failed for unknown: The source control operation could not be completed" #98) rewrite into a sentence (upstream redacts the stderr before that, so tokens still stay out). Upstream's discovery now runs the auth probe beside --version, so the fork's Azure test no longer asserts the probe is skipped and still asserts a missing CLI ignores it. Both tests are adapted.
  • Agent context budget (not a coil-ci gate): this check is red at +100 bytes of MCP tool text. That growth is upstream's own fix(web): keep HTML prototype selection rings visible pingdotgg/t3code#23745, and agentContextBudget.json matches upstream's byte for byte, so the fork has nothing to cut.

Model: Claude Opus 5.5 in Claude Code (T3 Code).

🤖 Generated with Claude Code

yordis and others added 30 commits October 29, 2026 10:15
…_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>
…#23401)

Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…ingdotgg#22002)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…g#22100)

Co-authored-by: SAPHID <saphid@users.noreply.github.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
pingdotgg#24015)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
pingdotgg#23313)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…23723)

Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…r's PATH repair (pingdotgg#21771)

Co-authored-by: maria-rcks <maria@kuuro.net>
…me (pingdotgg#23771)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…configs to themselves (pingdotgg#27044)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…tgg#23848)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
pingdotgg#24473)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…behind a symlink (pingdotgg#24245)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Alex Southwell <4596216+saphid@users.noreply.github.com>
…es correctly (pingdotgg#23340)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…ingdotgg#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>
Co-authored-by: maria-rcks <maria@kuuro.net>
…gdotgg#25560)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…rver (pingdotgg#22010)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…g#22161)

Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…ingdotgg#24097)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…tgg#25205)

Co-authored-by: Alex Southwell <4596216+saphid@users.noreply.github.com>
…gg#25193)

Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com>
…gdotgg#22089)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…can reach it (pingdotgg#22352)

Co-authored-by: maria-rcks <maria@kuuro.net>
…pingdotgg#22046)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…tgg#24194)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
juliusmarminge and others added 28 commits October 29, 2026 23:04
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ider (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>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…e row (pingdotgg#27420)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ed update (pingdotgg#27418)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#27419)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gdotgg#27465)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…g#27513)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: GPT 6.1 Sol <codex@openai.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: GPT 6.1 Sol <codex@openai.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: GPT 6.1 Sol <codex@openai.com>
…ingdotgg#27521)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: GPT 6.1 Sol <codex@openai.com>
…rces (pingdotgg#27539)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: GPT 6.1 Sol <codex@openai.com>
…tions removed (pingdotgg#21757)

Co-authored-by: Pipyakas <pipyakas@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…abs again (pingdotgg#19456)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Max Nylander <jztmanyl@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… dependencies

A cleanly merged lockfile or a new upstream workspace package left verify
running against the pre-merge node_modules, so typecheck failed on missing
modules. Also retire upstream's new mobile-eas-preview-fork.yml with its
siblings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tream

Upstream's new clone redaction tests assert git's raw line, which the fork's
clone diagnostics (#98) rewrite into a sentence. Upstream's discovery now
runs the auth probe beside --version, so the Azure test stops asserting it
is skipped and keeps asserting a missing CLI ignores it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@radroid
radroid merged commit ac286c1 into main Oct 30, 2026
18 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.