Skip to content

fix: Link ghostty-vt statically on Windows MSVC - #13171

Merged
anthonyshew merged 2 commits into
mainfrom
shew/fix-windows-ghostty-static-link-1296
Jun 30, 2026
Merged

anthonyshew merged 2 commits into
mainfrom
shew/fix-windows-ghostty-static-link-1296

Conversation

@anthonyshew

Copy link
Copy Markdown
Contributor

On MSVC, rustc resolves static=ghostty-vt to ghostty-vt.lib, which is the DLL import library rather than the static archive. That left release turbo.exe importing ghostty-vt.dll even though turborepo-ghostty-sys defaults to static linking.

Use static=ghostty-vt-static on Windows MSVC so published @turbo/windows-* packages do not require a runtime ghostty-vt.dll sidecar.

Fixes #13170

On MSVC, rustc resolves static=ghostty-vt to ghostty-vt.lib, which is the
DLL import library rather than the static archive. That left release
turbo.exe importing ghostty-vt.dll even though turborepo-ghostty-sys defaults
to static linking.

Use static=ghostty-vt-static on Windows MSVC so published @turbo/windows-*
packages do not require a runtime ghostty-vt.dll sidecar.

Fixes #13170

Co-authored-by: Anthony Shew <anthonyshew@users.noreply.github.com>
@anthonyshew
anthonyshew requested a review from a team as a code owner June 30, 2026 15:05
@anthonyshew
anthonyshew requested review from tknickman and removed request for a team June 30, 2026 15:05
@vercel

vercel Bot commented Jun 30, 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 Jun 30, 2026 3:09pm
examples-designsystem-docs Ready Ready Preview, Comment, Open in v0 Jun 30, 2026 3:09pm
examples-gatsby-web Ready Ready Preview, Comment, Open in v0 Jun 30, 2026 3:09pm
examples-kitchensink-blog Ready Ready Preview, Comment, Open in v0 Jun 30, 2026 3:09pm
examples-nonmonorepo Ready Ready Preview, Comment, Open in v0 Jun 30, 2026 3:09pm
examples-svelte-web Ready Ready Preview, Comment, Open in v0 Jun 30, 2026 3:09pm
examples-tailwind-web Ready Ready Preview, Comment, Open in v0 Jun 30, 2026 3:09pm
examples-vite-web Ready Ready Preview, Comment, Open in v0 Jun 30, 2026 3:09pm
turbo-site Ready Ready Preview, Comment, Open in v0 Jun 30, 2026 3:09pm
turborepo-eve-agent Error Error Open in v0 Jun 30, 2026 3:09pm

Co-authored-by: Anthony Shew <anthonyshew@users.noreply.github.com>
@anthonyshew
anthonyshew merged commit e950d71 into main Jun 30, 2026
41 of 42 checks passed
@anthonyshew
anthonyshew deleted the shew/fix-windows-ghostty-static-link-1296 branch June 30, 2026 15:18
anthonyshew pushed a commit that referenced this pull request Jun 30, 2026
## Release v2.10.2-canary.1

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

### Changes

- feat: Support devEngines packageManager in workspaces (#13150)
(`9d94ae5`)
- release(turborepo): 2.10.1-canary.3 (#13149) (`0d32225`)
- feat: Update add package manager codemod (#13151) (`27ca962`)
- feat: Update workspace package manager declarations (#13154)
(`f878719`)
- release(turborepo): 2.10.1 (#13156) (`8c3bbe4`)
- docs: Prefer devEngines packageManager (#13155) (`6598f7c`)
- fix: Install Zig for LSP builds (#13158) (`c1bc71f`)
- ci: Pin macOS Rust builds to macOS 15 (#13167) (`16fe0a4`)
- feat: Recognize nub as a package manager (#13120) (`782b168`)
- fix: Preserve 3-level nested Bun lockfile entries during prune
(#13168) (`799fa5a`)
- fix: Avoid following nested symlinked cache outputs (#13166)
(`502ceaf`)
- feat: Add nub package manager support to JavaScript packages (#13169)
(`53cddc8`)
- fix: Link ghostty-vt statically on Windows MSVC (#13171) (`e950d71`)

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

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

### Changes

- release(turborepo): 2.10.1 (#13156) (`8c3bbe4`)
- docs: Prefer devEngines packageManager (#13155) (`6598f7c`)
- fix: Install Zig for LSP builds (#13158) (`c1bc71f`)
- ci: Pin macOS Rust builds to macOS 15 (#13167) (`16fe0a4`)
- feat: Recognize nub as a package manager (#13120) (`782b168`)
- fix: Preserve 3-level nested Bun lockfile entries during prune
(#13168) (`799fa5a`)
- fix: Avoid following nested symlinked cache outputs (#13166)
(`502ceaf`)
- feat: Add nub package manager support to JavaScript packages (#13169)
(`53cddc8`)
- fix: Link ghostty-vt statically on Windows MSVC (#13171) (`e950d71`)
- release(turborepo): 2.10.2-canary.1 (#13172) (`c597bb5`)
- feat: Add nub to create-turbo options (#13173) (`82b1cf1`)

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
cursor Bot pushed a commit that referenced this pull request Jul 2, 2026
Upstream libghostty-vt-sys 0.2.0 emits static=ghostty-vt, which MSVC
resolves to ghostty-vt.lib (the DLL import library). That regresses the
fix from #13171 and would leave turbo.exe depending on ghostty-vt.dll.

Vendor libghostty-vt-sys 0.2.0 with the MSVC ghostty-vt-static link
override via [patch.crates-io] until upstream includes the same fix.

Co-authored-by: Anthony Shew <anthonyshew@users.noreply.github.com>
anthonyshew added a commit that referenced this pull request Jul 3, 2026
…ngs (#13205)

## Summary

Switches Turborepo's Ghostty integration from vendored
`turborepo-ghostty-sys` bindings to the upstream
[`libghostty-vt`](https://crates.io/crates/libghostty-vt) /
[`libghostty-vt-sys`](https://crates.io/crates/libghostty-vt-sys)
crates, with a local patch for Windows MSVC static linking.

## Changes

- Remove `crates/turborepo-ghostty-sys/` and ~10k lines of vendored FFI
wrappers
- Slim `turborepo-ghostty` down to Turborepo-specific glue (`Parser`,
`TerminalWidget`, style conversion)
- Add `[patch.crates-io]` for `libghostty-vt-sys` with MSVC
`ghostty-vt-static` linking fix
- **CI fix:** run the TUI on a dedicated OS thread — upstream Ghostty
terminal types are `!Send`, so `tokio::task::spawn` no longer compiles

## Windows static linking

Upstream `libghostty-vt-sys` 0.2.0 links `static=ghostty-vt`, which on
MSVC resolves to the DLL import library. The patched crate links
`ghostty-vt-static` instead, matching the prior `turborepo-ghostty-sys`
fix (#13171).

## Notes

- Zig is still required at build time (`libghostty-vt-sys` runs `zig
build` against Ghostty sources)
- Once upstream merges the MSVC static-link fix, we can drop the local
`crates/libghostty-vt-sys/` patch

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Anthony Shew <anthonyshew@users.noreply.github.com>

This branch had an error being deployed

1 failed deployment
Preview – turborepo-eve-agent — cb547920 Deployed Jun 30, 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.

Upgrade from 2.10.0 to 2.10.1. Broken turbo commands on Windows

2 participants