Commit graph

587 commits

Author SHA1 Message Date
Lawrence Chen
0105b6256a
Add workspace tab color schemes and debug scheme toggle (#324)
* Add tab color feature to sidebar workspaces

Lets users assign a custom background color to any sidebar workspace tab
via a right-click "Tab Color" submenu. The primary motivation is working
across multiple projects simultaneously — coloring tabs by project makes
it instant to visually locate the right workspace without reading the title.

- Workspace: adds `customColor: String?` (@Published hex string) and
  `setCustomColor()` setter
- TabManager: adds `setTabColor(tabId:color:)` convenience method
- ContentView: 16-color dark palette (all luminance < 0.30, white text
  always readable), `Color(hex:)` extension, `coloredCircleImage(hex:)`
  helper to render bitmapped NSImage circles (needed because macOS menus
  strip SwiftUI foregroundColor from SF Symbols), updated `backgroundColor`
  to use custom color at full/70%/35% opacity for active/inactive/
  multi-selected states, "Tab Color" submenu in context menu with
  "Clear Color" option, and a 1.5pt `Color.primary` border overlay on
  the active tab for clear selection indication when custom colors are set

* Add workspace tab color schemes with settings and debug toggles

* Remove Kelly scheme and keep only original tab color palette

* Preserve neutral grayscale when brightening tab colors

* Harden UpdatePill UI test polling timeouts

---------

Co-authored-by: Andreas Fruth <andreas.fruth@gmail.com>
2026-02-22 17:30:30 -08:00
Lawrence Chen
c5c27b678f
Merge pull request #328 from manaflow-ai/task-window-local-shortcut-hints
Fix pane shortcut hints leaking across windows
2026-02-22 17:28:33 -08:00
Lawrence Chen
b7d49228b7 Fix pane shortcut hints to active window 2026-02-22 17:19:38 -08:00
Lawrence Chen
018554cc47
Fix theme toggle using system preference instead of selected theme (#326)
Tailwind v4 defaults dark: utilities to @media (prefers-color-scheme)
strategy. Add @custom-variant to use class-based dark mode matching
the next-themes ThemeProvider attribute="class" configuration.

Fixes https://github.com/manaflow-ai/cmux/issues/325
2026-02-22 17:10:11 -08:00
Lawrence Chen
1bc3edf75f
Merge pull request #321 from manaflow-ai/pr-316-head
Follow-up: sync customizable workspace shortcuts across UI
2026-02-22 17:04:07 -08:00
Lawrence Chen
c51a5bf7cf
Merge pull request #316 from 0xble/feat/rename-workspace-keybind
Add keyboard shortcut to rename current workspace
2026-02-22 17:00:19 -08:00
Lawrence Chen
61e4ad9f94 Annotate jump-to-unread shortcut in notifications view 2026-02-22 16:58:24 -08:00
Lawrence Chen
ebc1422c55
Merge pull request #323 from manaflow-ai/feat-cmdf-overlay-retain-cycle-fix
Fix terminal find overlay retain cycle
2026-02-22 16:35:58 -08:00
Lawrence Chen
72791f32bc Break terminal find overlay retain cycle 2026-02-22 16:29:35 -08:00
Lawrence Chen
26d44e84da
Fix changelog page rendering markdown links as raw text (#320)
The InlineCode component only handled backtick code spans but ignored
markdown links, causing PR/issue references to display as raw
[#N](url) text instead of clickable links. Rename to InlineMarkdown
and add link parsing to the split regex.
2026-02-22 16:24:59 -08:00
Lawrence Chen
07796232d7 Sync customizable shortcuts across menus and tooltips 2026-02-22 16:24:43 -08:00
Lawrence Chen
146de6030e
Merge pull request #313 from manaflow-ai/feat-terminal-find-overlay-portal
Fix terminal Cmd+F overlay visibility regression and add layering guardrails
2026-02-22 16:22:36 -08:00
Lawrence Chen
716a97420c
Add contributor credits to release skills (#319)
Release changelogs now credit contributors inline (Bun-style):
- Per-entry "thanks @user!" for community code contributions
- Per-entry "thanks @user for the report!" for bug reporters
- "Thanks to N contributors!" summary section at bottom of each release
- Core team (lawrencecchen, austinywang) excluded from per-entry callouts
2026-02-22 16:18:44 -08:00
Lawrence Chen
8cbb7ea119 Remove terminal overlay static contract CI check 2026-02-22 16:18:03 -08:00
Lawrence Chen
f7457055f1
Add sidebar metadata CLI subcommands and API docs (#305)
* Add sidebar metadata CLI subcommands and API docs

Expose set-status, clear-status, list-status, set-progress,
clear-progress, log, clear-log, list-log, and sidebar-state as
proper CLI subcommands with --help support and usage() listing.
Previously these only existed as raw socket commands.

Also adds a "Sidebar metadata commands" section to the docs site
API reference page.

* Quote multi-word values in socket command strings

Fix set-progress --label and log message forwarding to properly
quote values before sending to the socket tokenizer. Without
quoting, multi-word labels like "Build step one" would be split
into separate tokens. Also quote --source values for consistency.

* Fix socket quoting: escape backslashes and quote status values

Add socketQuote() helper that escapes both backslashes and double
quotes before wrapping in quotes. Apply it to:
- set-status value (prevents --flags in values being parsed as options)
- set-status --icon and --color values
- set-progress --label
- log --source and message text

Fixes values like "pytest --maxfail=1" or "C:\new\build" being
mangled by the socket tokenizer.

* Escape newlines in socketQuote to prevent socket framing breakage

The socket protocol uses newline as message terminator, so embedded
newlines/carriage returns in values would truncate the command.

* Parse flags before positionals in set-status, clear-status, set-progress

Fixes flags-first invocation like `cmux set-status --workspace workspace:2
build compiling` which previously grabbed `--workspace` as the key.
Now all flags are extracted first, then positional args are validated.
2026-02-22 16:06:32 -08:00
Brian Le
1824d1a8f1
feat(shortcuts): add rename-workspace keybind 2026-02-22 18:38:34 -05:00
Lawrence Chen
6d64ca938e
Add Reddit testimonial from u/afruth to wall of love (#314) 2026-02-22 15:37:22 -08:00
Lawrence Chen
34b203db3c
Merge pull request #312 from manaflow-ai/issue-310-cmd-plus-minus-zoom
Fix Cmd +/- browser zoom shortcuts
2026-02-22 15:34:44 -08:00
Lawrence Chen
04073f1fd8 Route terminal Cmd zoom shortcuts to Ghostty 2026-02-22 15:32:43 -08:00
Lawrence Chen
f366fb0b00 Fix terminal Cmd+F overlay layering and add regression guardrails 2026-02-22 15:25:30 -08:00
Lawrence Chen
d69bd66588 Fix Cmd +/- browser zoom shortcut matching 2026-02-22 15:13:49 -08:00
Lawrence Chen
1809b06867
Add Nick Schrock testimonial and subtitles to wall of love (#297)
* Add Nick Schrock testimonial and subtitles to wall of love

- Add Nick Schrock (@schrockn, Dagster Labs founder, GraphQL co-creator) testimonial
- Add subtitle field for notable contributors (Mitchell Hashimoto, Nick Schrock)
- Render subtitle in TestimonialCard between name and handle

* Add Nick Schrock profile photo

* Download avatar images to repo instead of hotlinking

* Show subtitle after name in attribution lines
2026-02-22 01:48:29 -08:00
Lawrence Chen
4ca14ea028
Merge pull request #299 from manaflow-ai/issue-296-access-control-modes
Add socket access control modes including password + full open access
2026-02-22 01:42:54 -08:00
Lawrence Chen
c7f10a7c44 Merge remote-tracking branch 'origin/main' into issue-296-access-control-modes 2026-02-22 01:37:45 -08:00
Lawrence Chen
ea87076fe4 Fix CLI exit code on v1 auth errors 2026-02-22 01:37:42 -08:00
Lawrence Chen
61c0cd0165
Merge pull request #300 from manaflow-ai/task-browser-view-open-link-default-browser
Browser View: add right-click open link in default browser
2026-02-22 01:26:53 -08:00
Lawrence Chen
959b5a849f Browser view: add context menu action to open link in default browser 2026-02-22 01:15:58 -08:00
Lawrence Chen
a205028b2e Strengthen socket access integration coverage
Make tests/test_socket_access.py deterministic across environments and add password-mode auth integration checks (v1 and v2).
2026-02-22 01:08:25 -08:00
Lawrence Chen
a168182f54 Merge remote-tracking branch 'origin/main' into issue-296-access-control-modes
# Conflicts:
#	CLI/cmux.swift
2026-02-22 01:01:08 -08:00
Lawrence Chen
18550e5d1f Add expanded socket access modes with password auth
Implements https://github.com/manaflow-ai/cmux/issues/296 with new modes: off, cmuxOnly, automation, password, and allowAll.

Adds keychain-backed password storage, connection-level auth gates (v1 auth + v2 auth.login), settings UX with warning confirmation, CLI --password support, and regression tests.
2026-02-22 00:55:14 -08:00
Lawrence Chen
57efdbd254
Merge pull request #298 from manaflow-ai/task-cmux-version-command
Add cmux --version command with regression test
2026-02-22 00:39:29 -08:00
Lawrence Chen
f184f882c0 Add CLI --version output and regression test 2026-02-22 00:16:01 -08:00
Lawrence Chen
4c733d4e8e
Add Cmd+Q quit warning with suppression toggle (#295) 2026-02-21 21:53:39 -08:00
Austin Wang
8f2a52fbf2
Fix stuck split resize cursor outside divider range (#291)
* Keep split dividers visible in tiny panes

* Fix collapsed split border resize hit-testing

* Stabilize sidebar and split divider resize routing

* Fix split divider resize cursor routing regressions

* Fix stuck split resize cursor outside divider range
2026-02-21 18:19:14 -08:00
Austin Wang
78fe5a9b04
Fix cmux border resize icon disappearing (#284)
* Keep split dividers visible in tiny panes

* Fix collapsed split border resize hit-testing

* Stabilize sidebar and split divider resize routing

* Fix split divider resize cursor routing regressions
2026-02-21 17:57:00 -08:00
Austin Wang
740b4b11e5
Deduplicate branch context lines by directory (#288) 2026-02-21 17:45:52 -08:00
Austin Wang
fb2ae855db
Light mode (#258) 2026-02-21 15:39:25 -08:00
Lawrence Chen
044c9ec3d4
Merge pull request #285 from manaflow-ai/task-22266155945-release-assets-guard-rerun
Make release asset guard idempotent for existing immutable assets
2026-02-21 15:32:34 -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
71d087db73
Prepare release v0.60.0 (#283)
Bump version to 0.60.0 (build 72) and add changelog entry
covering all changes since v0.59.0.
2026-02-21 15:09:19 -08:00
Lawrence Chen
19f6f9137e
Sync homepage features with README (#280)
* Sync homepage features with README

Add missing features: Notification panel, In-app browser, Ghostty
compatible. Update existing descriptions to match README (notification
rings, vertical tabs, socket API renamed to Scriptable).

* Shorten notification feature descriptions

* Remove Ghostty compatible from homepage features

* Move Vertical tabs to top of features list

* Remove Notification panel from homepage features

* Shorten Scriptable feature description

* Fix notification rings description: panes only
2026-02-21 06:36:19 -08:00
Lawrence Chen
14603bd9f8
Set community gap to 16px, add dingyi China tweet to blog post (#279)
- Fix community section gap (6px → 16px)
- Add dingyi tweet showing cmux went semi-viral in China
- Change "semi-viral in Japan" to "viral in Japan" + "semi-viral in China"
2026-02-21 06:26:55 -08:00
Lawrence Chen
64bb248f20
Replace blur placeholder with opacity fade-in on hero screenshot (#278) 2026-02-21 06:24:59 -08:00
Lawrence Chen
4f1d120d2e
Fix Show HN blog summary: hit #2, Mitchell Hashimoto, viral in Japan (#277) 2026-02-21 06:19:14 -08:00
Lawrence Chen
be9b994a79
Add homepage wall of love, FAQ, blog post, footer redesign, and SEO improvements
## Summary
- Add Community (testimonials) section to homepage with inline avatars
- Add FAQ section sourced from HN discussion questions
- Add hero screenshot with next/image optimization
- Add Show HN blog post with react-tweet embeds, star history chart, and HN quotes
- Redesign footer with 4-column grid layout (Product, Resources, Legal, Social)
- Add Download/GitHub CTA buttons at bottom of homepage and blog post
- Add dev spacing controls for features, FAQ, and community sections
- Fix hydration error (JSON-LD moved to head)
- SEO: full metadata on blog posts, robots.txt, blog pages in sitemap, canonical URLs
- Replace em dashes site-wide, fix notification descriptions

## Testing
- `bun tsc --noEmit` passes clean
- Dev server verified on port 3001

## Related
- Task: Add wall of love to main web page + landing screenshot
2026-02-21 06:16:38 -08:00
Lawrence Chen
8ac554fb06
Follow up PR 242: refresh browser under-page background on theme updates (#272)
* Address PR 242 follow-ups for titlebar and browser background

* Restore titlebar border per follow-up scope

* Refresh browser under-page color with Ghostty opacity

* Browser: theme blank page fallback for about:blank

* Browser: keep new tabs webview-less until first nav
2026-02-21 05:30:21 -08:00
Lawrence Chen
356a20e97a
Merge pull request #270 from manaflow-ai/task-cli-commands-off-main-thread
Reduce CLI workspace-creation UI lag and add socket timing logs
2026-02-21 05:09:27 -08:00
Lawrence Chen
645c7f76ea Start workspace command process before workspace is opened 2026-02-21 05:06:29 -08:00
Lawrence Chen
9653113920 Queue workspace command input before surface attach 2026-02-21 04:57:46 -08:00