Release v1.23.0 (#31)

* Rename cmuxterm to cmux across entire codebase

- Rename GitHub repos: manaflow-ai/cmuxterm -> manaflow-ai/cmux,
  manaflow-ai/homebrew-cmuxterm -> manaflow-ai/homebrew-cmux
- Rename bundle IDs: com.cmuxterm.app -> com.cmux.app
- Rename CLI: CLI/cmuxterm.swift -> CLI/cmux.swift
- Rename homebrew submodule: homebrew-cmuxterm -> homebrew-cmux
- Update all socket paths: /tmp/cmuxterm*.sock -> /tmp/cmux*.sock
- Update all GitHub URLs, DMG names, Sparkle URLs
- Update all source files, scripts, tests, docs, CI workflows

* Bump version to 1.23.0
This commit is contained in:
Lawrence Chen 2026-02-09 15:30:43 -08:00 committed by GitHub
parent 9ba1d02b2b
commit 9817d131f8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
70 changed files with 466 additions and 450 deletions

View file

@ -85,11 +85,11 @@ jobs:
- name: Inject Sparkle keys into Info.plist
run: |
APP_PLIST="build/Build/Products/Release/cmuxterm.app/Contents/Info.plist"
APP_PLIST="build/Build/Products/Release/cmux.app/Contents/Info.plist"
echo "Adding SUPublicEDKey to Info.plist..."
/usr/libexec/PlistBuddy -c "Add :SUPublicEDKey string ${SPARKLE_PUBLIC_KEY}" "$APP_PLIST"
echo "Adding SUFeedURL to Info.plist..."
/usr/libexec/PlistBuddy -c "Add :SUFeedURL string https://github.com/manaflow-ai/cmuxterm/releases/latest/download/appcast.xml" "$APP_PLIST"
/usr/libexec/PlistBuddy -c "Add :SUFeedURL string https://github.com/manaflow-ai/cmux/releases/latest/download/appcast.xml" "$APP_PLIST"
echo "Verifying:"
/usr/libexec/PlistBuddy -c "Print :SUPublicEDKey" "$APP_PLIST"
/usr/libexec/PlistBuddy -c "Print :SUFeedURL" "$APP_PLIST"
@ -125,8 +125,8 @@ jobs:
echo "Missing APPLE_SIGNING_IDENTITY secret" >&2
exit 1
fi
APP_PATH="build/Build/Products/Release/cmuxterm.app"
CLI_PATH="$APP_PATH/Contents/Resources/bin/cmuxterm"
APP_PATH="build/Build/Products/Release/cmux.app"
CLI_PATH="$APP_PATH/Contents/Resources/bin/cmux"
if [ -f "$CLI_PATH" ]; then
/usr/bin/codesign --force --options runtime --timestamp --sign "$APPLE_SIGNING_IDENTITY" "$CLI_PATH"
fi
@ -144,9 +144,9 @@ jobs:
echo "Missing notarization secrets (APPLE_ID, APPLE_APP_SPECIFIC_PASSWORD, APPLE_TEAM_ID)" >&2
exit 1
fi
APP_PATH="build/Build/Products/Release/cmuxterm.app"
ZIP_SUBMIT="cmuxterm-notary.zip"
DMG_RELEASE="cmuxterm-macos.dmg"
APP_PATH="build/Build/Products/Release/cmux.app"
ZIP_SUBMIT="cmux-notary.zip"
DMG_RELEASE="cmux-macos.dmg"
ditto -c -k --sequesterRsrc --keepParent "$APP_PATH" "$ZIP_SUBMIT"
APP_SUBMIT_JSON="$(xcrun notarytool submit "$ZIP_SUBMIT" --apple-id "$APPLE_ID" --team-id "$APPLE_TEAM_ID" --password "$APPLE_APP_SPECIFIC_PASSWORD" --wait --output-format json)"
APP_SUBMIT_ID="$(python3 -c 'import json,sys; print(json.load(sys.stdin)["id"])' <<<"$APP_SUBMIT_JSON")"
@ -165,7 +165,7 @@ jobs:
--identity="$APPLE_SIGNING_IDENTITY" \
"$APP_PATH" \
./
mv ./cmuxterm*.dmg "$DMG_RELEASE"
mv ./cmux*.dmg "$DMG_RELEASE"
DMG_SUBMIT_JSON="$(xcrun notarytool submit "$DMG_RELEASE" --apple-id "$APPLE_ID" --team-id "$APPLE_TEAM_ID" --password "$APPLE_APP_SPECIFIC_PASSWORD" --wait --output-format json)"
DMG_SUBMIT_ID="$(python3 -c 'import json,sys; print(json.load(sys.stdin)["id"])' <<<"$DMG_SUBMIT_JSON")"
DMG_STATUS="$(python3 -c 'import json,sys; print(json.load(sys.stdin)["status"])' <<<"$DMG_SUBMIT_JSON")"
@ -185,13 +185,13 @@ jobs:
echo "Missing SPARKLE_PRIVATE_KEY secret" >&2
exit 1
fi
./scripts/sparkle_generate_appcast.sh cmuxterm-macos.dmg "$GITHUB_REF_NAME" appcast.xml
./scripts/sparkle_generate_appcast.sh cmux-macos.dmg "$GITHUB_REF_NAME" appcast.xml
- name: Upload release asset
uses: softprops/action-gh-release@v2
with:
files: |
cmuxterm-macos.dmg
cmux-macos.dmg
appcast.xml
generate_release_notes: true

View file

@ -31,31 +31,31 @@ jobs:
id: sha
run: |
VERSION="${{ steps.version.outputs.version }}"
curl -sL "https://github.com/manaflow-ai/cmuxterm/releases/download/v${VERSION}/cmuxterm-macos.dmg" -o cmuxterm.dmg
SHA256=$(shasum -a 256 cmuxterm.dmg | cut -d' ' -f1)
curl -sL "https://github.com/manaflow-ai/cmux/releases/download/v${VERSION}/cmux-macos.dmg" -o cmux.dmg
SHA256=$(shasum -a 256 cmux.dmg | cut -d' ' -f1)
echo "sha256=$SHA256" >> $GITHUB_OUTPUT
- name: Checkout homebrew-cmuxterm
- name: Checkout homebrew-cmux
uses: actions/checkout@v4
with:
repository: manaflow-ai/homebrew-cmuxterm
repository: manaflow-ai/homebrew-cmux
token: ${{ secrets.HOMEBREW_TAP_TOKEN }}
path: homebrew-cmuxterm
path: homebrew-cmux
- name: Update cask formula
env:
VERSION: ${{ steps.version.outputs.version }}
SHA256: ${{ steps.sha.outputs.sha256 }}
run: |
cat > homebrew-cmuxterm/Casks/cmuxterm.rb << CASKEOF
cask "cmuxterm" do
cat > homebrew-cmux/Casks/cmux.rb << CASKEOF
cask "cmux" do
version "${VERSION}"
sha256 "${SHA256}"
url "https://github.com/manaflow-ai/cmuxterm/releases/download/v#{version}/cmuxterm-macos.dmg"
name "cmuxterm"
url "https://github.com/manaflow-ai/cmux/releases/download/v#{version}/cmux-macos.dmg"
name "cmux"
desc "Lightweight native macOS terminal with vertical tabs for AI coding agents"
homepage "https://github.com/manaflow-ai/cmuxterm"
homepage "https://github.com/manaflow-ai/cmux"
livecheck do
url :url
@ -64,29 +64,29 @@ jobs:
depends_on macos: ">= :ventura"
app "cmuxterm.app"
app "cmux.app"
zap trash: [
"~/Library/Application Support/cmuxterm",
"~/Library/Caches/cmuxterm",
"~/Library/Preferences/ai.manaflow.cmuxterm.plist",
"~/Library/Application Support/cmux",
"~/Library/Caches/cmux",
"~/Library/Preferences/ai.manaflow.cmux.plist",
]
end
CASKEOF
# Remove leading whitespace from heredoc
sed -i 's/^ //' homebrew-cmuxterm/Casks/cmuxterm.rb
sed -i 's/^ //' homebrew-cmux/Casks/cmux.rb
- name: Commit and push
env:
VERSION: ${{ steps.version.outputs.version }}
run: |
cd homebrew-cmuxterm
cd homebrew-cmux
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add Casks/cmuxterm.rb
git add Casks/cmux.rb
if git diff --staged --quiet; then
echo "No changes - cask already up to date"
else
git commit -m "Update cmuxterm to ${VERSION}"
git commit -m "Update cmux to ${VERSION}"
git push
fi