Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
9 changes: 5 additions & 4 deletions Packages/Shared/CmuxGhosttyKit/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,12 @@ import PackageDescription
// draws to at most one per display refresh (it drew one per output batch,
// 190-270 frames a second on a 120 Hz iPhone).
//
// Since 9ce9b7d08..8444cc1eb (release/cmux-9ce9b7d0-e2: the pin plus only
// Since 9ce9b7d08..84a225487 (release/cmux-9ce9b7d0-e2: the pin plus only
// fork PR #66 and the release workflow of #67): a scroll region scroll breaks
// the soft wrap across its edges, and the unwrapping formatter carries blank
// cells only across a joined wrap (VT fuzz finding E2: the attach replay drew
// the row under a DECSTBM region 43 or 163 columns to the right).
// the row under a DECSTBM region 43 or 163 columns to the right). The edge
// break reads a compressed history row only when the pair was joined.
//
// A pin change is one reviewed commit that changes the URL and the checksum
// together (the zip's sha256, also in the release's SHA256SUMS). Never pin
Expand All @@ -119,8 +120,8 @@ let package = Package(
),
.binaryTarget(
name: "GhosttyNextKit",
url: "https://github.com/manaflow-ai/ghostty-next/releases/download/xcframework-8444cc1eb8436b090fdccbdb2369e9c3816f9f26-apple-v6/GhosttyNextKit.xcframework.zip",
checksum: "eee858c7830376f0e99e7e612de60b9c731d11a681cb1c27eb1f9174d4c8516f"
url: "https://github.com/manaflow-ai/ghostty-next/releases/download/xcframework-84a225487372c53851b186864c867e469e7596d2-apple-v6/GhosttyNextKit.xcframework.zip",
checksum: "66e883f7130352862fd3dd4b46cf0a6d22d50750bf633f3589831bf9b2f4f99f"
),
]
)
4 changes: 2 additions & 2 deletions cmux-tui/dist/notices/package-notices.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
},
"libghostty_vt": {
"source": "ghostty-next",
"commit": "8444cc1eb8436b090fdccbdb2369e9c3816f9f26",
"license_tree": "collect-ghostty-licenses.py tree of the cmux-next source archive dry run 37315600598 (3320bd06e; 2199dc93e changes only src/renderer/Thread.zig 3339f2ada only src/terminal (OSC 7501), CI files and NEXT.md, and 673a6369c only src/build (libSystem override), src/terminal and src/terminfo (Pst), c41410256 only src/, include/ghostty.h and CI files (link filter), 89dc50175 only src/config/c_get.zig (TerminalColor getter), 03ddb2869 only src/renderer and NEXT.md (glass minimum contrast), 4792f0307 only src/renderer and NEXT.md (minimum contrast at opacity 0), 48d353b8c only src/renderer, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (host-sized target), c5926d664 only src/renderer, src/Surface.zig, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (reflow preview), e4831af81 only src/renderer, src/termio/Termio.zig, src/Surface.zig, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (GPU theme color blend), e6a27a1fb the same paths (no cell rebuild for a color-only change), a19c884fa only pkg/macos/iosurface/iosurface.zig (deinit keeps pixels other owners hold; no license file or dependency change), and 36ce68b13 and ced99dcde only src/renderer, src/termio/Termio.zig, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (one rebuild per font change), and e923d79f1 only src/Surface.zig, src/termio and NEXT.md (CSI 996 runtime color scheme), and 839e702fe through a04c57e81 only src/terminal/formatter.zig, src/termio/Termio.zig, src/Surface.zig and NEXT.md (DECSC in VT output, viewport across snapshot restores), and 43ffe4171 only src/terminal and the CI workflow (narrowed multi-line prompt redraw), and 493a8871b and 5555f4220 only src/terminal/c, include/ghostty/vt, src/shell-integration, the CI workflow and NEXT.md (prompt redraw option and marks), and 72578da21 only src/shell-integration/bash (no bash forks) and a85741ad3 through 7d5fa1573 only src/renderer, src/termio/Termio.zig, src/apprt/embedded.zig, include/ghostty.h, the CI workflow and NEXT.md (host-sized resize frames, mirror pixel-only resize, idle wakes), and dadbd13db through 1f98b11be only src/renderer, src/termio/Termio.zig, src/Surface.zig, src/apprt/embedded.zig, include/ghostty.h, the CI workflow and NEXT.md (host-size present API, review fixes, reveal present), and 856edfe through 723c4ab only src/renderer, src/termio, src/terminal (kitty), src/Surface.zig, src/apprt, include/ghostty.h, include/ghostty/vt and NEXT.md (wheel scroll off the main-thread lock, fit grid, kitty ports), and 0cb7e1e04 through 9ce9b7d08 only src/renderer, src/apprt/embedded.zig, include/ghostty.h, src/shell-integration/bash and NEXT.md (host-size frame present, bash history without a fork, iOS display link), and 19ab1cbcb through 8444cc1eb only src/terminal (Screen.zig, Terminal.zig, formatter.zig), the CI workflow and next/release_plan.py (scroll region wrap edges, formatter blank carry, release/* publish), so LICENSE, build.zig.zon and vendor/ are identical and pkg/ has no license change)",
"commit": "84a225487372c53851b186864c867e469e7596d2",
"license_tree": "collect-ghostty-licenses.py tree of the cmux-next source archive dry run 37315600598 (3320bd06e; 2199dc93e changes only src/renderer/Thread.zig 3339f2ada only src/terminal (OSC 7501), CI files and NEXT.md, and 673a6369c only src/build (libSystem override), src/terminal and src/terminfo (Pst), c41410256 only src/, include/ghostty.h and CI files (link filter), 89dc50175 only src/config/c_get.zig (TerminalColor getter), 03ddb2869 only src/renderer and NEXT.md (glass minimum contrast), 4792f0307 only src/renderer and NEXT.md (minimum contrast at opacity 0), 48d353b8c only src/renderer, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (host-sized target), c5926d664 only src/renderer, src/Surface.zig, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (reflow preview), e4831af81 only src/renderer, src/termio/Termio.zig, src/Surface.zig, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (GPU theme color blend), e6a27a1fb the same paths (no cell rebuild for a color-only change), a19c884fa only pkg/macos/iosurface/iosurface.zig (deinit keeps pixels other owners hold; no license file or dependency change), and 36ce68b13 and ced99dcde only src/renderer, src/termio/Termio.zig, src/apprt/embedded.zig, include/ghostty.h and NEXT.md (one rebuild per font change), and e923d79f1 only src/Surface.zig, src/termio and NEXT.md (CSI 996 runtime color scheme), and 839e702fe through a04c57e81 only src/terminal/formatter.zig, src/termio/Termio.zig, src/Surface.zig and NEXT.md (DECSC in VT output, viewport across snapshot restores), and 43ffe4171 only src/terminal and the CI workflow (narrowed multi-line prompt redraw), and 493a8871b and 5555f4220 only src/terminal/c, include/ghostty/vt, src/shell-integration, the CI workflow and NEXT.md (prompt redraw option and marks), and 72578da21 only src/shell-integration/bash (no bash forks) and a85741ad3 through 7d5fa1573 only src/renderer, src/termio/Termio.zig, src/apprt/embedded.zig, include/ghostty.h, the CI workflow and NEXT.md (host-sized resize frames, mirror pixel-only resize, idle wakes), and dadbd13db through 1f98b11be only src/renderer, src/termio/Termio.zig, src/Surface.zig, src/apprt/embedded.zig, include/ghostty.h, the CI workflow and NEXT.md (host-size present API, review fixes, reveal present), and 856edfe through 723c4ab only src/renderer, src/termio, src/terminal (kitty), src/Surface.zig, src/apprt, include/ghostty.h, include/ghostty/vt and NEXT.md (wheel scroll off the main-thread lock, fit grid, kitty ports), and 0cb7e1e04 through 9ce9b7d08 only src/renderer, src/apprt/embedded.zig, include/ghostty.h, src/shell-integration/bash and NEXT.md (host-size frame present, bash history without a fork, iOS display link), and 19ab1cbcb through 84a225487 only src/terminal (Screen.zig, Terminal.zig, formatter.zig), the CI workflow and next/release_plan.py (scroll region wrap edges, formatter blank carry, release/* publish), so LICENSE, build.zig.zon and vendor/ are identical and pkg/ has no license change)",
"owners": {
"ghostty-next": {
"name": "Ghostty",
Expand Down
13 changes: 9 additions & 4 deletions docs/ghostty-fork.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,21 @@ When we change the fork, update this document and the parent submodule SHA.

### A scroll region scroll breaks the soft wrap across its edges; the formatter carries blanks only across a joined wrap (ghostty-next)

- Fork release branch `release/cmux-9ce9b7d0-e2` (ghostty-next `8444cc1eb`): the pin `9ce9b7d08` plus only fork PR #66
(`fix-formatter-blank-carry`) and the release workflow change of fork PR #67. GhosttyNextKit
`xcframework-8444cc1eb8436b090fdccbdb2369e9c3816f9f26-apple-v6`.
- Fork release branch `release/cmux-9ce9b7d0-e2` (ghostty-next `84a225487`): the pin `9ce9b7d08` plus only fork PRs #66
(`fix-formatter-blank-carry`) and #68 (`fix-wrap-edge-history-cost`) and the release workflow change of fork PR #67. GhosttyNextKit
`xcframework-84a225487372c53851b186864c867e469e7596d2-apple-v6`.
- Root fix (`771194607` red Zig tests, `3c717e511` fix): `cursorScrollRegionUp` (fast and slow paths),
`cursorScrollAbove` with a bottom margin, `insertLines` and `deleteLines` with a full-width region move the rows
inside the region and keep the rows outside it. The row above the region kept `wrap` and the row below it kept
`wrap_continuation` while their neighbour inside was replaced. `Screen.breakWrapAbove` now clears both flags of the
pair (and a spacer head) at each edge after the scroll. At a bottom margin the cursor row moves up with its `wrap`:
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.
- Commit IDs in this section are those on `release/cmux-9ce9b7d0-e2`; the same changes on the fork PR branches
have other IDs.
- Defense (`19ab1cbcb` red test, `406763ee6` fix): with `unwrap`, `PageFormatter` carried a row's trailing blank
cells into a `wrap_continuation` row even after it had emitted a line break, so a stale flag moved that row right.
Blank cells now reset when a line break goes out before the row (`broke_before`).
Expand Down
2 changes: 1 addition & 1 deletion scripts/cmux-next/notices/vt-link-graph.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"commit": "8444cc1eb8436b090fdccbdb2369e9c3816f9f26",
"commit": "84a225487372c53851b186864c867e469e7596d2",
"dwarfdump": "Ubuntu LLVM version 18.1.3",
"flags": [
"-Demit-lib-vt=true",
Expand Down
Loading