Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion docs/ghostty-fork.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ When we change the fork, update this document and the parent submodule SHA.

Fork main has advanced beyond the March 30, 2026 rebase onto upstream `main`
at `3509ccf78` (`v1.3.1-457-g3509ccf78`).
Current cmux pinned fork head: `3b684a085` (`tip-1717-g3b684a085`).
Current cmux pinned fork head: `a2f864d61` (`issue-2738-search-resize-race`).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

P1 Submodule pin may be on feature branch, not fork main

The previous pinned head was labeled tip-1717-g3b684a085 — a git describe output indicating a position on the fork's main. The new label issue-2738-search-resize-race does not follow that TAG-N-gHASH pattern and looks like a feature-branch name.

Per the CLAUDE.md submodule safety policy: "always push the submodule commit to its remote main branch BEFORE committing the updated pointer … Never commit on a detached HEAD or temporary branch — the commit will be orphaned and lost." If this commit is only on the issue-2738-search-resize-race branch and that branch is later deleted, the submodule SHA a2f864d61 could become unreachable for future git submodule update calls.

Please confirm git merge-base --is-ancestor a2f864d614b5318bb0d1476d12c18d787d6033bf manaflow/main passes, and update the pin label to the git describe form from manaflow/main if it does.


### 1) macOS display link restart on display changes

Expand Down Expand Up @@ -123,6 +123,17 @@ tend to conflict together during rebases.
Fork main now carries the section 8 APC handling fix plus later upstream merges;
the current cmux pin is the head listed above.

### 9) Search snapshot isolation during page reflow

- Commit: `a2f864d61` (terminal/search: snapshot pages before formatting)
- Files:
- `src/terminal/highlight.zig`
- `src/terminal/search/sliding_window.zig`
- Summary:
- Snapshots page contents before `SlidingWindow` runs `PageFormatter`, so background search never formats from live page storage that `PageList.resizeCols` can free or recycle.
- Caches page row counts alongside flattened search chunks so later highlight assembly no longer dereferences live page nodes after the source screen has mutated.
- Adds a regression test that destroys the source screen after taking search snapshots and verifies the retained search data still produces the expected cross-page match.

## Upstreamed fork changes

### cursor-click-to-move respects OSC 133 click-to-move
Expand Down Expand Up @@ -184,4 +195,9 @@ These files change frequently upstream; be careful when rebasing the fork:
`apcEnd()` response path so kitty graphics still reach `Terminal.kittyGraphics()` and reply via
`write_pty`.

- `src/terminal/search/sliding_window.zig`, `src/terminal/highlight.zig`
- Keep the retained-page search path copying from snapshots rather than live page storage, and
preserve the cached `rows` metadata on flattened chunks so reverse-search fixups never have to
dereference invalidated page nodes.

If you resolve a conflict, update this doc with what changed.
2 changes: 1 addition & 1 deletion ghostty
Loading