Skip to content

fix: Build Ghostty for baseline CPUs - #13352

Merged
anthonyshew merged 2 commits into
mainfrom
shew/fix-ghostty-baseline-cpu-299b
Jul 12, 2026
Merged

anthonyshew merged 2 commits into
mainfrom
shew/fix-ghostty-baseline-cpu-299b

Conversation

@anthonyshew

Copy link
Copy Markdown
Contributor

Description

Build vendored libghostty-vt with Zig's baseline CPU target so distributed turbo binaries do not inherit CPU features from release runners. This prevents STATUS_ILLEGAL_INSTRUCTION crashes on older x86_64 Windows machines.

Fixes #13346.

Testing Instructions

  • cargo fmt --all -- --check
  • cargo build --release -p libghostty-vt-sys with Zig 0.15.2
  • cargo test -p turborepo-ghostty
  • cargo test -p turbo --test command_test test_version_flag_matches_version_txt -- --exact
Open in Web Open in Cursor 

cursoragent and others added 2 commits July 11, 2026 20:59
Co-authored-by: Anthony Shew <anthonyshew@users.noreply.github.com>
Co-authored-by: Anthony Shew <anthonyshew@users.noreply.github.com>
@cursor

cursor Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@anthonyshew
anthonyshew requested a review from a team as a code owner July 12, 2026 14:17
@anthonyshew
anthonyshew requested review from tknickman and removed request for a team July 12, 2026 14:17
@vercel

vercel Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
examples-basic-web Ready Ready Preview, Comment, Open in v0 Jul 12, 2026 2:17pm
examples-designsystem-docs Ready Ready Preview, Comment, Open in v0 Jul 12, 2026 2:17pm
examples-gatsby-web Ready Ready Preview, Comment, Open in v0 Jul 12, 2026 2:17pm
examples-kitchensink-blog Ready Ready Preview, Comment, Open in v0 Jul 12, 2026 2:17pm
examples-nonmonorepo Ready Ready Preview, Comment, Open in v0 Jul 12, 2026 2:17pm
examples-svelte-web Ready Ready Preview, Comment, Open in v0 Jul 12, 2026 2:17pm
examples-tailwind-web Ready Ready Preview, Comment, Open in v0 Jul 12, 2026 2:17pm
examples-vite-web Ready Ready Preview, Comment, Open in v0 Jul 12, 2026 2:17pm
turbo-site Ready Ready Preview, Comment, Open in v0 Jul 12, 2026 2:17pm

@anthonyshew
anthonyshew merged commit a2a04cc into main Jul 12, 2026
48 checks passed
@anthonyshew
anthonyshew deleted the shew/fix-ghostty-baseline-cpu-299b branch July 12, 2026 20:53
anthonyshew pushed a commit that referenced this pull request Jul 12, 2026
## Release v2.10.5-canary.6

> [!CAUTION]
> Versioned docs aliasing FAILED. [View
logs](https://github.com/vercel/turborepo/actions/runs/29208587549)

### Changes

- chore: Remove planning docs (#13329) (`5cd1d02`)
- docs: Migrate docs site to @vercel/geistdocs package (#13320)
(`5517bb2`)
- ci: Update Remote Cache action (#13330) (`4a39887`)
- release(turborepo): 2.10.5-canary.5 (#13331) (`f699719`)
- ci: Remove path-based workflow scheduling (#13332) (`84f2b2c`)
- fix: Resolve EADDRINUSE in kitchen-sink api dev script (#13328)
(`5886c71`)
- ci: Disable telemetry messages in workflows (#13334) (`2218dea`)
- fix: Prevent Cargo run tasks from being cached (#13335) (`68f449b`)
- fix: Isolate Cargo cache by host platform (#13337) (`c71f5cd`)
- fix: Continue TUI text selection beyond viewport (#13338) (`9cbfd90`)
- ci: Dogfood Cargo target restoration (#13336) (`8ad90a7`)
- fix: Require current Cargo lockfiles for caching (#13339) (`3a3d381`)
- fix: Reject unsupported Cargo local packages (#13340) (`708d656`)
- fix: Allow outputs outside package roots (#13342) (`de6a0d3`)
- fix: Resolve Cargo lock dependencies by source (#13343) (`2223a33`)
- docs: Update Cargo workspace support (#13349) (`241ada8`)
- fix: Build Ghostty for baseline CPUs (#13352) (`a2a04cc`)
- fix: Preserve watch rerun semantics for task inputs (#13351)
(`6ed5eab`)
- fix: Isolate Command Overrides From Toolchain Cache I/O (#13354)
(`e76f0b4`)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
anthonyshew pushed a commit that referenced this pull request Jul 13, 2026
## Release v2.10.5

> [!CAUTION]
> Versioned docs aliasing FAILED. [View
logs](https://github.com/vercel/turborepo/actions/runs/29267191097)

### Changes

- perf: Evaluate simple include globs without wax compilation (#13285)
(`189897a`)
- chore: Dogfood native Cargo support in this repository (#13283)
(`42f067b`)
- release(turborepo): 2.10.4 (#13286) (`f2fce38`)
- ci: Remove dead sccache configuration (#13289) (`558df3f`)
- feat: Serve the Remote Cache as an sccache backend for Cargo tasks
(#13288) (`0d9803f`)
- fix: Reject output path traversal (#13290) (`733ccca`)
- fix: Disable the sccache proxy when remote cache use is off (#13291)
(`3249e22`)
- feat: Embed sccache so the Cargo compile cache needs no installation
(#13293) (`b6d0035`)
- release(turborepo): 2.10.5-canary.1 (#13294) (`e6cd498`)
- fix: Pin a flag-aware turbo canary for the eve-agent deployment
(#13295) (`e60a4bd`)
- fix: Make the sccache compile cache actually cache (#13296)
(`2ac099c`)
- release(turborepo): 2.10.5-canary.2 (#13297) (`e6e6fb6`)
- fix: Stop ambient CARGO_INCREMENTAL from suppressing compile cache
injection (#13298) (`784af75`)
- fix: Never let compile cache storage failures fail the build (#13299)
(`a6fc6c5`)
- test: Add outputs path-traversal negative-case regression tests
(#13300) (`2ff6df9`)
- release(turborepo): 2.10.5-canary.3 (#13302) (`7e44a29`)
- ci: Authenticate to Remote Cache via OIDC token exchange (#13303)
(`a86839c`)
- fix: Keep pnpm patches with version range keys during prune (#13307)
(`3c27a89`)
- test: Scrub ambient turbo configuration from integration test children
(#13306) (`b03d0d6`)
- fix: Show toolchain tasks in the TUI and never run in silence (#13308)
(`d7622b6`)
- ci: Fix change detection on push events (#13304) (`eec3d61`)
- refactor: Rename the Cargo toolchain id to rust (#13311) (`a548b02`)
- fix: Remove extraneous bun.lock entries during prune (#13317)
(`382e9f5`)
- feat: Require a user-declared name for the Cargo workspace package
(#13312) (`5f01746`)
- feat: Parse and validate the task command field (#13313) (`389ea49`)
- chore: Harden turbo-vsc to invoke turbo without a shell (#13319)
(`4a19b6e`)
- feat: Resolve and execute task command overrides (#13315) (`a549baa`)
- release(turborepo): 2.10.5-canary.4 (#13325) (`6626261`)
- feat: Run the Rust workspace tests through nextest via command
override (#13316) (`6711bbc`)
- feat: Engage the Remote Cache and sccache compile cache for Rust CI
(#13292) (`1ae2065`)
- ci: Pin GitHub Actions to full commit SHAs (#13143) (`ad614d6`)
- fix: Make npm prune rehoisting deterministic and complete (#13323)
(`2dac737`)
- feat: Report incremental cache reuse in the run summary (#13327)
(`9f3d24a`)
- chore: Remove planning docs (#13329) (`5cd1d02`)
- docs: Migrate docs site to @vercel/geistdocs package (#13320)
(`5517bb2`)
- ci: Update Remote Cache action (#13330) (`4a39887`)
- release(turborepo): 2.10.5-canary.5 (#13331) (`f699719`)
- ci: Remove path-based workflow scheduling (#13332) (`84f2b2c`)
- fix: Resolve EADDRINUSE in kitchen-sink api dev script (#13328)
(`5886c71`)
- ci: Disable telemetry messages in workflows (#13334) (`2218dea`)
- fix: Prevent Cargo run tasks from being cached (#13335) (`68f449b`)
- fix: Isolate Cargo cache by host platform (#13337) (`c71f5cd`)
- fix: Continue TUI text selection beyond viewport (#13338) (`9cbfd90`)
- ci: Dogfood Cargo target restoration (#13336) (`8ad90a7`)
- fix: Require current Cargo lockfiles for caching (#13339) (`3a3d381`)
- fix: Reject unsupported Cargo local packages (#13340) (`708d656`)
- fix: Allow outputs outside package roots (#13342) (`de6a0d3`)
- fix: Resolve Cargo lock dependencies by source (#13343) (`2223a33`)
- docs: Update Cargo workspace support (#13349) (`241ada8`)
- fix: Build Ghostty for baseline CPUs (#13352) (`a2a04cc`)
- fix: Preserve watch rerun semantics for task inputs (#13351)
(`6ed5eab`)
- fix: Isolate Command Overrides From Toolchain Cache I/O (#13354)
(`e76f0b4`)
- release(turborepo): 2.10.5-canary.6 (#13355) (`f82e2c7`)
- fix: Include patched Ghostty crate in Cargo workspace (#13357)
(`b3cd7a1`)
- ci: Shard Rust tests across runners (#13356) (`ef122d9`)
- fix: Hash Cargo build environment inputs (#13348) (`d533266`)
- fix: Synchronize Cargo prune Docker lockfile (#13350) (`ed17249`)
- chore: Update agents app Eve dependency (#13364) (`38aa7d2`)
- fix: Preserve Yarn package extension ranges when pruning (#13363)
(`6ed2fb4`)
- refactor: Add `Toolchain` output availability (#13360) (`82bcfb6`)

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
iscai-msft pushed a commit to iscai-msft/typespec that referenced this pull request Jul 23, 2026
…t#11351)

## Problem

`turbo build` randomly fails on Windows CI, exiting with code 1 and **no
task output / no "run failed" summary**:

\`\`\`
$ turbo --filter=!@typespec/monorepo "build"
   • Packages in scope: ...
   • Running build in 65 packages
   • Remote caching disabled

[ELIFECYCLE] Command failed with exit code 1.
\`\`\`

## Root cause

The failures started when turbo was bumped \`2.9.14 → 2.10.5\` in
microsoft#11265.

This is
[vercel/turborepo#13346](vercel/turborepo#13346):
turbo **2.10.1+** ships a vendored \`libghostty-vt\` compiled with
**non-baseline CPU instructions** (inherited from the release build
runners). On CPUs lacking those instructions, turbo crashes with
\`STATUS_ILLEGAL_INSTRUCTION (0xC000001D)\` — a hard process kill, so
turbo never prints its own error summary.

The crash is **deterministic per-CPU** but appears *random* because CI
runner pools have **heterogeneous CPUs** — you only fail when scheduled
onto an older/leaner microarchitecture.

The upstream fix
([vercel/turborepo#13352](vercel/turborepo#13352))
only rebuilt \`libghostty-vt\` and was verified on a single maintainer
VM; no fully-fixed stable (\`>=2.10.6\`) exists yet.

## Fix

Revert the catalog pin to **\`turbo: 2.9.14\`** — the version this repo
ran on Windows CI cleanly for ~7 weeks (Jun 2 → Jul 21). Added a comment
pointing to the upstream issue so the next dependency bump can gate
re-upgrade on a verified fixed stable.

The \`pnpm-lock.yaml\` change was applied surgically (only the 7 turbo
entries) to avoid the registry-proxy tarball churn that \`pnpm install
--lockfile-only\` introduces; validated with \`pnpm install
--frozen-lockfile\`.

This branch was successfully deployed

1 active deployment
Preview – turborepo-eve-agent — 17e01f22 Deployed Jul 11, 2026 by vercel[bot]
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.

Regression in v2.10.1+: turbo crashes on Windows (2.10.0 works, 2.10.1+ fails)

2 participants