Update ghostty submodule to latest upstream (112 commits past v1.3.1)#2704
Update ghostty submodule to latest upstream (112 commits past v1.3.1)#2704lawrencecchen merged 11 commits intomainfrom
Conversation
Merges ghostty-org/ghostty main into manaflow-ai/ghostty. See manaflow-ai/ghostty#29 for details.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughUpdated the Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Greptile SummaryThis PR advances the
Confidence Score: 3/5Not safe to merge: three cmux-specific patches (OSC 99, color-scheme mode 2031, theme-picker hooks) are acknowledged missing and represent current functional regressions. Score reflects two P1 findings: missing OSC 99 and color-scheme mode 2031 patches break user-facing features that cmux explicitly depends on. The selection C API re-application is correct, but the incomplete patch set means this submodule bump ships known regressions. The fork doc is also stale. Once the three missing patches are re-applied and the doc updated, this should be safe to merge. ghostty submodule (missing patches); docs/ghostty-fork.md (stale, must be updated)
|
| Filename | Overview |
|---|---|
| ghostty | Submodule pointer advanced from ae3cc5d2 to fec0e6bc (112 upstream commits); selection C API re-added but OSC 99, mode 2031 color-scheme, and theme-picker patches are missing. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[ghostty upstream main\nfec0e6bc\n112 commits past v1.3.1] -->|merged into| B[manaflow-ai/ghostty fork]
B --> C{cmux patches\nre-applied?}
C -->|✅ Re-applied| D[Selection C API\nselectCursorCell / clearSelection]
C -->|✅ Present| E[macOS display link restart\nmacOS resize stale-frame\nmacos-background-from-layer]
C -->|❌ Missing| F[OSC 99 kitty notifications]
C -->|❌ Missing| G[Color-scheme mode 2031]
C -->|❌ Missing| H[Theme picker helper hooks]
F --> I[Kitty desktop notifications broken]
G --> J[Color-scheme sync broken after reload]
H --> K[Live theme preview and cli-helper broken]
Reviews (1): Last reviewed commit: "Update ghostty submodule to upstream mai..." | Re-trigger Greptile
| @@ -1 +1 @@ | |||
| Subproject commit ae3cc5d298d6a913297fc4dc7cd8b08283e1fa01 | |||
| Subproject commit fec0e6bc039887bc9bbb2c7817ec339e4fc49bad | |||
There was a problem hiding this comment.
Three cmux patches are absent from the new fork head
The PR description acknowledges these are missing, but they represent current functional regressions that ship with this pointer update:
- OSC 99 (kitty notifications) —
src/terminal/osc.zig/osc/parsers/kitty_notification.zigare not re-patched. Any app relying on kitty-protocol desktop notifications via the terminal will silently receive no events. - Color-scheme mode 2031 reporting —
src/Surface.zig/src/termio/stream_handler.zigpatches are gone.docs/ghostty-fork.mdexplicitly states cmux relies on the initial DSR 997 report for "immediate color-scheme awareness"; without it, color-scheme sync is broken after config reloads. - Theme-picker helper hooks —
build.zig/src/cli/list_themes.zig/src/main_ghostty.zigpatches are absent. Live theme preview and thecli-helperbuild step will not function.
These patches should be re-applied before merging, or the PR should be scoped to carry a follow-up issue that explicitly tracks each missing patch so they are not silently forgotten.
| @@ -1 +1 @@ | |||
| Subproject commit ae3cc5d298d6a913297fc4dc7cd8b08283e1fa01 | |||
| Subproject commit fec0e6bc039887bc9bbb2c7817ec339e4fc49bad | |||
There was a problem hiding this comment.
docs/ghostty-fork.md not updated for new submodule head
The fork update checklist in docs/ghostty-fork.md requires updating the doc with the new change summary and conflict notes on every submodule bump. The file still lists the old pinned head (ae3cc5d29) and includes the three now-missing patches as "Current fork changes," which will mislead future rebases. The doc should be updated to reflect the new head fec0e6bc, remove or mark the absent patches, and record any new conflict notes for the 112 upstream commits.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9692022c6b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -1 +1 @@ | |||
| Subproject commit ae3cc5d298d6a913297fc4dc7cd8b08283e1fa01 | |||
| Subproject commit fec0e6bc039887bc9bbb2c7817ec339e4fc49bad | |||
There was a problem hiding this comment.
Add checksum for new ghostty SHA before bumping submodule
Updating ghostty to fec0e6bc... without adding a matching entry in scripts/ghosttykit-checksums.txt will break CI/release jobs on the first cache miss: workflows such as .github/workflows/ci.yml run ./scripts/download-prebuilt-ghosttykit.sh, and that script hard-fails at lines 45-47 when the pinned SHA is missing. Because the cache key includes the ghostty gitlink, this commit guarantees a cold-key path at least once, so the pipeline fails until the checksum is added.
Useful? React with 👍 / 👎.
| @@ -1 +1 @@ | |||
| Subproject commit ae3cc5d298d6a913297fc4dc7cd8b08283e1fa01 | |||
| Subproject commit fec0e6bc039887bc9bbb2c7817ec339e4fc49bad | |||
There was a problem hiding this comment.
Reapply required cmux fork patches before updating ghostty
This submodule bump is explicitly noted as dropping cmux-specific Ghostty patches (OSC 99 parser, mode 2031 color-scheme reporting, theme picker hooks), but the parent repo does not include follow-up changes to restore those behaviors. docs/ghostty-fork.md describes these patches as relied-on runtime behavior (including immediate color-scheme awareness), so pinning to this SHA introduces functional regressions in notification/theme flows until those patches are reintroduced.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@ghostty`:
- Line 1: Push the submodule commit fec0e6bc039887bc9bbb2c7817ec339e4fc49bad to
the manaflow-ai/ghostty main branch, then update the ghostty fork documentation
entry that lists the "Current cmux pinned fork head" to this new hash and add a
concise summary of the 112-commit update plus any merge/conflict notes and
notable changes so the parent pointer update is documented before merging.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
| @@ -1 +1 @@ | |||
| Subproject commit ae3cc5d298d6a913297fc4dc7cd8b08283e1fa01 | |||
| Subproject commit fec0e6bc039887bc9bbb2c7817ec339e4fc49bad | |||
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Verify the new ghostty submodule commit is pushed to manaflow-ai/ghostty main branch
cd ghostty || { echo "Failed to enter ghostty submodule directory"; exit 1; }
# Check if the new commit exists and is an ancestor of origin/main
if git merge-base --is-ancestor fec0e6bc039887bc9bbb2c7817ec339e4fc49bad origin/main 2>/dev/null; then
echo "✓ Commit fec0e6bc039887bc9bbb2c7817ec339e4fc49bad is on origin/main"
exit 0
else
echo "✗ Commit fec0e6bc039887bc9bbb2c7817ec339e4fc49bad is NOT on origin/main"
echo "Please push the submodule commit to manaflow-ai/ghostty main before merging this PR"
exit 1
fiRepository: manaflow-ai/cmux
Length of output: 215
🏁 Script executed:
# Check if docs/ghostty-fork.md exists and examine its contents
if [ -f "docs/ghostty-fork.md" ]; then
echo "=== docs/ghostty-fork.md EXISTS ==="
cat docs/ghostty-fork.md
else
echo "✗ docs/ghostty-fork.md DOES NOT EXIST"
fiRepository: manaflow-ai/cmux
Length of output: 8060
🏁 Script executed:
# Examine PR description or commit messages for status of lost patches
# Look for any recent commits or branch information about patch re-application
git log -n 20 --oneline --all -- docs/ghostty-fork.md 2>/dev/null || echo "No commits found for docs/ghostty-fork.md"Repository: manaflow-ai/cmux
Length of output: 1178
🏁 Script executed:
# Check if there are any pending branches or work related to patching
cd ghostty && git log -n 10 --oneline 2>/dev/null | head -20Repository: manaflow-ai/cmux
Length of output: 135
Push the submodule commit to origin/main and update the documentation before merging.
The new commit fec0e6bc039887bc9bbb2c7817ec339e4fc49bad is not currently on the manaflow-ai/ghostty fork's main branch. This blocks the merge. Per the project guidelines and the documented fork checklist in docs/ghostty-fork.md, submodule commits must be pushed to their remote main branch before updating the parent pointer.
Additionally, docs/ghostty-fork.md still lists the old pinned fork head (ae3cc5d29) and has not been updated with the new commit and its associated changes. The documented checklist requires updating this file with change summaries and conflict notes before committing the submodule pointer.
Required before merge:
- Push commit
fec0e6bc039887bc9bbb2c7817ec339e4fc49badtomanaflow-ai/ghosttymain branch - Update
docs/ghostty-fork.md: change "Current cmux pinned fork head" to the new commit hash and document what changed in this 112-commit update
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@ghostty` at line 1, Push the submodule commit
fec0e6bc039887bc9bbb2c7817ec339e4fc49bad to the manaflow-ai/ghostty main branch,
then update the ghostty fork documentation entry that lists the "Current cmux
pinned fork head" to this new hash and add a concise summary of the 112-commit
update plus any merge/conflict notes and notable changes so the parent pointer
update is documented before merging.
There was a problem hiding this comment.
3 issues found across 1 file
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="ghostty">
<violation number="1" location="ghostty:1">
P1: This submodule bump drops three cmux-specific patches that provide relied-upon runtime behavior:
- **OSC 99 (kitty notifications)** — desktop notification events will silently stop working.
- **Mode 2031 color-scheme reporting** — the initial DSR 997 report for immediate color-scheme awareness is gone; color-scheme sync will break after config reloads.
- **Theme-picker helper hooks** — live theme preview and the `cli-helper` build step will not function.
These patches should be re-applied before merging, or a follow-up issue should be filed and linked here to explicitly track each missing patch so they are not silently forgotten.</violation>
<violation number="2" location="ghostty:1">
P1: The new submodule commit `fec0e6bc` is not currently on the `manaflow-ai/ghostty` fork's `main` branch. Anyone cloning or doing a fresh `git submodule update --init` will fail to resolve this commit. Per the fork checklist in `docs/ghostty-fork.md`, the submodule commit must be pushed to the remote before updating the parent pointer. Additionally, `docs/ghostty-fork.md` should be updated to reflect the new pinned head and document the 112-commit update.</violation>
<violation number="3" location="ghostty:1">
P1: The submodule pointer is updated to `fec0e6bc` but `scripts/ghosttykit-checksums.txt` does not contain a matching entry for this SHA. The `download-prebuilt-ghosttykit.sh` script will hard-fail on the first cache miss because the checksum lookup for the new commit will find no match. Add the checksum entry for the new SHA before merging.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
| @@ -1 +1 @@ | |||
| Subproject commit ae3cc5d298d6a913297fc4dc7cd8b08283e1fa01 | |||
| Subproject commit fec0e6bc039887bc9bbb2c7817ec339e4fc49bad | |||
There was a problem hiding this comment.
P1: The new submodule commit fec0e6bc is not currently on the manaflow-ai/ghostty fork's main branch. Anyone cloning or doing a fresh git submodule update --init will fail to resolve this commit. Per the fork checklist in docs/ghostty-fork.md, the submodule commit must be pushed to the remote before updating the parent pointer. Additionally, docs/ghostty-fork.md should be updated to reflect the new pinned head and document the 112-commit update.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At ghostty, line 1:
<comment>The new submodule commit `fec0e6bc` is not currently on the `manaflow-ai/ghostty` fork's `main` branch. Anyone cloning or doing a fresh `git submodule update --init` will fail to resolve this commit. Per the fork checklist in `docs/ghostty-fork.md`, the submodule commit must be pushed to the remote before updating the parent pointer. Additionally, `docs/ghostty-fork.md` should be updated to reflect the new pinned head and document the 112-commit update.</comment>
<file context>
@@ -1 +1 @@
-Subproject commit ae3cc5d298d6a913297fc4dc7cd8b08283e1fa01
+Subproject commit fec0e6bc039887bc9bbb2c7817ec339e4fc49bad
</file context>
| @@ -1 +1 @@ | |||
| Subproject commit ae3cc5d298d6a913297fc4dc7cd8b08283e1fa01 | |||
| Subproject commit fec0e6bc039887bc9bbb2c7817ec339e4fc49bad | |||
There was a problem hiding this comment.
P1: The submodule pointer is updated to fec0e6bc but scripts/ghosttykit-checksums.txt does not contain a matching entry for this SHA. The download-prebuilt-ghosttykit.sh script will hard-fail on the first cache miss because the checksum lookup for the new commit will find no match. Add the checksum entry for the new SHA before merging.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At ghostty, line 1:
<comment>The submodule pointer is updated to `fec0e6bc` but `scripts/ghosttykit-checksums.txt` does not contain a matching entry for this SHA. The `download-prebuilt-ghosttykit.sh` script will hard-fail on the first cache miss because the checksum lookup for the new commit will find no match. Add the checksum entry for the new SHA before merging.</comment>
<file context>
@@ -1 +1 @@
-Subproject commit ae3cc5d298d6a913297fc4dc7cd8b08283e1fa01
+Subproject commit fec0e6bc039887bc9bbb2c7817ec339e4fc49bad
</file context>
Points to cc6f4c287 which includes 112 upstream commits past v1.3.1 plus cmux selectCursorCell/clearSelection APIs.
Fixes CI panic: "tagged releases must be in vX.Y.Z format matching build.zig" caused by xcframework-* tags created by build-ghosttykit CI job.
Summary
selectCursorCellandclearSelectionAPIs against new upstream Selection APINotable upstream changes
Test plan
Summary by cubic
Updates the
ghosttysubmodule to upstreamorigin/mainwith all cmux patches restored. Adds the missingGhosttyKitchecksum for the latest upstream archive.Bug Fixes
xcframework-*tag format matchingbuild.zig’s vX.Y.Z requirement.Dependencies
ghosttyto upstreamorigin/main, including the CLI helper step and cmuxselectCursorCell/clearSelectionAPIs.GhosttyKitchecksums for recent upstream archives, including the latest.lib-vt, universal xcframework and CMake support, 64-bit surface IDs, macOS fixes, and aghostty_surface_free_textparameter fix.Written for commit 1a05555. Summary will update on new commits.
Summary by CodeRabbit