Repository navigation
ghostty-next: pin 850bb9849 (fork PR #84): a reflow preview frame re-wraps off the terminal lock - #36577
Merged
Conversation
…wraps off the terminal lock GhosttyNextKit and the ghostty-next gitlink move together from 12ec155e1 to 510ca45ff on release/cmux-9ce9b7d0-e2 (fork PR #83, cmux-ad m18 T-REWRAP). Release xcframework-510ca45ff8fc1fb03c600dfedae7c6f098402cd8-apple-v6 (run 42028591194), zip sha256 0efea1c3...eacfcf (the release's SHA256SUMS and the GitHub asset digest agree; manifest commit 510ca45ff). No C API change. During a key resize or a divider drag, each frame's re-wrap reads a kept copy of the terminal with no terminal lock held; the live terminal is copied under the lock only when it changed. At 12ec155e1 every preview frame copied it under the lock (0.43-0.55 ms p50 at 200x60). The changed fork files (src/renderer/ReflowPreview.zig, src/renderer.zig, src/benchmark) are not in the libghostty-vt link graph, so vt-link-graph.json changes only its commit.
lawrencecchen
temporarily deployed
to
ci-routing-agent
November 5, 2026 13:00 — with
GitHub Actions
Inactive
lawrencecchen
temporarily deployed
to
artifacts
November 5, 2026 13:10 — with
GitHub Actions
Inactive
lawrencecchen
temporarily deployed
to
sentry-dsyms
November 5, 2026 13:10 — with
GitHub Actions
Inactive
lawrencecchen
temporarily deployed
to
artifacts
November 5, 2026 13:13 — with
GitHub Actions
Inactive
…p-ghostty-next-pin # Conflicts: # Packages/Shared/CmuxGhosttyKit/Package.swift # cmux-tui/dist/notices/package-notices.json # ghostty-next # scripts/cmux-next/notices/vt-link-graph.json
… reflow preview frame re-wraps off the terminal lock GhosttyNextKit and the ghostty-next gitlink move together from 383b27d73 to 850bb9849 on fork main. Release xcframework-850bb98497044f6632310c303a68974b6289af4b-apple-v6 (run 42047067774), zip sha256 f8b0c657...3006f (the release's SHA256SUMS, the GitHub asset digest and the manifest commit agree). No C API change. During a key resize or a divider drag, each frame's re-wrap reads a kept copy of the terminal with no terminal lock held; the live terminal is copied under the lock only when it changed. Before, every preview frame copied it under the lock (0.43-0.55 ms p50 at 200x60). The changed fork files are not in the libghostty-vt link graph, so vt-link-graph.json changes only its commit. docs/ghostty-fork.md: this branch's earlier release-line edit of the host-present section is reverted to feat's text.
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
lawrencecchen
had a problem deploying
to
ci-routing-agent
November 5, 2026 15:05 — with
GitHub Actions
Error
lawrencecchen
temporarily deployed
to
ci-routing-agent
November 5, 2026 15:05 — with
GitHub Actions
Inactive
Contributor
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Shipped in:
|
…p-ghostty-next-pin
lawrencecchen
temporarily deployed
to
ci-routing-agent
November 5, 2026 15:10 — with
GitHub Actions
Inactive
lawrencecchen
temporarily deployed
to
ci-routing-agent
November 5, 2026 16:07 — with
GitHub Actions
Inactive
lawrencecchen
temporarily deployed
to
artifacts
November 5, 2026 16:18 — with
GitHub Actions
Inactive
lawrencecchen
temporarily deployed
to
sentry-dsyms
November 5, 2026 16:18 — with
GitHub Actions
Inactive
lawrencecchen
temporarily deployed
to
artifacts
November 5, 2026 16:23 — with
GitHub Actions
Inactive
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
cmux-ad m18 (T-REWRAP). GhosttyNextKit and the ghostty-next gitlink move together from
383b27d73(fork main, the upstream sync) to850bb9849(fork main + fork PR #84):79d62f7c5). A reflow preview frame whose only change is the grid (each frame of a key resize or a divider drag) re-wraps a kept copy of the terminal with no terminal lock held. The live terminal is copied under the lock only when it changed (a dirty flag, a color epoch, its cursor or colors, a new live grid, or the history a new grid needs). Before, the preview's watch never reset its dirty state, so every preview frame copied the live terminal under the terminal lock (0.43-0.55 ms p50 at 200x60) and blocked the output parser and the main thread's lock users. Now 1 copy serves 800 frames of a drag.No C API change: the app keeps
ghostty_surface_set_sizeeach frame withghostty_surface_set_reflow_preview(true). No change in the present path.The release:
xcframework-850bb98497044f6632310c303a68974b6289af4b-apple-v6(run 42047067774), zip sha256f8b0c65707292cce8fa34fa195b529206a45b6f2b53b187c5b401339e233006f. The release's SHA256SUMS, the GitHub asset digest and the manifest commit agree. The changed fork files are not in the libghostty-vt link graph, sovt-link-graph.jsonchanges only its commit.This branch was first opened on the release line (
510ca45ff, fork #83); feat moved to fork main (#35478) during its checks, so it was re-pinned to the main port. The branch now differs from feat only in the 5 pin files.Testing
reflow preview:tests (6). Reds: run 42018811302 ("a frame whose only change is the grid copies nothing under the terminal lock", expected 1, found 7) and run 42024684069 (stale cursor, expected x 1, found 2). On main (Zig 0.17): tests + bench 42040022802 (84/84; 1 copy for 800 frames), PR build 42040024043 (224/224, lib-vt 481/481).79d62f7c5(Reduce terminal input latency via portal hosting + selected-only workspace mounting #83, after one BLOCK fixed), delta SHIP atf9048ee65(Release v0.49.0 #84).check_ghostty_vt_notices.py --check-link-graphandpackage_notices.py check-datapass;prepush-gate.pypasses.469d944007c: Mac DEV build26cfebb8ed2e47e8598139e8(aws-m4pro-4, tag t-rewrap-pin-v4); launch smoke PASS on macOS 14.8.7 and 15.7.7 (os-matrix stepd4c5cd6146f51695570c508c, 0 crashes, 0 hangs, 0 faults). Its split screenshot shows the left terminal's command line re-wrapped at the narrower pane.Observed / Not run
No capture: the change is the cost and the lock time of each resize frame; what a frame shows does not change.
Changelog
none