Commit graph

40 commits

Author SHA1 Message Date
Lawrence Chen
c7eec9fbb5
Pin create-dmg version in signed build workflows (#401)
* Pin create-dmg version in release workflows

* Bump pinned create-dmg to 8.0.0
2026-02-25 19:30:10 -08:00
Lawrence Chen
fc3e3a4d7d Pin all GitHub Actions to full commit SHAs
Org policy now requires actions pinned to immutable SHAs instead of
mutable version tags. Pin actions/checkout, actions/github-script,
softprops/action-gh-release, and oven-sh/setup-bun across all workflows.
2026-02-24 22:21:40 -08:00
Lawrence Chen
53ef6a5f7d
Upgrade Sentry: tracing, breadcrumbs, dSYM upload (#366)
* Upgrade Sentry: tracing, breadcrumbs, dSYM upload

- Enhanced Sentry SDK init with performance tracing (10% sample),
  explicit app hang timeout, stack trace attachment, and HTTP
  failure capture
- Added breadcrumbs for key user actions: workspace switch/create/close,
  split creation, command palette open/close, app focus — these give
  context to hang/crash reports
- Added dSYM upload step to nightly and release CI workflows so hang
  stacks are fully symbolicated (requires SENTRY_AUTH_TOKEN secret)
- Created SentryHelper.swift with lightweight breadcrumb helper

Closes https://github.com/manaflow-ai/cmux/issues/365

* Remove command palette breadcrumbs

Not useful for hang diagnosis — keep only workspace/tab/split/focus
breadcrumbs that correlate with heavy operations.
2026-02-23 17:11:01 -08:00
Lawrence Chen
5ac633445f Fail partial release assets and short-circuit reruns 2026-02-21 15:27:24 -08:00
Lawrence Chen
cf1cd096b1 Make release asset guard idempotent 2026-02-21 15:19:10 -08:00
Lawrence Chen
a5b1039fbc release: block accidental overwrite of signed assets 2026-02-21 04:07:00 -08:00
Lawrence Chen
699db2a9ed
Fix menubar lag on M1 Macs by using universal xcframework target (#93)
Remove -Dxcframework-target=native from CI and release workflows,
defaulting to universal (matching upstream ghostty). The native target
produces a macos-arm64 xcframework slice that causes Xcode to link the
final binary differently (~70KB more __text), resulting in menubar and
right-click lag on M1 Max. The arm64 static libraries are byte-for-byte
identical between native and universal builds - the difference is purely
in how Xcode resolves the xcframework slice.
2026-02-18 22:09:13 -08:00
Lawrence Chen
915e34bd38
Revert xcframework-target removal that broke CI (#86) (#90)
The -Dxcframework-target flag controls platform slices (native=macOS
only, universal=macOS+iOS), not CPU microarchitecture. Removing it
caused CI to attempt iOS builds which fail due to missing Metal
iOS toolchain on the runner.
2026-02-18 20:37:59 -08:00
Austin Wang
65ac29d827
Fix zsh git branch refresh race after cwd change (#71)
* Fix zsh git branch refresh race after cwd change

* Clarify intentional duplicate cwd check in git refresh path

* Add Metal Toolchain download step to CI and release workflows

Fixes build failure when compiling Metal shaders for iOS xcframework
targets — the self-hosted runner needs `xcodebuild -downloadComponent
MetalToolchain` installed before `xcrun metal` can run.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 20:36:27 -08:00
Lawrence Chen
d24030db58
Use universal xcframework target instead of native (#86)
The self-hosted runner (M4 Mac Mini) was building GhosttyKit with
-Dxcframework-target=native, producing M4-tuned binaries. This caused
menubar and right-click lag on M1 machines. Dropping the flag defaults
to universal, which works well across all Apple Silicon chips.
2026-02-18 20:21:34 -08:00
Lawrence Chen
a2457f1d5e Fix menubar lag in production builds caused by hardened runtime
Hardened runtime's library validation was verifying every dylib on load,
causing noticeable UI lag. Add entitlements file with
disable-library-validation to fix while keeping notarization support.
2026-02-16 03:26:33 -08:00
Lawrence Chen
faf1bd44c2 release: fix Sparkle upgrade path for 1.27.0 users 2026-02-14 03:26:42 -08:00
Lawrence Chen
9817d131f8
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
2026-02-09 15:30:43 -08:00
Lawrence Chen
09f27d91f1 Revert to npm create-dmg for styled DMG layout
hdiutil produces a basic layout. npm create-dmg (sindresorhus) gives
large centered icons with proper spacing. The blank Applications icon
is a macOS 26 rendering issue that affects both approaches.
2026-02-08 17:30:49 -08:00
Lawrence Chen
08a654882d Use hdiutil for DMG creation instead of create-dmg
create-dmg (brew) uses AppleScript/Finder for icon positioning which
times out on headless CI. Switch to hdiutil with Applications symlink
for reliable CI builds.
2026-02-08 17:20:49 -08:00
Lawrence Chen
b4c90a0912 Fix create-dmg PATH conflict on self-hosted runner
Remove npm create-dmg before installing brew version to avoid
the npm version taking precedence in PATH.
2026-02-08 17:14:58 -08:00
Lawrence Chen
cb4c87113b Fix blank Applications icon in DMG installer
Switch from npm create-dmg (sindresorhus) to brew create-dmg
(create-dmg/create-dmg) which properly renders the Applications
folder symlink icon with explicit layout control.
2026-02-08 17:11:19 -08:00
Lawrence Chen
d2ecfc4342
Bump version to 1.19.1 (#23) 2026-02-08 17:04:31 -08:00
Lawrence Chen
c1d0610a2d Fix blank window with NSGlassEffectView on macOS 26
Avoid Auto Layout reparenting of SwiftUI hosting view when applying glass; force HFS+ DMG so volume name mounts as cmuxterm.
2026-02-08 15:59:38 -08:00
Lawrence Chen
20c62b3b9a
Fix CI race condition on self-hosted runner (#19)
* Fix zsh ZDOTDIR wrapper + log parsing with -- messages

* Fix CI race condition: serialize self-hosted builds with concurrency group

Two workflows racing on the same self-hosted runner caused DerivedData
corruption (release's rm -rf nuked DerivedData while CI was building).
Add shared concurrency group and scope DerivedData cleanup to project.
2026-02-06 22:32:14 -08:00
Lawrence Chen
0340e794b8
Fix Sparkle auto-update: inject SUPublicEDKey into Info.plist via PlistBuddy (#15)
Root cause: INFOPLIST_KEY_ build setting prefix only works for Apple-recognized
keys (CF*, NS*, LS*), not custom keys like SUPublicEDKey. The key was never
being added to Info.plist, so generate_appcast silently skipped EdDSA signing
(no public key in app = nothing to match against).

Fix:
- Derive public key from private key at build time using CryptoKit
- Use PlistBuddy to inject SUPublicEDKey and SUFeedURL after build
- Add sign_update fallback in appcast script if generate_appcast skips signing
- Add base64 padding normalization for key handling
2026-02-05 19:57:01 -08:00
Lawrence Chen
b56da22b43 Fix Sparkle public key not embedded in release builds
SPARKLE_PUBLIC_KEY was set as a shell env var but Xcode needs it passed
as a build setting argument. Without SUPublicEDKey in Info.plist, Sparkle
silently ignores updates.
2026-02-05 19:33:47 -08:00
Lawrence Chen
a77a684548 Fix SwiftPM cache for releases 2026-01-29 17:45:00 -08:00
Lawrence Chen
bb20dc40e4 Fix release workflow: clear SPM cache before build 2026-01-29 17:12:43 -08:00
Lawrence Chen
7cd7a4c58b Codesign embedded CLI for notarization 2026-01-28 22:53:15 -08:00
Lawrence Chen
778e96645c Fix notarization log parsing 2026-01-28 22:50:57 -08:00
Lawrence Chen
871c7b19ae Fix release workflow YAML 2026-01-28 22:48:02 -08:00
Lawrence Chen
9b3adf1c68 Log notarization failures in release workflow 2026-01-28 22:44:48 -08:00
Lawrence Chen
44aa75103a Fix release codesign app path 2026-01-28 15:35:31 -08:00
Lawrence Chen
3877dc2d98 Rename app to cmuxterm 2026-01-28 02:38:24 -08:00
Lawrence Chen
e3ee246930 Add Sparkle auto-update flow and titlebar update UI 2026-01-26 17:25:34 -08:00
Lawrence Chen
b0c61f7d6c Ship DMG releases and enhance tab actions 2026-01-26 14:48:08 -08:00
Lawrence Chen
4102567054 Fix release workflow for cmux 2026-01-26 03:39:53 -08:00
Lawrence Chen
89e15db604 Fix keychain reuse in release workflow 2026-01-26 01:57:42 -08:00
Lawrence Chen
6704d74e31 Skip building Ghostty macOS app for xcframework 2026-01-26 00:21:21 -08:00
Lawrence Chen
1ed61cdfe3 Export DEVELOPER_DIR for Xcode selection 2026-01-25 17:40:13 -08:00
Lawrence Chen
1d65c0efdc Select Xcode dynamically on self-hosted runner 2026-01-25 16:57:27 -08:00
Lawrence Chen
9c203a49a0 Force Xcode toolchain on mac runner 2026-01-25 16:55:58 -08:00
Lawrence Chen
157b74e8b0 Improve notarization zip handling 2026-01-25 16:52:13 -08:00
Lawrence Chen
04dcc2cc74 Add macOS release workflow and README download 2026-01-25 16:10:05 -08:00