Update Ghostty upstream - #3216
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThis PR updates the Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 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 bumps the Confidence Score: 4/5Safe to merge with one minor policy deviation worth confirming. Only a P2 finding: the submodule commit lives on a topic branch rather than fork main as required by CLAUDE.md's submodule safety rule. The release tag mitigates the orphan risk, but the policy check is still technically unmet. No logic, security, or data-integrity issues were found. ghostty (submodule pointer) and docs/ghostty-fork.md — confirm that d3117e0 is reachable from manaflow/main or that the release tag is treated as the permanent anchor per team convention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[upstream ghostty main\n659019666] -->|merged into| B[manaflow/ghostty\ncmux-upstream-20260428\nd3117e03]
C[previous cmux pin\n465a9a621] -->|base of merge| B
B -->|submodule pointer update| D[cmux parent repo\nPR #3216]
B -->|prebuilt release tag| E[xcframework-d3117e03\nGhosttyKit archive]
E -->|checksum pinned| F[scripts/ghosttykit-checksums.txt]
Reviews (1): Last reviewed commit: "Update Ghostty upstream" | Re-trigger Greptile |
|
|
||
| ## Current fork changes | ||
|
|
||
| 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`). | ||
| The fork was refreshed from upstream `main` again on April 28, 2026. |
There was a problem hiding this comment.
Submodule commit not on fork
main
CLAUDE.md (Submodule safety) requires pushing the submodule commit to the fork's remote main branch before committing the updated parent pointer, specifically to prevent orphaning. The commit d3117e03e is documented here as being on cmux-upstream-20260428, not on manaflow/main. The presence of the release tag xcframework-d3117e03ea19665bc83a28f7e0428c63937e6140 protects against immediate GC, but the policy check (git merge-base --is-ancestor HEAD origin/main) against the fork's main would still fail — consider merging cmux-upstream-20260428 into manaflow/main or confirming that this branch is already reachable from manaflow/main.
Context Used: CLAUDE.md (source)
There was a problem hiding this comment.
Fixed. d3117e0 is now an ancestor of manaflow-ai/ghostty main via manaflow-ai/ghostty#48, and the fork notes now state that.
— Claude Code
be8c6c1 to
27a5fe9
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (2)
docs/ghostty-fork.md (2)
167-173: Minor style: add comma after the year per LanguageTool hint.Line [167] reads like: “April 28, 2026 upstream merge:”. Consider updating to “April 28, 2026, upstream merge:” (commas set off the year in a month-day-year date).
🛠️ Proposed fix
- - April 28, 2026 upstream merge: + - April 28, 2026, upstream merge:🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/ghostty-fork.md` around lines 167 - 173, Update the heading string "April 28, 2026 upstream merge:" to include a comma after the year so it reads "April 28, 2026, upstream merge:"; locate the exact text "April 28, 2026 upstream merge:" in the document (the date-heading) and insert the comma immediately after "2026" to follow the suggested style.
130-140: C API section: verify the described API matchesinclude/ghostty.hexports.Section 9 (“Config load string C API”) claims:
- commit
f7880c473- files:
include/ghostty.h,src/config/CApi.zig,src/config/Config.zig- summary: adds C API for loading Ghostty config from in-memory string
Since docs can drift from header/API naming, it’d be good to verify the exact exported symbol names (function signature / naming) match what’s in the fork.
If you want, I can draft a small doc-check script that greps
include/ghostty.hfor the newly-added symbol(s) and ensures the doc references the same names.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/ghostty-fork.md` around lines 130 - 140, Verify that the documented "Config load string C API" matches the actual exported symbols in include/ghostty.h by opening include/ghostty.h and locating the C API function(s) added for loading config from a string (compare against the Zig sources src/config/CApi.zig and src/config/Config.zig); if the header uses a different function name or signature than the docs (e.g., any symbol declared for config-from-string), update the docs to use the exact exported symbol names and signatures from include/ghostty.h, or update the header to export the documented names so they match. Ensure the doc text references the exact C function names and their signatures as found in include/ghostty.h.
🤖 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 ghostty commit d3117e03ea to the remote (origin/main) before
changing the cmux submodule pointer so the target commit is reachable; only
after pushing, update the cmux submodule pointer in the repo. Also modify the
tar creation step in .github/workflows/build-ghosttykit.yml (the tar invocation
around the current line ~96) to exclude macOS AppleDouble entries (e.g. exclude
files starting with ._ and the __MACOSX directory) so the archive contains only
GhosttyKit.xcframework/ entries and will pass the strict check in
scripts/validate-xcframework-archive.py (the validator that rejects entries
outside GhosttyKit.xcframework/).
- Line 1: The parent repo now references a ghostty submodule commit
(d3117e03ea19665bc83a28f7e0428c63937e6140) that is not present on the ghostty
fork's origin/main; push that commit to the manaflow-ai/ghostty fork's main
branch (or update the submodule pointer to a commit that is already on
origin/main) before updating the parent pointer, then verify the commit is
reachable from origin/main (e.g., using git merge-base --is-ancestor with the
SHA and origin/main) so CI can fetch the submodule successfully.
---
Nitpick comments:
In `@docs/ghostty-fork.md`:
- Around line 167-173: Update the heading string "April 28, 2026 upstream
merge:" to include a comma after the year so it reads "April 28, 2026, upstream
merge:"; locate the exact text "April 28, 2026 upstream merge:" in the document
(the date-heading) and insert the comma immediately after "2026" to follow the
suggested style.
- Around line 130-140: Verify that the documented "Config load string C API"
matches the actual exported symbols in include/ghostty.h by opening
include/ghostty.h and locating the C API function(s) added for loading config
from a string (compare against the Zig sources src/config/CApi.zig and
src/config/Config.zig); if the header uses a different function name or
signature than the docs (e.g., any symbol declared for config-from-string),
update the docs to use the exact exported symbol names and signatures from
include/ghostty.h, or update the header to export the documented names so they
match. Ensure the doc text references the exact C function names and their
signatures as found in include/ghostty.h.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: c9b9f37b-66e8-4d77-9422-97d9d4299e96
📒 Files selected for processing (3)
docs/ghostty-fork.mdghosttyscripts/ghosttykit-checksums.txt
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
docs/ghostty-fork.md (1)
167-174: Add explicit submodule-ancestry verification command to the merge checklist block.Since this section already describes the April 28 merge verification workflow, include the detached-head/orphan-commit guard command explicitly to make the process self-checking.
Suggested doc patch
- April 28, 2026 upstream merge: - Merged upstream `659019666` into `465a9a621` without textual conflicts. + - Verified fork commit ancestry before updating parent pointer: + `cd ghostty && git fetch origin main && git merge-base --is-ancestor HEAD origin/main`. - Verified with `CMUX_GHOSTTYKIT_NO_PREBUILT=1 ./scripts/ensure-ghosttykit.sh`.Based on learnings: When modifying a submodule (ghostty, vendor/bonsplit, etc.), always push the submodule commit to its remote
mainbranch BEFORE committing the updated pointer in the parent repo; never commit on a detached HEAD or temporary branch; verify withcd <submodule> && git merge-base --is-ancestor HEAD origin/mainto avoid orphaned commits🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/ghostty-fork.md` around lines 167 - 174, Update the April 28 merge verification checklist in docs/ghostty-fork.md to include an explicit submodule-ancestry verification step: instruct the maintainer to cd into the submodule (e.g., ghostty or vendor/bonsplit) and run git merge-base --is-ancestor HEAD origin/main before committing the updated submodule pointer, and state this must be done after pushing the submodule commit to origin/main to avoid detached-head/orphan commits; add this single-line check to the bullet list alongside the existing verification commands (e.g., the entries referencing scripts/ensure-ghosttykit.sh and ./scripts/reload.sh --tag gtyup).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/ghostty-fork.md`:
- Line 167: Update the date heading text "April 28, 2026 upstream merge:" to
include a comma after the year so it reads "April 28, 2026, upstream merge:";
locate the line containing the exact string "April 28, 2026 upstream merge:" in
docs/ghostty-fork.md and insert the comma immediately after "2026".
---
Nitpick comments:
In `@docs/ghostty-fork.md`:
- Around line 167-174: Update the April 28 merge verification checklist in
docs/ghostty-fork.md to include an explicit submodule-ancestry verification
step: instruct the maintainer to cd into the submodule (e.g., ghostty or
vendor/bonsplit) and run git merge-base --is-ancestor HEAD origin/main before
committing the updated submodule pointer, and state this must be done after
pushing the submodule commit to origin/main to avoid detached-head/orphan
commits; add this single-line check to the bullet list alongside the existing
verification commands (e.g., the entries referencing
scripts/ensure-ghosttykit.sh and ./scripts/reload.sh --tag gtyup).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 230a5b2e-5cc4-4703-983f-4b32484a4b91
📒 Files selected for processing (3)
docs/ghostty-fork.mdghosttyscripts/ghosttykit-checksums.txt
✅ Files skipped from review due to trivial changes (2)
- scripts/ghosttykit-checksums.txt
- ghostty
Makes d3117e0 reachable from fork main for manaflow-ai/cmux#3216.
Summary
ghosttysubmodule tod3117e03ea19665bc83a28f7e0428c63937e6140, merging upstream Ghostty6590196661f769dd8f2b3e85d6c98262c4ec5b3bwhile preserving the previous cmux fork pin465a9a62120f619a826b4864a4818dae7da724a7.docs/ghostty-fork.mdwith the current fork state and merge notes.Testing
CMUX_GHOSTTYKIT_NO_PREBUILT=1 ./scripts/ensure-ghosttykit.sh./scripts/reload.sh --tag gtyupscripts/ghosttykit-checksums.txt.Summary by cubic
Updates the
ghosttysubmodule to the latest upstream-synced fork and pins the matchingGhosttyKitrelease. Fixes xcframework packaging and validates archives in CI to avoid macOS metadata files.ghosttysubmodule while keeping cmux-specific patches.GhosttyKitxcframework, added its checksum toscripts/ghosttykit-checksums.txt, and fixed CI packaging withCOPYFILE_DISABLE=1plus archive validation.docs/ghostty-fork.mdwith the current fork state, upstream merge notes, packaging notes, and the new in-memory config load C API.Written for commit 2380601. Summary will update on new commits. Review in cubic
Summary by CodeRabbit
Documentation
Chores