Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
99dd6a3
Support chorded keyboard shortcuts
lawrencecchen Apr 2, 2026
c7a0ade
Fix escape handling in shortcut recorder
lawrencecchen Apr 2, 2026
11be60d
Add settings.json shortcut overrides
lawrencecchen Apr 2, 2026
7813d1c
Add regression test for chord reset on deactivate
lawrencecchen Apr 2, 2026
9f6a61c
Fix shortcut chord cleanup edge cases
lawrencecchen Apr 2, 2026
b7bbc50
Add regression tests for chord prefix edge cases
lawrencecchen Apr 2, 2026
cb315ba
Fix configurable chord prefix routing
lawrencecchen Apr 2, 2026
218a421
Add CLI reload-config command
lawrencecchen Apr 2, 2026
292d3e5
Simplify reload-config CLI command
lawrencecchen Apr 3, 2026
483466e
Merge remote-tracking branch 'origin/main' into task-support-chords-f…
lawrencecchen Apr 3, 2026
8ee0832
Add regression tests for shortcut reload edges
lawrencecchen Apr 3, 2026
64d7cbf
Fix shortcut reload and chord edge cases
lawrencecchen Apr 3, 2026
421cf1b
Add managed settings.json defaults and schema docs
lawrencecchen Apr 3, 2026
05142f0
fix: harden shortcut routing edge cases
lawrencecchen Apr 3, 2026
39cd0f6
fix: preserve palette and browser shortcut routing
lawrencecchen Apr 3, 2026
a4bf022
chore: retrigger missing PR workflows
lawrencecchen Apr 3, 2026
1134d5d
feat: add settings.json entry points
lawrencecchen Apr 3, 2026
4bb4ef9
feat: make workspace color palette a named dictionary
lawrencecchen Apr 3, 2026
c6593b2
feat: add textedit button for settings file
lawrencecchen Apr 3, 2026
0516d78
refactor: reorder ghostty menu items
lawrencecchen Apr 3, 2026
1e32852
refactor: restore settings menu ordering
lawrencecchen Apr 3, 2026
b1721dd
refactor: restyle settings file entry
lawrencecchen Apr 3, 2026
a641c6f
refactor: move settings file actions into header
lawrencecchen Apr 3, 2026
7f6502b
refactor: simplify settings file header action
lawrencecchen Apr 3, 2026
1f71b3e
docs: explain shortcut chords from settings
lawrencecchen Apr 3, 2026
e4f67ed
refactor: reorder shortcut chord actions
lawrencecchen Apr 4, 2026
5690b8b
Merge origin/main into task-support-chords-for-keyboard-shortcuts
lawrencecchen Apr 4, 2026
ed8128e
fix: notify after swapping settings file store
lawrencecchen Apr 4, 2026
5c90e9c
merge: resolve conflicts with main
lawrencecchen Apr 6, 2026
5422a4b
Fix sidebar PR status polling rate limits (#2585)
austinywang Apr 6, 2026
91b4850
ci: only enforce Sparkle monotonic check on release (#2651)
austinywang Apr 6, 2026
45989a0
guardrail: require settings.json review for settings rows
lawrencecchen Apr 7, 2026
7563c91
fix: restore shortcut default and validate bypassed settings paths
lawrencecchen Apr 7, 2026
4daa412
Merge pull request #2655 from manaflow-ai/task-support-chords-for-key…
lawrencecchen Apr 7, 2026
0bbaa48
Configurable surface tab bar font size (#2645)
austinywang Apr 7, 2026
ed019f5
Add a system-wide hotkey to show and hide cmux windows (#2389)
austinywang Apr 7, 2026
f550206
Add passkey, WebAuthn, and FIDO2 support to browser pane (#2660)
austinywang Apr 7, 2026
9d4220b
Fix workspace color picker context menu blinking (#2566)
austinywang Apr 7, 2026
fe7e292
Hide workspace portal content before teardown (#2658)
austinywang Apr 7, 2026
266a042
Coalesce sidebar PR polling per-repo, drop checks fetch, state-machin…
austinywang Apr 7, 2026
9412c79
Fix nightly codesign: sign nested plugins and frameworks before outer…
austinywang Apr 7, 2026
18d9fca
Fix codesign: three-pass signing for Sparkle nested executables
austinywang Apr 7, 2026
e88ff43
Merge pull request #2677 from manaflow-ai/fix-nightly-codesign-dock-t…
austinywang Apr 7, 2026
c4a08fb
Fix terminal scrollbar occlusion
austinywang Apr 7, 2026
1a2624a
Fix codesign: drop -perm filter so Sparkle Autoupdate gets signed
austinywang Apr 7, 2026
2ff7478
Merge pull request #2679 from manaflow-ai/fix-codesign-autoupdate
austinywang Apr 7, 2026
e2d5cff
Fix codesign: -path '*.app/*' excluded everything inside outer .app
austinywang Apr 7, 2026
2afa083
Merge pull request #2680 from manaflow-ai/fix-codesign-path-filter
austinywang Apr 7, 2026
c6ef4e7
Revert "Merge pull request #2680 from manaflow-ai/fix-codesign-path-f…
austinywang Apr 7, 2026
c3f5f04
Revert "Merge pull request #2679 from manaflow-ai/fix-codesign-autoup…
austinywang Apr 7, 2026
f441a39
Revert "Merge pull request #2677 from manaflow-ai/fix-nightly-codesig…
austinywang Apr 7, 2026
2e0f9d4
Revert "Fix nightly codesign: sign nested plugins and frameworks befo…
austinywang Apr 7, 2026
b90c41f
Revert "Add passkey, WebAuthn, and FIDO2 support to browser pane (#26…
austinywang Apr 7, 2026
2669b6d
Merge pull request #2681 from manaflow-ai/revert-passkey-nightly-broken
austinywang Apr 7, 2026
9692022
Update ghostty submodule to upstream main (112 commits past v1.3.1)
lawrencecchen Apr 8, 2026
0aedcfd
Update ghostty submodule to merged upstream (ghostty PR #30)
lawrencecchen Apr 8, 2026
044ff84
Add GhosttyKit checksum for cc6f4c28 (upstream merge)
lawrencecchen Apr 8, 2026
2b3d1c1
Update ghostty submodule with xcframework tag fix
lawrencecchen Apr 8, 2026
cc9dee5
Add GhosttyKit checksum for 9fa02f69 (xcframework tag fix)
lawrencecchen Apr 8, 2026
c9e3ccb
Update ghostty submodule with cli-helper step
lawrencecchen Apr 8, 2026
5702a7f
Add GhosttyKit checksum for 811360c5 (cli-helper step)
lawrencecchen Apr 8, 2026
db5a920
Update ghostty submodule with zig 0.15.2 compat fix
lawrencecchen Apr 8, 2026
f45c8f4
Add GhosttyKit checksum for fc59b46b (zig 0.15.2 compat)
lawrencecchen Apr 8, 2026
4bad2da
Update ghostty to origin/main with all cmux patches
lawrencecchen Apr 8, 2026
1a05555
Add GhosttyKit checksum for 3b684a08 (origin/main with all patches)
lawrencecchen Apr 8, 2026
34fcc42
Merge pull request #2704 from manaflow-ai/upgrade-ghostty-upstream
lawrencecchen Apr 8, 2026
ca39ddb
Merge pull request #2678 from manaflow-ai/issue-2674-scrollbar-occlusion
austinywang Apr 8, 2026
d576d91
Fix selection autoscroll past terminal viewport edge (#2705)
austinywang Apr 8, 2026
fc721af
Merge pull request #2725 from manaflow-ai/issue-2705-select-autoscroll
austinywang Apr 8, 2026
1d81b74
Add founder's edition
lawrencecchen Apr 8, 2026
c2e97be
Add Cursor and Gemini CLI agent integrations + setup-hooks (#2717)
lawrencecchen Apr 9, 2026
8510503
Fix minimal-mode traffic-light inset on new workspace
austinywang Apr 9, 2026
9155d09
Merge pull request #2740 from manaflow-ai/issue-2737-minimal-traffic-…
austinywang Apr 9, 2026
9b4e447
Fix Raycast paste fallback regression
austinywang Apr 10, 2026
f8dfdef
Fix command-hold shortcut hints and keep sidebar text stable
lawrencecchen Apr 10, 2026
85dfc26
Fix browser paste-as-plain-text shortcut
austinywang Apr 10, 2026
fae33ca
Merge pull request #2767 from manaflow-ai/feat-cmd-hold-shows-all-hints
lawrencecchen Apr 10, 2026
95973a9
Fix shell integration not injected — Ghostty ZDOTDIR override
michaeljauk Apr 10, 2026
eabe056
Finish Raycast paste regression fix
austinywang Apr 10, 2026
27f61e5
Fix browser arrow key routing
austinywang Apr 10, 2026
8e3c15f
Route browser up/down arrows through keyDown
austinywang Apr 10, 2026
39b081a
Fix browser plain-text paste review issues
austinywang Apr 10, 2026
14a5b1d
Repair command-key focus drift in same window
austinywang Apr 10, 2026
5a30a91
Share browser JS literal helper
austinywang Apr 10, 2026
221529a
Fix browser paste focus handler issues
austinywang Apr 10, 2026
52c83fd
Refresh bonsplit pointer and ghostty fork notes
austinywang Apr 10, 2026
9b25888
Narrow command focus repair for menu shortcuts
austinywang Apr 10, 2026
ebce4c5
Merge pull request #2768 from manaflow-ai/issue-2762-raycast-paste-re…
austinywang Apr 10, 2026
224c01d
Fix browser address bar shortcut focus routing
austinywang Apr 10, 2026
918de06
Address browser paste review follow-ups
austinywang Apr 10, 2026
45a5179
Use WebKit native plain-text browser paste
austinywang Apr 10, 2026
66f7b59
Fix browser omnibar shortcut routing edge cases
austinywang Apr 10, 2026
e8d726d
Avoid duplicate browser paste preflight
austinywang Apr 10, 2026
1ffe486
Fix browser omnibar field editor focus tracking
austinywang Apr 10, 2026
3d0e2f1
Broaden browser plain-text paste gating
austinywang Apr 10, 2026
4f1aee6
Skip browser paste preflight when cache is false
austinywang Apr 10, 2026
c83aef2
Merge pull request #2780 from manaflow-ai/issue-1146-browser-arrow-keys
austinywang Apr 10, 2026
049c653
Merge pull request #2779 from manaflow-ai/issue-2766-cmd-shift-v-paste
austinywang Apr 10, 2026
d289f66
Merge pull request #2778 from michaeljauk/fix/issue-2594-shell-integr…
austinywang Apr 11, 2026
3619e11
Merge remote-tracking branch 'upstream/main' into sid/upstream-sync-next
Jesssullivan Apr 11, 2026
4662d72
chore(vendor): update bonsplit submodule to upstream-sync (cmd-hold h…
Jesssullivan Apr 11, 2026
c940f90
chore(vendor): point bonsplit to upstream tip (TabItem equality fix w…
Jesssullivan Apr 11, 2026
8f1e7ae
fix(macOS): remove orphaned scheduleSelectedWorkspaceGitMetadataRefre…
Jesssullivan Apr 11, 2026
d6a3d30
fix(macOS): break settings body into Group blocks to fix Swift type-c…
Jesssullivan Apr 11, 2026
70bfe39
fix(macOS): split settings into 9 Group blocks for Swift type-checker
Jesssullivan Apr 11, 2026
feda26f
fix(macOS): extract settings sections into @ViewBuilder properties
Jesssullivan Apr 11, 2026
56231af
fix(macOS): add missing configurationReview to fork-specific settings…
Jesssullivan Apr 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .claude/commands/release-local.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,12 @@ Full end-to-end release built locally. Bumps version, updates changelog, tags, t

- Run: `./scripts/bump-version.sh` (bumps minor by default)

### 5. Commit, tag, and push
### 5. Commit, run the pre-tag guard, then tag and push

- Stage: `CHANGELOG.md`, `GhosttyTabs.xcodeproj/project.pbxproj`
- Commit message: `Bump version to X.Y.Z`
- Run: `./scripts/release-pretag-guard.sh`
- If it fails, run `./scripts/bump-version.sh`, commit the build-number bump, and rerun the guard
- Create tag: `git tag vX.Y.Z`
- Push: `git push origin main && git push origin vX.Y.Z`

Expand Down
4 changes: 3 additions & 1 deletion .claude/commands/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,9 @@ Prepare a new release for cmux. This command updates the changelog, bumps the ve
- Merge: `gh pr merge --squash --delete-branch`
- Switch back to main: `git checkout main && git pull`
10. **Create and push the tag**
10. **Run the pre-tag guard, then create and push the tag**
- Run: `./scripts/release-pretag-guard.sh`
- If it fails, run `./scripts/bump-version.sh`, commit the build-number bump, push/merge that change, and retry the tag
- Create tag: `git tag vX.Y.Z`
- Push tag: `git push origin vX.Y.Z`
Expand Down
16 changes: 16 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# These are supported funding model platforms

github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
polar: # Replace with a single Polar username
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
thanks_dev: # Replace with a single thanks.dev username
custom: ['https://github.com/manaflow-ai/cmux#founders-edition']
# custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
3 changes: 0 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,6 @@ jobs:
- name: Validate current GhosttyKit checksum pin
run: ./tests/test_ci_ghosttykit_checksum_present.sh

- name: Validate Sparkle build number is monotonic
run: ./tests/test_ci_sparkle_build_monotonic.sh

remote-daemon-tests:
runs-on: ubuntu-latest
steps:
Expand Down
27 changes: 3 additions & 24 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ jobs:
with:
submodules: recursive

- name: Validate Sparkle build number is monotonic
run: ./tests/test_ci_sparkle_build_monotonic.sh

- name: Guard immutable release assets
id: guard_release_assets
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7
Expand Down Expand Up @@ -79,30 +82,6 @@ jobs:
throw error;
}

- name: Guard Sparkle build number is monotonic
if: steps.guard_release_assets.outputs.skip_all != 'true'
run: |
set -euo pipefail
LOCAL_BUILD=$(grep -m1 'CURRENT_PROJECT_VERSION = ' GhosttyTabs.xcodeproj/project.pbxproj | sed 's/.*= //;s/;.*//')
if ! [[ "$LOCAL_BUILD" =~ ^[0-9]+$ ]]; then
echo "Could not parse CURRENT_PROJECT_VERSION (got '$LOCAL_BUILD')" >&2
exit 1
fi
echo "Local CURRENT_PROJECT_VERSION=$LOCAL_BUILD"
PUBLISHED_BUILD=$(curl -fsSL --max-time 15 \
https://github.com/manaflow-ai/cmux/releases/latest/download/appcast.xml 2>/dev/null \
| sed -n 's#.*<sparkle:version>\([0-9][0-9]*\)</sparkle:version>.*#\1#p' \
| head -n1 || true)
if [[ "$PUBLISHED_BUILD" =~ ^[0-9]+$ ]]; then
echo "Latest published Sparkle build=$PUBLISHED_BUILD"
if (( LOCAL_BUILD <= PUBLISHED_BUILD )); then
echo "::error::CURRENT_PROJECT_VERSION ($LOCAL_BUILD) must be > latest published Sparkle build ($PUBLISHED_BUILD). Run scripts/bump-version.sh to bump the build number before tagging." >&2
exit 1
fi
else
echo "Latest published appcast unavailable; skipping monotonic check"
fi

- name: Select Xcode
if: steps.guard_release_assets.outputs.skip_all != 'true'
run: |
Expand Down
11 changes: 10 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ Use the `/release` command to prepare a new release. This will:
2. Gather commits since the last tag and update the changelog
3. Update `CHANGELOG.md` (the docs changelog page at `web/app/docs/changelog/page.tsx` reads from it)
4. Run `./scripts/bump-version.sh` to update both versions
5. Commit, tag, and push
5. Commit, run `./scripts/release-pretag-guard.sh`, tag, and push

Version bumping:

Expand All @@ -248,9 +248,18 @@ Version bumping:

This updates both `MARKETING_VERSION` and `CURRENT_PROJECT_VERSION` (build number). The build number is auto-incremented and is required for Sparkle auto-update to work.

Before creating a release tag, run:

```bash
./scripts/release-pretag-guard.sh
```

If it fails, run `./scripts/bump-version.sh`, commit the build-number bump, then retry tagging.

Manual release steps (if not using the command):

```bash
./scripts/release-pretag-guard.sh
git tag vX.Y.Z
git push origin vX.Y.Z
gh run watch --repo manaflow-ai/cmux
Expand Down
Loading
Loading