360 Secure SkillHub
360 安全技能中心

cmux-ghostty

面向 cmux 项目,指导重建 GhosttyKit.xcframework、在 ghostty 子模块中提交并推送到 fork、同步上游,再更新父仓库的子模块指针,并强调先推送子模块提交,以避免出现不可达 SHA 和 CI 拉取失败。

manaflow-ai
热度 58.47
最近更新 2026-10-19 07:10:03
分类:开发依赖:代码执行 / 读写文件应用场景:DevOps / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add manaflow-ai/cmux/cmux-ghostty
Metadata
name
cmux-ghostty
description
Ghostty submodule and GhosttyKit workflow rules for cmux. Use when modifying the ghostty submodule, rebuilding GhosttyKit.xcframework, updating the parent submodule pointer, or documenting fork conflict notes.

cmux Ghostty

GhosttyKit builds

Always rebuild the xcframework with Release optimizations:

cd ghostty && zig build -Demit-xcframework=true -Dxcframework-target=universal -Doptimize=ReleaseFast

Submodule workflow

Ghostty changes are committed in the ghostty submodule and pushed to the manaflow-ai/ghostty fork. Keep docs/ghostty-fork.md current with fork changes and conflict notes.

Always run git remote -v first and push to whichever remote is manaflow-ai/ghostty. .gitmodules sets the submodule URL to that fork, so in a normal checkout it is origin; older setups tracked upstream as origin and added the fork as manaflow. Substitute the right name below.

cd ghostty
git remote -v                  # find the manaflow-ai/ghostty remote (usually origin)
git checkout -b <branch>
git add <files>
git commit -m "..."
git push origin <branch>

To pull in changes from upstream ghostty-org/ghostty, add it as an explicit remote first, since no checkout has it by default:

cd ghostty
git remote add upstream https://github.com/ghostty-org/ghostty.git   # once
git fetch upstream
git checkout main
git merge upstream/main
git push origin main

Then record the new SHA in the parent repo:

cd ..
git add ghostty
git commit -m "Update ghostty submodule"

Submodule safety

For any submodule (ghostty, vendor/bonsplit, homebrew-cmux), push the submodule commit to its remote branch before committing the updated pointer in the parent repo. Never commit on a detached HEAD or a temporary branch: the parent then points at a SHA unreachable from any remote branch, and a future checkout or CI job fails to fetch it.

Verify the commit is reachable from the branch the pointer should track, using the remote you just pushed to:

cd ghostty && git fetch origin main && git merge-base --is-ancestor HEAD origin/main

Detailed reference