Skip to content

dogfood v2.2.12: port of #29775, the wrap edge break reads a compressed history row only when the pair was joined - #30015

Merged
lawrencecchen merged 1 commit into
cp/dogfood-v2-2-12-optfrom
cp/dogfood-v2-2-12-opt-e2-hc
Nov 1, 2026
Merged

lawrencecchen merged 1 commit into
cp/dogfood-v2-2-12-optfrom
cp/dogfood-v2-2-12-opt-e2-hc

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Testing

  • This change is a cost fix, not a visible fix. The fork's red test ("insertLines and deleteLines at the top row leave a compressed history page compressed") fails without the fix: fork run 41240560795. It passes in this release's own run 41260252846.
  • The lead asks for the E2 journey to be green on the port build. Results are in a comment below.

Observed / Not run

  • Observed: the fork runs above.
  • Not run yet: the port build and its journey rounds.

Changelog

none


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


Summary by cubic

Ports #29775 to the dogfood line. The wrap edge break now reads a compressed history row only when the pair was joined, so a scroll region scroll no longer restores a history page for nothing. This is a cost fix, not a visible behavior change; the fork's red test fails without it and passes with this pin.

Written for commit 89dd169. Summary will update on new commits.

View guided diff Turn on auto-fix

… when the pair was joined (port of #29775)

Cherry-pick of feat's squash 1e327b2 (#29775), with the pin resolved for
this line as in the #29609 port: fork release/cmux-ef6ce279-e2 at 7f8d846b2 =
this line's previous pin 3a82309b9 plus only fork PR #68 part 1 (041c60eb7
red test, c1191f577 fix, 7f8d846b2 CI filter), the same commits as feat's
8444cc1eb..84a225487. GhosttyNextKit
xcframework-7f8d846b24cf0f994feaebddfe6376f3ee38c595-apple-v6 (sha256
e5f7345e4bab90a3de2476b008d5ad507de32d2b3c629ce06da83d6400a5b2cc, release run
41260252846, whose patch unit tests ran the new Zig test).

(cherry picked from commit 1e327b2)
@lawrencecchen lawrencecchen added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 1, 2026

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4 issues found across 5 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="scripts/cmux-next/notices/vt-link-graph.json">

<violation number="1" location="scripts/cmux-next/notices/vt-link-graph.json:2">
P2: This edit only rewrites the `commit` provenance field. The rest of the graph still comes from a build of 3a82309, and the PR says no port build has run. Regenerate `vt-link-graph.json` for 7f8d846b2 with `vt_link_graph.py generate`, or confirm that the output is byte-identical apart from the commit.</violation>
</file>

<file name="docs/ghostty-fork.md">

<violation number="1" location="docs/ghostty-fork.md:37">
P2: This pin now includes fork PR #68 part 1, but the migration note still says taking only #66 makes the release branch obsolete. Update that note to include #68, or explicitly explain when its changes are no longer needed, so a future move to fork `main` does not drop the cost fix.</violation>

<violation number="2" location="docs/ghostty-fork.md:48">
P2: The conflict notes still require `breakWrapAbove` to run after the row moves, but this new bullet says the IL/DL path reads the top row's flag before the rows move. Add that ordering requirement to the conflict notes so a merge doesn't move the read after the scroll.</violation>
</file>

<file name="Packages/Shared/CmuxGhosttyKit/Package.swift">

<violation number="1" location="Packages/Shared/CmuxGhosttyKit/Package.swift:124">
P2: This pin update leaves the committed GhosttyKit notice artifacts for the old binary, so `ios_notices.py check-repo` and the source-archive notice checks fail. Regenerate the link sets, iOS acknowledgement pane, and required app link for this pin before landing.</violation>
</file>

Reply with feedback, questions, or to request a fix.

View guided diff | Turn on auto-fix | Re-trigger cubic

@@ -1,5 +1,5 @@
{
"commit": "3a82309b9309ce9a0dde48fa63e85869c7aa2657",
"commit": "7f8d846b24cf0f994feaebddfe6376f3ee38c595",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This edit only rewrites the commit provenance field. The rest of the graph still comes from a build of 3a82309, and the PR says no port build has run. Regenerate vt-link-graph.json for 7f8d846b2 with vt_link_graph.py generate, or confirm that the output is byte-identical apart from the commit.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At scripts/cmux-next/notices/vt-link-graph.json, line 2:

<comment>This edit only rewrites the `commit` provenance field. The rest of the graph still comes from a build of 3a82309, and the PR says no port build has run. Regenerate `vt-link-graph.json` for 7f8d846b2 with `vt_link_graph.py generate`, or confirm that the output is byte-identical apart from the commit.</comment>

<file context>
@@ -1,5 +1,5 @@
 {
-  "commit": "3a82309b9309ce9a0dde48fa63e85869c7aa2657",
+  "commit": "7f8d846b24cf0f994feaebddfe6376f3ee38c595",
   "dwarfdump": "Ubuntu LLVM version 18.1.3",
   "flags": [
</file context>

Comment thread docs/ghostty-fork.md
a linefeed or SU first resets it (`cursorResetWrap`, red `93b615013`, fix `934f29984`); printWrap's index keeps its
a linefeed or SU first resets it (`cursorResetWrap`, red `e47ad0619`, fix `601585067`); printWrap's index keeps its
wrap, which goes into the row the scroll makes. Left/right margin scrolls keep their old behavior.
- Scroll-path cost (red `bc393a54b`, fix `db6d27f78`): `breakWrapAbove` decides on the resident row first (its

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: The conflict notes still require breakWrapAbove to run after the row moves, but this new bullet says the IL/DL path reads the top row's flag before the rows move. Add that ordering requirement to the conflict notes so a merge doesn't move the read after the scroll.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At docs/ghostty-fork.md, line 48:

<comment>The conflict notes still require `breakWrapAbove` to run after the row moves, but this new bullet says the IL/DL path reads the top row's flag before the rows move. Add that ordering requirement to the conflict notes so a merge doesn't move the read after the scroll.</comment>

<file context>
@@ -33,17 +33,23 @@ submodule is initialized at the gitlink), `GHOSTTY-kit` (the gitlink is the Ghos
-  a linefeed or SU first resets it (`cursorResetWrap`, red `93b615013`, fix `934f29984`); printWrap's index keeps its
+  a linefeed or SU first resets it (`cursorResetWrap`, red `e47ad0619`, fix `601585067`); printWrap's index keeps its
   wrap, which goes into the row the scroll makes. Left/right margin scrolls keep their old behavior.
+- Scroll-path cost (red `bc393a54b`, fix `db6d27f78`): `breakWrapAbove` decides on the resident row first (its
+  `wrap_continuation`, or for IL/DL the top row's flag read before the rows move) and reads a row in a compressed
+  history page only when the pair was joined, so a region scroll never restores a history page for nothing.
</file context>

Comment thread docs/ghostty-fork.md
GhosttyNextKit `xcframework-3a82309b9309ce9a0dde48fa63e85869c7aa2657-apple-v6`. The commit IDs below are those on
`release/cmux-9ce9b7d0-e2` (feat's pin); the same changes have other IDs on this line's release branch.
- Fork release branch `release/cmux-ef6ce279-e2` (ghostty-next `7f8d846b2`): this dogfood line's pin `ef6ce279a` plus
only the commits of feat's `release/cmux-9ce9b7d0-e2` at `84a225487` (fork PRs #66 and #68 part 1 and the release

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This pin now includes fork PR #68 part 1, but the migration note still says taking only #66 makes the release branch obsolete. Update that note to include #68, or explicitly explain when its changes are no longer needed, so a future move to fork main does not drop the cost fix.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At docs/ghostty-fork.md, line 37:

<comment>This pin now includes fork PR #68 part 1, but the migration note still says taking only #66 makes the release branch obsolete. Update that note to include #68, or explicitly explain when its changes are no longer needed, so a future move to fork `main` does not drop the cost fix.</comment>

<file context>
@@ -33,17 +33,23 @@ submodule is initialized at the gitlink), `GHOSTTY-kit` (the gitlink is the Ghos
-  GhosttyNextKit `xcframework-3a82309b9309ce9a0dde48fa63e85869c7aa2657-apple-v6`. The commit IDs below are those on
-  `release/cmux-9ce9b7d0-e2` (feat's pin); the same changes have other IDs on this line's release branch.
+- Fork release branch `release/cmux-ef6ce279-e2` (ghostty-next `7f8d846b2`): this dogfood line's pin `ef6ce279a` plus
+  only the commits of feat's `release/cmux-9ce9b7d0-e2` at `84a225487` (fork PRs #66 and #68 part 1 and the release
+  workflow of #67). GhosttyNextKit `xcframework-7f8d846b24cf0f994feaebddfe6376f3ee38c595-apple-v6`. The commit IDs
+  below are those on `release/cmux-9ce9b7d0-e2` (feat's pin); the same changes have other IDs on this line's
</file context>

name: "GhosttyNextKit",
url: "https://github.com/manaflow-ai/ghostty-next/releases/download/xcframework-3a82309b9309ce9a0dde48fa63e85869c7aa2657-apple-v6/GhosttyNextKit.xcframework.zip",
checksum: "340e4beef43a759ae813817d6eac4eefac232cdb3fe178a389acb72e9a7e4eb5"
url: "https://github.com/manaflow-ai/ghostty-next/releases/download/xcframework-7f8d846b24cf0f994feaebddfe6376f3ee38c595-apple-v6/GhosttyNextKit.xcframework.zip",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This pin update leaves the committed GhosttyKit notice artifacts for the old binary, so ios_notices.py check-repo and the source-archive notice checks fail. Regenerate the link sets, iOS acknowledgement pane, and required app link for this pin before landing.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At Packages/Shared/CmuxGhosttyKit/Package.swift, line 124:

<comment>This pin update leaves the committed GhosttyKit notice artifacts for the old binary, so `ios_notices.py check-repo` and the source-archive notice checks fail. Regenerate the link sets, iOS acknowledgement pane, and required app link for this pin before landing.</comment>

<file context>
@@ -119,8 +121,8 @@ let package = Package(
             name: "GhosttyNextKit",
-            url: "https://github.com/manaflow-ai/ghostty-next/releases/download/xcframework-3a82309b9309ce9a0dde48fa63e85869c7aa2657-apple-v6/GhosttyNextKit.xcframework.zip",
-            checksum: "340e4beef43a759ae813817d6eac4eefac232cdb3fe178a389acb72e9a7e4eb5"
+            url: "https://github.com/manaflow-ai/ghostty-next/releases/download/xcframework-7f8d846b24cf0f994feaebddfe6376f3ee38c595-apple-v6/GhosttyNextKit.xcframework.zip",
+            checksum: "e5f7345e4bab90a3de2476b008d5ad507de32d2b3c629ce06da83d6400a5b2cc"
         ),
</file context>

@lawrencecchen

Copy link
Copy Markdown
Contributor Author

Review (Opus 5.5 review subagent): SHIP at 89dd169

Independent review subagent (read-only). 3a82309b9..7f8d846b2 is 3 commits with the same patch-ids as feat's 8444cc1eb..84a225487. git diff 84a225487 7f8d846b2 is only this line's src/Surface.zig (ef6ce279a). The gitlink, URL and checksum match the release's SHA256SUMS. license_tree keeps this line's ef6ce279a text. The same 5 files change as in 1e327b2, and only the pin-specific values differ. Cosmetic: one comment line is not reflowed, and the doc says twice that the IDs are feat's.

@lawrencecchen
lawrencecchen merged commit 56298f1 into cp/dogfood-v2-2-12-opt Nov 1, 2026
49 of 62 checks passed
@lawrencecchen
lawrencecchen deleted the cp/dogfood-v2-2-12-opt-e2-hc branch November 1, 2026 03:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant