Skip to content

perf(release): trim Windows packaging setup - #14037

Merged
t3dotgg merged 2 commits into
mainfrom
perf/release-windows-setup
Oct 1, 2026
Merged

t3dotgg merged 2 commits into
mainfrom
perf/release-windows-setup

Conversation

@t3dotgg

@t3dotgg t3dotgg commented Sep 28, 2026 •

Copy link
Copy Markdown
Member

Windows arm64 is the slowest release job (532s in the last nightly), and Windows x64 takes about 390s. Much of their setup is slow file work on Windows. Three changes to release-desktop.yml, based on recent nightlies and on timing runs on the same runners (windows-11-arm, blacksmith-32vcpu-windows-2025) via a scratch copy of the manual Windows test workflow.

Parallel checkout. git -c checkout.workers=0 checkout writes the files on every core. It applies to every desktop job (Linux and macOS too), but I only benchmarked Windows. On Linux the whole checkout already takes under a second of file writes. Nightly checkouts take 33-43s on arm64 and 54-80s on x64. To rule out order and machine effects, I ran both ways alternately, three times each, in one job (run):

Job Without With checkout.workers=0
arm64 a 34.6s 19.1s
arm64 b 23.0s 13.0s
x64 a 25.3s 23.6s
x64 b 33.0s 22.0s

A blobless fetch was slower on both runners, so the fetch stays as it is.

No Windows package cache. On Windows, linking the packages takes most of the install time, not downloading them. So restoring the ~700 MB pnpm store does not pay for itself. From the last ten nightlies:

Cache hit: restore + install Cache miss: registry install
arm64 183-233s (mean ~212s) 142-210s (mean ~180s), then ~30s to save the cache
x64 116-172s (mean ~134s) 84-160s (mean ~118s)

The arm64 entries also took 4.09 GB of this repository's Actions cache, which is over its 10 GB limit and evicting other entries. Linux and macOS keep the setup-vp cache.

Expect Windows arm64, the release's longest job, to finish about 70s sooner on average, and Windows x64 about 60s sooner. The benchmark varies a lot between runs, especially on x64, so a few nightlies will show the real average.

Skip the Spectre libraries when the resource monitor is cached. Only the Rust resource monitor build needs the Spectre-mitigated MSVC libraries. With a cached monitor, the desktop build's preflight (scripts/build-desktop-artifact.ts) already skips its MSVC check. node-pty uses its prebuilt Windows binaries, and the last nightly's Windows logs show no node-gyp, MSBuild, or cl.exe run. So the Visual Studio Installer step, 30-64s in recent nightlies, now runs only on a monitor cache miss.

I also tried running the Visual Studio Installer (MSVC Spectre libs) in the background during the package install. It did not survive the end of the step that started it, and running it at the same time slowed the install, so it is not in this PR.

Created with Claude Opus 5.5 in Claude Code, running inside T3 Code.

🤖 Generated with Claude Code

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Sep 28, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 1704f3b

Macroscope's review found this PR approvable — This is a narrowly scoped release-workflow optimization that changes Windows runner caching and setup timing while preserving the same packaging targets and artifact flow. It does not change product behavior, defaults, schemas, deployment targets, or static-analysis settings.

No code changes detected at fa5a7e8. Prior analysis still applies.

You can add or adjust custom eligibility rules. Learn more.

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Sep 28, 2026
@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.5 KiB 13.5 KiB +8 B (+0.1%) 15.1 KiB ✅
Codex Thread snapshot wire 7.1 KiB 7.1 KiB +1 B (+0.0%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.5 KiB 6.5 KiB +7 B (+0.1%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 56.3 KiB 56.3 KiB 0 B (0.0%) 66.4 KiB ✅
Codex Live turn messages 10 10 0 (0.0%) 21 ✅
Claude Total thread wire 13.5 KiB 13.5 KiB −3 B (−0.0%) 15.1 KiB ✅
Claude Thread snapshot wire 7.1 KiB 7.1 KiB +5 B (+0.1%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.4 KiB 6.4 KiB −8 B (−0.1%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 57.0 KiB 57.0 KiB 0 B (0.0%) 66.4 KiB ✅
Claude Live turn messages 9 9 0 (0.0%) 21 ✅

Baseline: 6f8e253 · PR result: fa5a7e8 · Source CI: success

Scenario and decoded snapshot size

10 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.

  • Codex decoded thread snapshot: 114.0 KiB
  • Claude decoded thread snapshot: 114.7 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@coderabbitai

coderabbitai Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Important

Review skipped

Review was skipped as selected files did not have any reviewable changes.

⚙️ Run configuration

Configuration used: Repository: pingdotgg/t3code/.coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: dcc2369c-b96e-45d7-8cda-55568327802d

📥 Commits

Reviewing files that changed from the base of the PR and between 1704f3b and fa5a7e8.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: pingdotgg/t3code/.coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: eda0c89e-aa8c-45bd-b7a5-ed503077927a

📥 Commits

Reviewing files that changed from the base of the PR and between b2982fa and 1704f3b.

📒 Files selected for processing (1)
  • .github/workflows/release-desktop.yml

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 4 remain after this review.


📝 Walkthrough

Walkthrough

The desktop release workflow sets checkout.workers=0 for its detached checkout and removes Windows package-cache path resolution and cache steps. It also limits Spectre-mitigated MSVC library installation to Windows jobs where the resource-monitor cache misses.

Changes

Desktop release workflow

Layer / File(s) Summary
Windows release workflow setup
.github/workflows/release-desktop.yml
The workflow documents checkout observations and sets checkout.workers=0. It removes Windows package-cache path resolution and cache steps. It installs Spectre-mitigated MSVC libraries only on Windows jobs where the resource-monitor cache misses.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~8 minutes

Change: Refactor

Suggested reviewers: juliusmarminge

Merge Risk: ⚪ Minimal · up to 1704f

The workflow changes have no established user-facing failure, and the conditional Spectre setup does not block the cache-hit build path. The PR is mergeable subject to normal checks.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: reducing Windows release packaging setup time.
Description check ✅ Passed The description provides detailed problem context, implementation changes, benchmark results, limitations, and agent attribution. It does not include an explicit Scope and approval section or link to …
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@juliusmarminge juliusmarminge added the macroscope-review Opt PRs made by unvouched contributors in for Macroscope review. Vouched contributors auto-reviews label Oct 1, 2026 — with ChatGPT Codex Connector
@macroscopeapp
macroscopeapp Bot dismissed their stale review October 1, 2026 02:51

Dismissing prior approval to re-evaluate b2982fa

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Oct 1, 2026
@t3dotgg
t3dotgg force-pushed the perf/release-windows-setup branch from b2982fa to 1704f3b Compare October 1, 2026 04:30
@macroscopeapp
macroscopeapp Bot dismissed their stale review October 1, 2026 04:30

Dismissing prior approval to re-evaluate 1704f3b

@github-actions github-actions Bot added size:M 30-99 changed lines (additions + deletions). and removed size:S 10-29 changed lines (additions + deletions). labels Oct 1, 2026
t3dotgg and others added 2 commits September 30, 2026 21:44
Windows arm64 is the slowest release job, and its setup is slow file
work. Two changes, both measured on the release runners:

- Check out with checkout.workers=0, which writes files on every core.
  Alternating both ways in one job, it was about 10s faster.
- Drop the Windows package cache. Linking dominates a Windows install,
  so restoring the ~700 MB cache cost more than it saved: 183-233s for
  restore plus install on arm64 against 142-210s for a plain install
  across recent nightlies. The arm64 entries also used 4 GB of the 10 GB
  Actions cache.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Only the resource monitor build needs the Spectre-mitigated libraries.
With a cached monitor, the desktop build's preflight already skips its
MSVC check, and node-pty ships prebuilt Windows binaries, so nothing else
compiles. This saves 30-60s per Windows job.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@t3dotgg
t3dotgg force-pushed the perf/release-windows-setup branch from 1704f3b to fa5a7e8 Compare October 1, 2026 04:45
@t3dotgg
t3dotgg merged commit 8630e1a into main Oct 1, 2026
27 checks passed
@t3dotgg
t3dotgg deleted the perf/release-windows-setup branch October 1, 2026 04:47
adampeterhiggins added a commit to adampeterhiggins/t3code that referenced this pull request Oct 1, 2026
* fix(web): name the step that registers a mobile client (pingdotgg#10963)

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>

* test(desktop): Keep WSL busy-runtime fixtures visible when sh is bash (pingdotgg#14351)

* chore: bump vite-plus to 1.0 (pingdotgg#14462)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): show double bolts for Codex Ultrafast (pingdotgg#14479)

* docs: define contribution triage policy (pingdotgg#14480)

* docs: use explicit contribution triage exemptions (pingdotgg#14485)

* fix(server): Grok CLIs older than 1.0.13 are marked broken (pingdotgg#14486)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(clients): hide disconnected environments when adding projects (pingdotgg#14490)

* feat: start threads without a project (pingdotgg#13612)

Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): Claude /compact no longer ends early and leaves the thread busy (pingdotgg#14497)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): Dark+ and Light+ themes import instead of colliding with built-in ids (pingdotgg#14499)

* fix(web): make composer suggestions usable with screen readers (pingdotgg#10154)

Co-authored-by: Khai Shern, Toh <khaishern8235@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

* perf(release): build and publish npm platform packages concurrently (pingdotgg#14028)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* perf(ci): run PR checks side by side and balance server shards (pingdotgg#14025)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* perf(release): trim Windows packaging setup (pingdotgg#14037)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* perf(release): start Windows builds without waiting for the Linux job (pingdotgg#14027)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* perf(release): build Vercel deployments early and go live after publish (pingdotgg#14029)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): Claude subagents with their own model no longer show the parent's model (pingdotgg#14540)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat(web): restart the agent session from cmd+k to load new skills and plugins (pingdotgg#14542)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): hotkey settings record plain keys and Tab (pingdotgg#14548)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(release): Windows CLI smoke test no longer fails on temp dir cleanup (pingdotgg#14553)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat: start a new project from just a name (pingdotgg#14527)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Seth <sethmr21@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: Mike Olson <mwolson@member.fsf.org>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: oliver <97427849+flamboh@users.noreply.github.com>
Co-authored-by: Andrew Johnson <andrew@johnson5.net>
Co-authored-by: Khai Shern, Toh <khaishern8235@gmail.com>
eyeveil pushed a commit to issuelt/t3code that referenced this pull request Oct 1, 2026
Merges origin/main (148e6de) into t3code/codex-turn-mapping (2330919).
Brings in pingdotgg#10154, pingdotgg#14028, pingdotgg#14025 (side-by-side PR checks and weighted
server shards), pingdotgg#14037, pingdotgg#14027, pingdotgg#14029, pingdotgg#14540, pingdotgg#14542 (restart the agent
session from cmd+k), pingdotgg#14548, pingdotgg#14553 and pingdotgg#14527 (new project from a name).
No new migrations on main.

V1 files V2 deleted (kept deleted):
- provider/Layers/ClaudeAdapter(.test).ts: pingdotgg#14540 pushes a subagent's
  snapshot model at once, and gives a task launched from inside a subagent
  (its tool_use seen only in the subagent's assistant snapshot) that
  subagent as owner and its model. V2 covers the first half:
  ClaudeAdapterV2.ts:5516-5535 emits subagent.updated with the snapshot
  model as soon as it arrives. It does not cover the second: V2 records
  requested models only for Agent tool_use blocks (:5711) and keeps no
  owner map for snapshot-only tool calls, so main's nested task_started
  gets model null and the root turn node as parent. Left for a separate
  ClaudeAdapterV2 fix, not ported here.
- server.test.ts: pingdotgg#14527's test for projects.createNew through the V1
  WebSocket path. The stacked project-folders service PR adds service
  tests instead.

Content conflicts:
- ws.ts: V2's side everywhere. pingdotgg#14527's inline createNewProject (folder,
  normalizeDispatchCommand, dispatch) is not brought in.
  projects.createNew is a stub that fails with "Starting a new project from
  a name is not available yet.", and the config answer omits
  newProjectsRoot, so web and mobile do not offer the feature. Main's
  reasoningMessages flag stays dropped, as in the previous sync. pingdotgg#14542's
  fresh flag on providers.refresh merged cleanly.
- contracts/rpc.ts: V2's orchestrationV2 imports plus pingdotgg#14527's
  ProjectCreateNewInput/Result.
- ProviderRegistry.test.ts: V2's orchestrationAdapter field plus pingdotgg#14542's
  invalidateCaches counter.
- knip.jsonc: V2's probe/verify script entries plus pingdotgg#14025's
  update-test-shard-weights.ts, sorted.

Also adapted (merged cleanly but wrong for V2):
- ci.yml: git placed V2's "Install C toolchain for process-tree fixtures"
  step in pingdotgg#14025's new Typecheck job. Moved back to the Test job, where
  V2 runs the ACP process-tree tests that need cc.
- CommandPalette.tsx: pingdotgg#14542's Restart agent session read thread.session,
  which V2's thread shell does not have. It now uses thread.runtime, as
  V2's other stopSession callers do.

NewProject.ts and its test come in as-is from main; nothing calls them yet.
shardWeights.json lists 15 V1 test files V2 deleted. The sequencer treats
recorded names it does not see as absent and unknown files as fast, so the
split still covers every V2 server test file exactly once.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Oct 2, 2026
## What's Changed
* fix(shared): merge OpenCode Go limits by credential by @Yash-Singh1 in pingdotgg/t3code#14209
* feat(codex): regenerate protocol bindings for Codex 0.159 by @juliusmarminge in pingdotgg/t3code#14311
* test(server): stop pinning codex install advisory to a release range by @maria-rcks in pingdotgg/t3code#14323
* chore: stop CodeRabbit from editing PR descriptions by @t3dotgg in pingdotgg/t3code#14307
* fix(web): unresolved pull request links use the compact link tooltip by @flamboh in pingdotgg/t3code#14243
* fix(client-runtime): keep model ids in inline code from becoming file chips by @otavio in pingdotgg/t3code#13909
* fix(web): show the agent's question on user-input timeline rows by @saphid in pingdotgg/t3code#12900
* fix(web): open workspace root links in the file explorer by @saphid in pingdotgg/t3code#12449
* fix(grok): recover from crashed provider sessions by @saphid in pingdotgg/t3code#10607
* fix(web): let command menu descriptions use the full row width by @jakaskerjanc in pingdotgg/t3code#8865
* fix(web): multi-PR badges open the linked pull requests panel by @flamboh in pingdotgg/t3code#13211
* fix(web): stop clipping the bottoms of diff file names by @shivamhwp in pingdotgg/t3code#14375
* fix(web): name the step that registers a mobile client by @Sethmr in pingdotgg/t3code#10963
* test(desktop): Keep WSL busy-runtime fixtures visible when sh is bash by @mwolson in pingdotgg/t3code#14351
* chore: bump vite-plus to 1.0 by @juliusmarminge in pingdotgg/t3code#14462
* fix(web): show double bolts for Codex Ultrafast by @t3dotgg in pingdotgg/t3code#14479
* docs: define contribution triage policy by @juliusmarminge in pingdotgg/t3code#14480
* docs: use explicit contribution triage exemptions by @juliusmarminge in pingdotgg/t3code#14485
* fix(server): Grok CLIs older than 1.0.13 are marked broken by @juliusmarminge in pingdotgg/t3code#14486
* fix(clients): hide disconnected environments when adding projects by @juliusmarminge in pingdotgg/t3code#14490
* feat: start threads without a project by @t3dotgg in pingdotgg/t3code#13612
* fix(server): Claude /compact no longer ends early and leaves the thread busy by @t3dotgg in pingdotgg/t3code#14497
* fix(web): Dark+ and Light+ themes import instead of colliding with built-in ids by @flamboh in pingdotgg/t3code#14499
* fix(web): make composer suggestions usable with screen readers by @akj in pingdotgg/t3code#10154
* perf(release): build and publish npm platform packages concurrently by @t3dotgg in pingdotgg/t3code#14028
* perf(ci): run PR checks side by side and balance server shards by @t3dotgg in pingdotgg/t3code#14025
* perf(release): trim Windows packaging setup by @t3dotgg in pingdotgg/t3code#14037
* perf(release): start Windows builds without waiting for the Linux job by @t3dotgg in pingdotgg/t3code#14027
* perf(release): build Vercel deployments early and go live after publish by @t3dotgg in pingdotgg/t3code#14029
* fix(server): Claude subagents with their own model no longer show the parent's model by @t3dotgg in pingdotgg/t3code#14540
* feat(web): restart the agent session from cmd+k to load new skills and plugins by @t3dotgg in pingdotgg/t3code#14542
* fix(web): hotkey settings record plain keys and Tab by @t3dotgg in pingdotgg/t3code#14548
* fix(release): Windows CLI smoke test no longer fails on temp dir cleanup by @t3dotgg in pingdotgg/t3code#14553
* feat: start a new project from just a name by @t3dotgg in pingdotgg/t3code#14527
* fix(desktop): agent clicks in the browser no longer pop Save dialogs by @t3dotgg in pingdotgg/t3code#14573
* chore(mobile): upgrade to Expo SDK 58 and React Native 0.88 RC by @juliusmarminge in pingdotgg/t3code#12045
* feat(mobile): render the Android subscription widget with expo-widgets by @juliusmarminge in pingdotgg/t3code#12046
* feat(mobile): degrade the agent Live Activity once its content goes stale by @juliusmarminge in pingdotgg/t3code#12047
* feat(notifications): stack agent alerts by thread on both platforms by @juliusmarminge in pingdotgg/t3code#12048
* chore(mobile): drive dev-menu suppression from the dev-client launch URL by @juliusmarminge in pingdotgg/t3code#12049
* fix(mobile): read display scale and width from the view's scene, not UIScreen.main by @juliusmarminge in pingdotgg/t3code#12050
* refactor(mobile): adopt Expo Modules 2.0 for function-only native members by @juliusmarminge in pingdotgg/t3code#12051
* feat(mobile): suppress only the on-screen thread's alert on Android by @juliusmarminge in pingdotgg/t3code#12052
* feat(marketing): replace the screenshot crop with a designed social card by @flamboh in pingdotgg/t3code#13487
* docs: update user count in AGENTS.md by @Kamkmgamer in pingdotgg/t3code#11413
* test(web): remove duplicate sidebar ordering tests by @t3-code[bot] in pingdotgg/t3code#14558
* fix: cloned projects show their favicon instead of a monogram by @t3dotgg in pingdotgg/t3code#14635
* docs: server features are services, and handlers stay thin by @juliusmarminge in pingdotgg/t3code#14613
* fix(ci): pin eas-cli so mobile PR previews deploy again by @juliusmarminge in pingdotgg/t3code#14659
* fix(server): background GitHub polling uses ~74% fewer calls with batched GraphQL by @t3dotgg in pingdotgg/t3code#14673
* fix(web): show the Docker icon on dockerfile code blocks by @chrisdeeming in pingdotgg/t3code#14675
* feat(web): update providers on every machine with one click by @t3dotgg in pingdotgg/t3code#14678
* feat(web): beta Working section hides busy threads until they need you by @t3dotgg in pingdotgg/t3code#13926
* fix(web): PR checks status collapses to its icon instead of wrapping by @flamboh in pingdotgg/t3code#14700
* fix: remove outdated restart setting update advice by @t3-code[bot] in pingdotgg/t3code#14710
* fix(web): keep the terminal toggle clear of the last header action by @Mnigos in pingdotgg/t3code#13426
* fix(web): group composer undo the way the Lexical composer did by @chrisdeeming in pingdotgg/t3code#14674
* fix(desktop): markdown pages no longer render invisible in the dark-mode browser by @shivamhwp in pingdotgg/t3code#14601
* fix(mobile): one No project row at the top of the project picker by @juliusmarminge in pingdotgg/t3code#14532
* Remove unused isCloudDebugEnabled and isTerminalDebugEnabled by @kridaydave in pingdotgg/t3code#14367
* fix(mobile): update Expo 58 to restore widgets and Live Activities by @juliusmarminge in pingdotgg/t3code#14734
* fix(mobile): project picker cards match the settings card color by @juliusmarminge in pingdotgg/t3code#14756
* fix(markdown): keep Windows paths intact in link and image destinations by @SunkenInTime in pingdotgg/t3code#12615

## New Contributors
* @jakaskerjanc made their first contribution in pingdotgg/t3code#8865
* @Sethmr made their first contribution in pingdotgg/t3code#10963
* @Kamkmgamer made their first contribution in pingdotgg/t3code#11413

**Full Changelog**: pingdotgg/t3code@v0.0.44...v0.0.45

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.45
IanWorley added a commit to IanWorley/t3code that referenced this pull request Oct 3, 2026
* fix(web): stop clipping the bottoms of diff file names (pingdotgg#14375)

* fix(web): name the step that registers a mobile client (pingdotgg#10963)

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>

* test(desktop): Keep WSL busy-runtime fixtures visible when sh is bash (pingdotgg#14351)

* chore: bump vite-plus to 1.0 (pingdotgg#14462)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): show double bolts for Codex Ultrafast (pingdotgg#14479)

* docs: define contribution triage policy (pingdotgg#14480)

* docs: use explicit contribution triage exemptions (pingdotgg#14485)

* fix(server): Grok CLIs older than 1.0.13 are marked broken (pingdotgg#14486)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(clients): hide disconnected environments when adding projects (pingdotgg#14490)

* feat: start threads without a project (pingdotgg#13612)

Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): Claude /compact no longer ends early and leaves the thread busy (pingdotgg#14497)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): Dark+ and Light+ themes import instead of colliding with built-in ids (pingdotgg#14499)

* fix(web): make composer suggestions usable with screen readers (pingdotgg#10154)

Co-authored-by: Khai Shern, Toh <khaishern8235@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

* perf(release): build and publish npm platform packages concurrently (pingdotgg#14028)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* perf(ci): run PR checks side by side and balance server shards (pingdotgg#14025)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* perf(release): trim Windows packaging setup (pingdotgg#14037)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* perf(release): start Windows builds without waiting for the Linux job (pingdotgg#14027)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* perf(release): build Vercel deployments early and go live after publish (pingdotgg#14029)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): Claude subagents with their own model no longer show the parent's model (pingdotgg#14540)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat(web): restart the agent session from cmd+k to load new skills and plugins (pingdotgg#14542)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): hotkey settings record plain keys and Tab (pingdotgg#14548)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(release): Windows CLI smoke test no longer fails on temp dir cleanup (pingdotgg#14553)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat: start a new project from just a name (pingdotgg#14527)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(desktop): agent clicks in the browser no longer pop Save dialogs (pingdotgg#14573)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* chore(mobile): upgrade to Expo SDK 58 and React Native 0.88 RC (pingdotgg#12045)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat(mobile): render the Android subscription widget with expo-widgets (pingdotgg#12046)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat(mobile): degrade the agent Live Activity once its content goes stale (pingdotgg#12047)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat(notifications): stack agent alerts by thread on both platforms (pingdotgg#12048)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* chore(mobile): drive dev-menu suppression from the dev-client launch URL (pingdotgg#12049)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* fix(mobile): read display scale and width from the view's scene, not UIScreen.main (pingdotgg#12050)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* refactor(mobile): adopt Expo Modules 2.0 for function-only native members (pingdotgg#12051)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat(mobile): suppress only the on-screen thread's alert on Android (pingdotgg#12052)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat(marketing): replace the screenshot crop with a designed social card (pingdotgg#13487)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* docs: update user count in AGENTS.md (pingdotgg#11413)

* test(web): remove duplicate sidebar ordering tests (pingdotgg#14558)

Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>

* Update marketing stats for GitHub stars and users

* fix: cloned projects show their favicon instead of a monogram (pingdotgg#14635)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* docs: server features are services, and handlers stay thin (pingdotgg#14613)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(ci): pin eas-cli so mobile PR previews deploy again (pingdotgg#14659)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): background GitHub polling uses ~74% fewer calls with batched GraphQL (pingdotgg#14673)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): show the Docker icon on dockerfile code blocks (pingdotgg#14675)

* feat(web): update providers on every machine with one click (pingdotgg#14678)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* feat(web): beta Working section hides busy threads until they need you (pingdotgg#13926)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(web): PR checks status collapses to its icon instead of wrapping (pingdotgg#14700)

* fix: remove outdated restart setting update advice (pingdotgg#14710)

Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com>

* fix(web): keep the terminal toggle clear of the last header action (pingdotgg#13426)

* fix(web): group composer undo the way the Lexical composer did (pingdotgg#14674)

* fix(desktop): markdown pages no longer render invisible in the dark-mode browser (pingdotgg#14601)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(mobile): one No project row at the top of the project picker (pingdotgg#14532)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* Remove unused isCloudDebugEnabled and isTerminalDebugEnabled (pingdotgg#14367)

* fix(mobile): update Expo 58 to restore widgets and Live Activities (pingdotgg#14734)

* fix(mobile): project picker cards match the settings card color (pingdotgg#14756)

* chore(mobile): bump app version to 1.4.0

Co-authored-by: codex <codex@users.noreply.github.com>

* fix(markdown): keep Windows paths intact in link and image destinations (pingdotgg#12615)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(mobile): opening a thread no longer crashes Android release builds (pingdotgg#14850)

* chore(release): prepare v0.0.45

* fix(server): stop a second server from resending Claude turns (pingdotgg#13295)

* docs(triage): leave protected PRs open (pingdotgg#14852)

* feat(orchestrator): introduce new orchestrator (pingdotgg#2829)

Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Bilal Bakr <62337003+Bil0000@users.noreply.github.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: Vitalii Yehorov <vitalyiegorov@gmail.com>
Co-authored-by: Jake Leventhal <jakeleventhal@me.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Alex Southwell <saphid@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Wasmiller <derped@mineperial.com>
Co-authored-by: PB <poilmb@gmail.com>
Co-authored-by: Exotic <118054752+extoci@users.noreply.github.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Gabriel De Andrade <30420087+gabrielelpidio@users.noreply.github.com>
Co-authored-by: Dara Adedeji <76637177+SunkenInTime@users.noreply.github.com>
Co-authored-by: scratchyone <scratchywon@gmail.com>
Co-authored-by: Dominic Roy <dominic@sdko.org>
Co-authored-by: chukfinley <chuk@chuk.dev>
Co-authored-by: Primož Ajdišek <bigpod@bigpod.si>
Co-authored-by: benthecarman <benthecarman@live.com>
Co-authored-by: NaveDanan <nave0712@gmail.com>
Co-authored-by: aaditagrawal <103925638+aaditagrawal@users.noreply.github.com>
Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com>
Co-authored-by: Nick Anisimov <n.anisimov.23@gmail.com>
Co-authored-by: MacKinley Smith <smithmackinley@gmail.com>
Co-authored-by: Yordis Prieto <yordis.prieto@gmail.com>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: AKolenda <akole779@mtroyal.ca>
Co-authored-by: Guillermo Casanova <75276669+Gigioxx@users.noreply.github.com>
Co-authored-by: Otavio Salvador <otavio@ossystems.com.br>
Co-authored-by: Shirish Pothi <183252392+shirishpothi@users.noreply.github.com>
Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com>
Co-authored-by: Bob Fowler <bob@rjf.ca>
Co-authored-by: Anton Bezdenezhnykh <gamer392@yandex.ru>
Co-authored-by: ValeraZSD <48602572+ValeraZSD@users.noreply.github.com>
Co-authored-by: Ephraim <ephraim39hr14m@gmail.com>
Co-authored-by: Ryan Ilano <ryanilano@users.noreply.github.com>
Co-authored-by: Alex <me@pixp.cc>
Co-authored-by: maco <gosarmarcel7@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Tristan Knight <admin@snappeh.com>
Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: oliver <97427849+flamboh@users.noreply.github.com>
Co-authored-by: kamkm <99585688+Kamkmgamer@users.noreply.github.com>
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>

* chore(mobile): bump app version to 2.0.0

Co-authored-by: codex <codex@users.noreply.github.com>

* fix(server): Claude MCP tools show their names and icons (pingdotgg#14860)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): released builds keep the OpenCode policy for their own version (pingdotgg#14863)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): idle shells stop reloading every project once a minute (pingdotgg#14893)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): Claude model changes no longer kill running background agents (pingdotgg#14726)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): API-key Codex installs no longer warn on every start (pingdotgg#14903)

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>

* fix(server): steers keep the newest next-turn selection (pingdotgg#14725)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(settings): Pi and ACP Registry no longer show an Early Access badge (pingdotgg#14915)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(server): Codex auth tokens are an omitted key, never undefined (pingdotgg#14908)

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>

* chore(lint): forbid declaring tests inside for loops (pingdotgg#14921)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(desktop): markdown no longer loads invisible in new dark-mode browser tabs (pingdotgg#14727)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* refactor(pi): remove legacy ACP connection

* fix(providers): preserve Kiro and VibeProxy behavior

---------

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: Seth <sethmr21@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Mike Olson <mwolson@member.fsf.org>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: oliver <97427849+flamboh@users.noreply.github.com>
Co-authored-by: Andrew Johnson <andrew@johnson5.net>
Co-authored-by: Khai Shern, Toh <khaishern8235@gmail.com>
Co-authored-by: kamkm <99585688+Kamkmgamer@users.noreply.github.com>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Chris Deeming <chris@xenforo.com>
Co-authored-by: maria <254055478+maria-rcks@users.noreply.github.com>
Co-authored-by: Igor Makowski <56691628+Mnigos@users.noreply.github.com>
Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Kriday Dave <technocratix902@gmail.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: Dara Adedeji <76637177+SunkenInTime@users.noreply.github.com>
Co-authored-by: Aaron Queen <bompus@users.noreply.github.com>
Co-authored-by: Cestercian <yashafaid@gmail.com>
Co-authored-by: Bilal Bakr <62337003+Bil0000@users.noreply.github.com>
Co-authored-by: Vitalii Yehorov <vitalyiegorov@gmail.com>
Co-authored-by: Jake Leventhal <jakeleventhal@me.com>
Co-authored-by: Alex Southwell <saphid@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Wasmiller <derped@mineperial.com>
Co-authored-by: PB <poilmb@gmail.com>
Co-authored-by: Exotic <118054752+extoci@users.noreply.github.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Gabriel De Andrade <30420087+gabrielelpidio@users.noreply.github.com>
Co-authored-by: scratchyone <scratchywon@gmail.com>
Co-authored-by: Dominic Roy <dominic@sdko.org>
Co-authored-by: chukfinley <chuk@chuk.dev>
Co-authored-by: Primož Ajdišek <bigpod@bigpod.si>
Co-authored-by: benthecarman <benthecarman@live.com>
Co-authored-by: NaveDanan <nave0712@gmail.com>
Co-authored-by: aaditagrawal <103925638+aaditagrawal@users.noreply.github.com>
Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com>
Co-authored-by: Nick Anisimov <n.anisimov.23@gmail.com>
Co-authored-by: MacKinley Smith <smithmackinley@gmail.com>
Co-authored-by: Yordis Prieto <yordis.prieto@gmail.com>
Co-authored-by: AKolenda <akole779@mtroyal.ca>
Co-authored-by: Guillermo Casanova <75276669+Gigioxx@users.noreply.github.com>
Co-authored-by: Otavio Salvador <otavio@ossystems.com.br>
Co-authored-by: Shirish Pothi <183252392+shirishpothi@users.noreply.github.com>
Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com>
Co-authored-by: Bob Fowler <bob@rjf.ca>
Co-authored-by: Anton Bezdenezhnykh <gamer392@yandex.ru>
Co-authored-by: ValeraZSD <48602572+ValeraZSD@users.noreply.github.com>
Co-authored-by: Ephraim <ephraim39hr14m@gmail.com>
Co-authored-by: Ryan Ilano <ryanilano@users.noreply.github.com>
Co-authored-by: Alex <me@pixp.cc>
Co-authored-by: maco <gosarmarcel7@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Tristan Knight <admin@snappeh.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

macroscope-review Opt PRs made by unvouched contributors in for Macroscope review. Vouched contributors auto-reviews size:M 30-99 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants