Update ghostty for fallback font sizing#2242
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📝 WalkthroughWalkthroughThe PR updates the ghostty submodule to a newer commit implementing CoreText fallback glyph height clamping and documents this change. The mechanism prevents fallback glyphs from rendering larger than the primary monospace font by caching metrics and propagating fallback flags through face copies. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 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 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 Ghostty submodule to commit Confidence Score: 4/5Safe to merge once the submodule commit is confirmed to be on the fork's main branch per CLAUDE.md policy. The code and documentation changes are straightforward and well-structured. The single concern — whether bb60bc964 is on manaflow-ai/ghostty main — is a process/policy check, not a logic bug in the changes themselves. Once that is confirmed, there is no remaining blocking issue. ghostty (submodule pointer) — verify commit reachability from fork main before merging. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Glyph rasterization request] --> B{Primary font?}
B -- Yes --> C[Render at normal size]
B -- No --> D{Fallback font\nfallback_flag = true}
D --> E{Glyph type}
E -- Icon / emoji constraint path --> F[Render at constrained size\nno change]
E -- Unconstrained text glyph\ne.g. Hangul / CJK --> G[Clamp height to\nprimary cell vertical extents]
G --> H[Render at clamped size\nfits monospace grid]
Reviews (1): Last reviewed commit: "Update ghostty for fallback font sizing" | Re-trigger Greptile |
| @@ -1 +1 @@ | |||
| Subproject commit bc9be90a21997a4e5f06bf15ae2ec0f937c2dc42 | |||
| Subproject commit bb60bc964be4a616e61ed4e0229f72c222df039e | |||
There was a problem hiding this comment.
Verify submodule commit is on
manaflow-ai/ghostty main
CLAUDE.md requires that submodule commits be on the fork's main branch before the parent-repo pointer is committed, and instructs to verify with cd ghostty && git merge-base --is-ancestor HEAD origin/main.
The PR description says this update "depend[s] on manaflow-ai/ghostty#19", which implies the commit bb60bc964 lives on a PR/feature branch. If ghostty PR #19 has not yet been merged to manaflow-ai/ghostty main, the submodule pointer here points to a branch commit that can be orphaned when the branch is eventually deleted.
Please confirm that bb60bc964 is reachable from manaflow-ai/ghostty main before merging this PR.
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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: CI is failing because the new ghostty submodule SHA (bb60bc964...)
wasn't added to the pinned checksums file; update
scripts/ghosttykit-checksums.txt by appending the canonical checksum entry for
the new GhosttyKit SHA (use the same format as existing entries), commit that
change alongside the submodule update so test_ci_ghosttykit_checksum_present.sh
and macOS checks pass.
- Line 1: The submodule pointer references an unreachable commit
(bb60bc964be4a616e61ed4e0229f72c222df039e) in the manaflow-ai/ghostty submodule
on main; fix by either pushing that commit to the manaflow-ai/ghostty
repository’s main branch so the SHA becomes reachable, or update the submodule
pointer to point to an existing commit on that repo’s main (update the submodule
entry and commit the change), then re-run git submodule sync/update so cloning
will succeed.
🪄 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: 295e1a4d-1d8f-4d49-b308-f402b1ff698d
📒 Files selected for processing (2)
docs/ghostty-fork.mdghostty
| @@ -1 +1 @@ | |||
| Subproject commit bc9be90a21997a4e5f06bf15ae2ec0f937c2dc42 | |||
| Subproject commit bb60bc964be4a616e61ed4e0229f72c222df039e | |||
There was a problem hiding this comment.
Add the pinned GhosttyKit checksum for this new submodule SHA before merge.
Updating ghostty to bb60bc964... without adding its entry to scripts/ghosttykit-checksums.txt is currently breaking CI (test_ci_ghosttykit_checksum_present.sh and macOS compatibility both fail with “Missing pinned GhosttyKit checksum…”).
✅ Required follow-up change
# scripts/ghosttykit-checksums.txt
+bb60bc964be4a616e61ed4e0229f72c222df039e <sha256_of_GhosttyKit.xcframework.tar.gz_for_bb60bc964>🧰 Tools
🪛 GitHub Actions: CI
[error] 1-1: Test failed: scripts/ghosttykit-checksums.txt is missing an entry for ghostty bb60bc964be4a616e61ed4e0229f72c222df039e.
[error] 1-1: Step failed (exit code 1): ./tests/test_ci_ghosttykit_checksum_present.sh.
🪛 GitHub Actions: macOS Compatibility
[error] 1-1: Missing pinned GhosttyKit checksum for ghostty bb60bc964be4a616e61ed4e0229f72c222df039e in /Users/runner/work/cmux/cmux/scripts/ghosttykit-checksums.txt
[error] 1-1: Process completed with exit code 1.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@ghostty` at line 1, CI is failing because the new ghostty submodule SHA
(bb60bc964...) wasn't added to the pinned checksums file; update
scripts/ghosttykit-checksums.txt by appending the canonical checksum entry for
the new GhosttyKit SHA (use the same format as existing entries), commit that
change alongside the submodule update so test_ci_ghosttykit_checksum_present.sh
and macOS checks pass.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
git -C ghostty fetch origin main
SHA="bb60bc964be4a616e61ed4e0229f72c222df039e"
echo "Verifying submodule SHA exists and is on origin/main..."
git -C ghostty cat-file -e "${SHA}^{commit}"
git -C ghostty merge-base --is-ancestor "$SHA" origin/main
echo "OK: $SHA is present and reachable from origin/main"Repository: manaflow-ai/cmux
Length of output: 393
Do not merge: submodule pointer is unreachable from manaflow-ai/ghostty main.
The submodule commit bb60bc964be4a616e61ed4e0229f72c222df039e is not reachable from origin/main. This will cause failures when cloning the repository. Either push this commit to the manaflow-ai/ghostty repository's main branch, or update the submodule pointer to an existing commit on main.
🧰 Tools
🪛 GitHub Actions: CI
[error] 1-1: Test failed: scripts/ghosttykit-checksums.txt is missing an entry for ghostty bb60bc964be4a616e61ed4e0229f72c222df039e.
[error] 1-1: Step failed (exit code 1): ./tests/test_ci_ghosttykit_checksum_present.sh.
🪛 GitHub Actions: macOS Compatibility
[error] 1-1: Missing pinned GhosttyKit checksum for ghostty bb60bc964be4a616e61ed4e0229f72c222df039e in /Users/runner/work/cmux/cmux/scripts/ghosttykit-checksums.txt
[error] 1-1: Process completed with exit code 1.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@ghostty` at line 1, The submodule pointer references an unreachable commit
(bb60bc964be4a616e61ed4e0229f72c222df039e) in the manaflow-ai/ghostty submodule
on main; fix by either pushing that commit to the manaflow-ai/ghostty
repository’s main branch so the SHA becomes reachable, or update the submodule
pointer to point to an existing commit on that repo’s main (update the submodule
entry and commit the change), then re-run git submodule sync/update so cloning
will succeed.
Summary
docs/ghostty-fork.mdTesting
Summary by cubic
Updates
ghosttyto clamp CoreText fallback glyphs to the primary cell height so Hangul/CJK fallback text fits the cell (meets Linear issue 2162). Adds docs detailing the fork-only change indocs/ghostty-fork.md.Written for commit 0de6601. Summary will update on new commits.
Summary by CodeRabbit
Documentation
Chores