Skip to content

Sync ghostty fork with upstream main#1480

Closed
lawrencecchen wants to merge 1 commit intomainfrom
issue-824-sync-ghostty-fork-upstream-v2
Closed

Sync ghostty fork with upstream main#1480
lawrencecchen wants to merge 1 commit intomainfrom
issue-824-sync-ghostty-fork-upstream-v2

Conversation

@lawrencecchen
Copy link
Copy Markdown
Contributor

@lawrencecchen lawrencecchen commented Mar 15, 2026

Summary

  • bump the ghostty submodule from bc9be90a21997a4e5f06bf15ae2ec0f937c2dc42 to 3cc60d5e399d9f2985f64155f451808afd876a4c after rebasing the fork onto current upstream main
  • update docs/ghostty-fork.md to the new retained patch stack and conflict notes
  • pin the matching GhosttyKit.xcframework release checksum for xcframework-3cc60d5e399d9f2985f64155f451808afd876a4c

Testing

  • zig build -Demit-xcframework=true -Demit-macos-app=false -Dxcframework-target=universal -Doptimize=ReleaseFast in ghostty
  • GHOSTTY_SHA=3cc60d5e399d9f2985f64155f451808afd876a4c ./scripts/download-prebuilt-ghosttykit.sh verified the uploaded release asset against the pinned checksum
  • ./scripts/setup.sh
  • ./scripts/reload.sh --tag issue-824-ghostty-sync

Issues


Summary by cubic

Rebased our ghostty fork onto upstream main, updated the fork notes to reflect the retained patch stack, and pinned the matching GhosttyKit.xcframework checksum. This keeps cmux aligned with upstream and makes xcframework downloads reproducible.

Written for commit 30d6e71. Summary will update on new commits.

Summary by CodeRabbit

  • Documentation

    • Comprehensive updates to fork documentation including refreshed commit metadata, reorganized sections with clearer descriptions, improved navigation structure, and consolidated patch descriptions for better understanding of tracked changes and project organization.
  • Chores

    • Updated the ghostty submodule dependency to the latest version and refreshed corresponding integrity checksums to ensure proper download verification and consistency.

@vercel
Copy link
Copy Markdown

vercel bot commented Mar 15, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cmux Ready Ready Preview, Comment Mar 15, 2026 11:54pm

Copy link
Copy Markdown
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 15, 2026

📝 Walkthrough

Walkthrough

Updates ghostty submodule pointer to incorporate recent upstream commits including OSC 99 parser, macOS display fixes, and zsh Pure-style prompt redraw markers. Synchronizes fork documentation with new commit hashes and updates checksum mapping for verification.

Changes

Cohort / File(s) Summary
Fork Documentation
docs/ghostty-fork.md
Rebase target updated from v1.3.0 to upstream main; commit hashes revised across all feature sections (OSC 99, macOS display link, keyboard copy mode C API, frame replay mitigation); zsh prompt redraw sections consolidated with simplified commit history and updated summaries; theme picker section reorganized with new commit references.
Submodule & Checksums
ghostty, scripts/ghosttykit-checksums.txt
Submodule pointer advanced to new commit hash; corresponding sha256 checksum entry appended to checksums file for verification integrity.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

Suggested labels

aardvark, codex

Poem

🐰 Commits now aligned in a row so neat,
Fork rebase and hashes—the dance is complete!
Pure prompts and frames replay swift and true,
Checksums mapped out for the journey through.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Sync ghostty fork with upstream main' is concise, clear, and directly summarizes the primary objective of the pull request: synchronizing the ghostty submodule with upstream main after rebasing.
Description check ✅ Passed The PR description includes a clear summary of changes, detailed testing procedures, linked issues, and additional context from cubic. While it exceeds the template structure, it comprehensively documents the work performed.
Linked Issues check ✅ Passed The PR successfully addresses all key objectives from issue #824: rebased the fork onto upstream main, preserved and reapplied cmux-specific patches (reflected in updated docs/ghostty-fork.md), and verified with testing including xcframework checksum validation.
Out of Scope Changes check ✅ Passed All changes are directly scoped to the objectives: submodule bump, fork documentation update, and checksum pinning. No extraneous modifications to unrelated files or functionality are present.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch issue-824-sync-ghostty-fork-upstream-v2
📝 Coding Plan
  • Generate coding plan for human review comments

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 3 files

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

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: The parent repo's submodule pointer for ghostty references a
non-existent commit (3cc60d5e399d9f2985f64155f451808afd876a4c); fix this by
pushing that commit (or the intended commit) to the manaflow-ai/ghostty fork's
main branch, then update the submodule pointer in the parent repo to reference a
commit that actually exists on origin/main and is an ancestor of origin/main;
verify with git fetch && git branch --contains <commit> (or git log origin/main
--ancestry-path) that 3cc60d5e... is present on the fork's main branch before
committing the updated submodule gitlink and merging the PR.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 88fb0035-ae7a-4e50-8c13-6f1ff9a2f074

📥 Commits

Reviewing files that changed from the base of the PR and between 1460c97 and 30d6e71.

📒 Files selected for processing (3)
  • docs/ghostty-fork.md
  • ghostty
  • scripts/ghosttykit-checksums.txt

@@ -1 +1 @@
Subproject commit bc9be90a21997a4e5f06bf15ae2ec0f937c2dc42
Subproject commit 3cc60d5e399d9f2985f64155f451808afd876a4c
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Verify the submodule commit is properly on the fork's main branch
# and that related files were updated in this PR.

echo "=== Checking if submodule commit is on manaflow-ai/ghostty main branch ==="
cd ghostty || exit 1

# Fetch latest from the fork
git fetch origin main

# Check if the commit exists
if ! git cat-file -e 3cc60d5e399d9f2985f64155f451808afd876a4c^{commit} 2>/dev/null; then
  echo "❌ ERROR: Commit 3cc60d5e399d9f2985f64155f451808afd876a4c does not exist in the submodule"
  exit 1
fi

# Verify it's an ancestor of origin/main (as per learnings)
if git merge-base --is-ancestor 3cc60d5e399d9f2985f64155f451808afd876a4c origin/main; then
  echo "✅ Commit is an ancestor of origin/main"
else
  echo "❌ ERROR: Commit is NOT an ancestor of origin/main (may be detached HEAD or temp branch)"
  exit 1
fi

cd ..

echo ""
echo "=== Checking related files were updated in this PR ==="

# Check if docs/ghostty-fork.md was updated
if git diff --name-only HEAD^ HEAD | grep -q "docs/ghostty-fork.md"; then
  echo "✅ docs/ghostty-fork.md was updated"
else
  echo "❌ WARNING: docs/ghostty-fork.md was NOT updated (should be per learnings)"
fi

# Check if checksum file was updated
if git diff --name-only HEAD^ HEAD | grep -q "scripts/ghosttykit-checksums.txt"; then
  echo "✅ scripts/ghosttykit-checksums.txt was updated"
else
  echo "❌ WARNING: scripts/ghosttykit-checksums.txt was NOT updated"
fi

Repository: manaflow-ai/cmux

Length of output: 327


The submodule pointer references a non-existent commit.

Commit 3cc60d5e399d9f2985f64155f451808afd876a4c does not exist in the ghostty submodule. Per learnings, submodule commits must be pushed to the manaflow-ai/ghostty fork's main branch before the parent repo pointer is updated. The commit must be verified to exist and be an ancestor of origin/main before merging this PR.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@ghostty` at line 1, The parent repo's submodule pointer for ghostty
references a non-existent commit (3cc60d5e399d9f2985f64155f451808afd876a4c); fix
this by pushing that commit (or the intended commit) to the manaflow-ai/ghostty
fork's main branch, then update the submodule pointer in the parent repo to
reference a commit that actually exists on origin/main and is an ancestor of
origin/main; verify with git fetch && git branch --contains <commit> (or git log
origin/main --ancestry-path) that 3cc60d5e... is present on the fork's main
branch before committing the updated submodule gitlink and merging the PR.

@lawrencecchen
Copy link
Copy Markdown
Contributor Author

Superseded by #1484, which redoes this sync from a fresh non-issue branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Sync ghostty fork with upstream ghostty-org/ghostty

1 participant