Skip to content

ghostty-next: a clear of rows (ED, DECALN) breaks the soft wrap across the cleared rows' edges - #30012

Merged
lawrencecchen merged 2 commits into
feat-cmux-nextfrom
cp/ghostty-clear-rows-wrap-edges-2
Nov 1, 2026
Merged

lawrencecchen merged 2 commits into
feat-cmux-nextfrom
cp/ghostty-clear-rows-wrap-edges-2

Conversation

@lawrencecchen

Copy link
Copy Markdown
Contributor

Summary

Testing

Red first. The focused command is cmux-ci run --class light --script scripts/ci/cmux-tui-rust-check.sh --arg test --arg breaks_the_wrap_from_scrollback --ref SHA.

  • Red commit 62c4048 (old pin 84a225487): both tests in vt_clear_rows_wrap_edges.rs fail. Fleet step 0f6924a3ee8f463e83dca258 ran on the same commit on its first branch.
  • Head (pin 34e73ba8b): pass. Fleet step 654683928964e92ce4f3cc76: 26 of 26 vt_ tests pass.
  • Fork: red run 41251885912 (3 of 3 clearRows Zig tests fail without the fix). Green: fix cmux crashing issue #68 run 41251888717, broad run 41254020927 (2297 of 2297 libghostty-vt tests) and release run 41255186701, which published this kit.

Observed / Not run

  • Observed: the runs above. The kit's SHA256SUMS lists 32cb09bbc69510a099df9206a460cc8e7f2aba41a1a5489de98f185da07154a4, which is the checksum in Package.swift.
  • Not run: an app journey for ED or DECALN. The Rust tests check reflow after a resize on the same libghostty-vt.

Changelog

  • Fixed: after the screen is cleared, text in the scrollback is no longer joined with new text when the window is resized.

… into the cleared screen (red; E2 class)

Review of #29775: clearRows resets the cleared rows, but the scrollback row
above the screen kept wrap=true. After ED 2 (or DECALN) and a wider resize,
reflow joined that row and the new text on row 0 into one line
("abcdeXY"). Red at pin 84a225487 (fleet step e3b896d45e34435553a6e67a on a
probe branch with the same tests).
…s the cleared rows' edges

Pins GhosttyNextKit xcframework-34e73ba8ba7cb8da0115caeb780065e3a12f2f62-apple-v6
(checksum 32cb09bb... from its SHA256SUMS) and moves the gitlink and the notices
with it. ghostty-next 84a225487..34e73ba8b on release/cmux-9ce9b7d0-e2 is the
second part of fork PR #68 only: clearRows reset the cleared rows, but the row
above the range kept wrap=true (a scrollback row for ED 2 and DECALN) and the
row below kept wrap_continuation=true (the cursor row after ED 1). It now
breaks both edges after a full clear; a protected clear keeps its row flags.

Red: vt_ed2_breaks_the_wrap_from_scrollback_into_the_cleared_screen and
vt_decaln_breaks_the_wrap_from_scrollback_into_the_filled_screen fail on
1602522 (pin 84a225487: "abcdeXY" after a resize). Fork red: run
41251885912 (3 of 3 clearRows Zig tests fail without the fix). Fork green:
PR #68 run 41251888717, broad run 41254020927 (2297 of 2297 libghostty-vt
tests) and the release run 41255186701, which published this kit.
@lawrencecchen lawrencecchen added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 1, 2026
@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review efcaaf4: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr30012 -f ref=cp/ghostty-clear-rows-wrap-edges-2 -f platform=macos -f backend_mode=local

Not verified: macOS jobs did not run: compile and app tests were skipped on efcaaf4ca8; ci-status is green without them.

CI passes on efcaaf4ca8 (run 41266146966 attempt 1).
macOS jobs did not run: compile and app tests were skipped: Fast static checks skipped (the macos job needs both to succeed). Re-run CI once they pass, before merging.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

Shipped in:

@lawrencecchen

Copy link
Copy Markdown
Contributor Author

Review (Opus 5.5 review subagent): SHIP at efcaaf4

Independent review subagent (read-only). It checked the clearRows edge breaks for every caller (ED 2 including the alt screen and after scrollClear, ED 0, ED 1, DECALN), the defer order and pin validity, the cases where bl is null or the last row and the protected clear, the cost (a compressed history page is restored only when row 0 truly continued it), the Zig and Rust test traces, and the URL and checksum (sha256sum -c of the release assets). It also checked that every doc ID is on release/cmux-9ce9b7d0-e2.
Minor, not blocking: no test covers ED 0 directly (eraseLine already resets that edge), but the Rust file's comment names ED 0.

Fleet evidence on this PR's exact commits:

  • Red: step 62d8b159a972dfa5608ae475 on 62c4048. Both vt_clear_rows_wrap_edges tests fail.
  • Green: step e1c74493eae7f9d131f10d0d on efcaaf4. 34 of 34 vt_ tests pass.

@lawrencecchen lawrencecchen added the ready-to-land Reviewed at this head; next-autoland merges it into feat-cmux-next when its only reds are base reds label Nov 1, 2026
@lawrencecchen
lawrencecchen merged commit 41744d2 into feat-cmux-next Nov 1, 2026
163 of 178 checks passed
@lawrencecchen
lawrencecchen deleted the cp/ghostty-clear-rows-wrap-edges-2 branch November 1, 2026 03:14
@blacksmith-sh

blacksmith-sh Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Found 9 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp0ydl6b3_/summary-fail.json (live):/summary-fail.json (live): View Logs
/tmp/tmp5nh_2hst/summary-missing.json (live):/summary-missing.json (live): View Logs
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows/
[new_workspaces] debug.new_workspace timed 0 of 50 new workspace rows
View Logs
[new_workspaces] the window draws no frames/[new_workspaces] the window draws no frames View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
convention violations found (ERROR lines above)./
convention violations found (ERROR lines above).
View Logs
test_every_part_of_bun_run_check_runs_in_the_warn_branch (main.WebviewsWarnSplitCov
ersCheck.test_every_part_of_bun_run_check_runs_in_the_warn_branch)/
test_every_part_of_bun_run_check_runs_in_the_warn_branch (main.WebviewsWarnSplitCov
ersCheck.test_every_part_of_bun_run_check_runs_in_the_warn_branch)
View Logs
test_no_runner_picker_returns_a_hosted_mac (main.NoHostedMacInNightlies.test_no_run
ner_picker_returns_a_hosted_mac)/
test_no_runner_picker_returns_a_hosted_mac (main.NoHostedMacInNightlies.test_no_run
ner_picker_returns_a_hosted_mac)
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

lawrencecchen added a commit that referenced this pull request Nov 1, 2026
…aks the soft wrap across the cleared rows' edges (port of #30012)

Port 8bcebcc of feat PR #30012 (squash 41744d2). The pin is resolved
for this line: ghostty-next release/cmux-ef6ce279-e2 at d94ab9a53 (this line's
previous pin 7f8d846b2 plus only fork PR #68 part 2, the same commits as
feat's 84a225487..34e73ba8b), GhosttyNextKit
xcframework-d94ab9a530c4104bec04bced642fafe3ce100235-apple-v6. PR #30118.
Port review: Review (Opus 5.5 review subagent): SHIP at 8bcebcc.
Red on this line: step a3bae98bf88bf0ee72f38f83 (both vt_clear_rows_wrap_edges
tests fail on this line's pin 7f8d846b2). Green: step 047498fb482df20f1a097868
(45 of 45 vt_ tests on the port head). Journey r3-e2-reattach (kit
c370e63) passed 3 of 3 on port build 87d7a64e572cc9b809efd7e9 (cmux19
04:33Z, 04:35Z, cmux24 04:38Z).

This branch was previously deployed

3 inactive deployments
artifacts — efcaaf4c Deployed Nov 1, 2026 by lawrencecchen via add the Windows daemon to the tree #93169
sentry-dsyms — efcaaf4c Deployed Nov 1, 2026 by lawrencecchen via upload cmux-tui dSYMs to Sentry #93169
ci-routing-agent — efcaaf4c Deployed Nov 1, 2026 by lawrencecchen via namespace autofix #10599
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-land Reviewed at this head; next-autoland merges it into feat-cmux-next when its only reds are base reds risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant