Skip to content

refactor: move the canonical libghostty-vt vendor to the repository root - #5102

Merged
juliusmarminge merged 1 commit into
pingdotgg:mainfrom
StiensWout:agent/ghostty-vendor-toplevel
Jul 31, 2026
Merged

refactor: move the canonical libghostty-vt vendor to the repository root#5102
juliusmarminge merged 1 commit into
pingdotgg:mainfrom
StiensWout:agent/ghostty-vendor-toplevel

Conversation

@StiensWout

@StiensWout StiensWout commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #4860, as discussed: the canonical libghostty-vt vendor (upstream pin, license, and C API headers) lived inside the mobile terminal module, so the web adapter's build script, ABI regression test, and docs reached across into apps/mobile. It now lives at native/libghostty-vt/ beside the repo's other top-level native code, and both platforms reference it there.

What changed

  • git mv apps/mobile/modules/t3-terminal/Vendor/libghostty-vtnative/libghostty-vt (pin, license, headers; pure rename)
  • Android's CMake include path and build-libghostty-android.sh follow the move
  • the web WASM build script and the vendored-WASM ABI test read the pin from the repository root
  • docs and third-party notices point at the new location

What deliberately stayed

Platform build outputs remain with their apps: Android's jniLibs and the iOS GhosttyKit.xcframework in the mobile module, and the wasm artifacts in the web adapter. The single source of truth for the upstream revision is the root native/libghostty-vt/VERSION; the wasm continues to embed that revision as build metadata and the ABI test verifies it against the root pin.

Validation

  • focused web tests (51) including the vendored-WASM ABI regressions against the relocated pin
  • web typecheck, focused lint, formatting
  • bash -n on both build scripts, and a full reproducible WASM rebuild from the relocated pin — the produced artifact is byte-identical to the committed one
  • Android CMake path verified by relative-path count; an Android build in CI will confirm

🤖 Generated with Claude Code


Note

Low Risk
Pure relocation and path reference updates with no terminal runtime or ABI logic changes; main residual risk is a miscomputed relative path in Android CMake until CI confirms the native build.

Overview
Moves the shared libghostty-vt vendor (upstream pin, license, C headers) from the mobile terminal module to native/libghostty-vt/, next to other top-level native code. Android and web both point at that location instead of apps/mobile/modules/t3-terminal/Vendor/libghostty-vt.

Android’s CMake include path and build-libghostty-android.sh now read headers and write rebuilt includes into the root vendor tree. The web WASM build script and runtimeAbi.test.ts import native/libghostty-vt/VERSION as the single pin for ABI regression checks. READMEs, third-party notices, and docs/architecture/terminal-renderers.md document the new path.

Platform build outputs are unchanged: Android jniLibs, iOS GhosttyKit, and web vendor/ wasm artifacts still live under their apps; only the canonical metadata and headers moved.

Reviewed by Cursor Bugbot for commit fb6d5a6. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Move libghostty-vt vendor directory to repository root at native/libghostty-vt

Relocates the canonical libghostty-vt vendor tree from apps/mobile/modules/t3-terminal/Vendor/libghostty-vt to native/libghostty-vt so the headers, VERSION, and LICENSE are shared across both mobile and web builds from a single location. Build scripts, CMakeLists.txt, the ABI test, and all documentation are updated to reference the new path.

Macroscope summarized fb6d5a6.

The shared upstream pin, license, and C API headers lived inside the
mobile terminal module, so the web adapter's build script, ABI
regression test, and docs reached across into apps/mobile. The
canonical vendor now lives at native/libghostty-vt/ beside the other
top-level native code, and both platforms reference it there:

- Android's CMake include path and the Android build script follow
- the web WASM build script and the ABI test read the root pin
- docs and third-party notices point at the new location

Platform build outputs stay with their apps (Android jniLibs and the
iOS xcframework in the mobile module, the wasm artifacts in the web
adapter). The web WASM build was re-run from the relocated pin to
verify the script end to end; the artifact is byte-identical.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: c487f7e4-dcfc-4f68-ae8c-e392cbe6ff1e

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

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions github-actions Bot added size:S 10-29 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Jul 31, 2026
@macroscopeapp

macroscopeapp Bot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved fb6d5a6

Purely mechanical file reorganization moving a vendored library to the repository root with corresponding path reference updates in documentation, build scripts, and tests. No behavioral changes.

You can customize Macroscope's approvability policy. Learn more.

@juliusmarminge
juliusmarminge merged commit 964cc27 into pingdotgg:main Jul 31, 2026
16 of 17 checks passed
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Jul 31, 2026
## What's Changed
* feat(cli): `npx t3 pair` - generate QR code from a running server by @t3dotgg in pingdotgg/t3code#4955
* fix(server): self-update no longer rolls itself back on restart by @t3dotgg in pingdotgg/t3code#5095
* fix(ci): rotate iPad showcase captures without Simulator UI scripting by @juliusmarminge in pingdotgg/t3code#5094
* feat(web): render terminals with libghostty-vt by @StiensWout in pingdotgg/t3code#4860
* refactor: move the canonical libghostty-vt vendor to the repository root by @StiensWout in pingdotgg/t3code#5102


**Full Changelog**: pingdotgg/t3code@v0.0.32-nightly.20260731.964...v0.0.32-nightly.20260731.965

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.32-nightly.20260731.965
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants