* Add customizable notification sound setting
Adds a "Notification Sound" picker in Settings > App that lets users
choose from macOS system sounds (Default, Basso, Blow, Glass, etc.)
or silence notifications entirely with "None".
Closes https://github.com/manaflow-ai/cmux/issues/608
* Add custom notification command with env vars and sound preview
Users can set a shell command in Settings > App > Notification Command
that runs on every notification. CMUX_NOTIFICATION_TITLE,
CMUX_NOTIFICATION_SUBTITLE, and CMUX_NOTIFICATION_BODY env vars are
set. Also adds a play button to preview system sounds and docs.
* Redesign changelog page with feature highlights and visual hierarchy
Major releases now show narrative summaries, feature highlight cards
(with image support for screenshots), colored section badges, and
contributor avatars. Minor releases stay compact. Adds changelog-media.ts
as a supplementary data layer alongside CHANGELOG.md.
* Use Next.js Image for optimized loading and GitHub avatar remotes
* Add screenshots for Open With and Tab Colors features
* Add workspace metadata screenshot
* Switch to single-column inline layout, add command palette screenshot
* Conductor-style titles, narrower body, narrative descriptions, reorder features
* Add pin workspace and tab context menu screenshots, remove subtitle
* Add View Changelog link to front page, add DevTools to 0.60.0
* Add CJK input screenshot to 0.60.0
* Read real PNG dimensions at build time, add proper sizes attribute
* Fix image overflow: wrap in overflow-hidden container, add max-w-full
* Fix CSS cascade: move docs-content styles into @layer base
Unlayered CSS beats @layer utilities in the cascade, so .docs-content
rules (margins, padding, list-style) were overriding Tailwind utilities
on ul, li, h2 elements in the changelog page. Moving them into
@layer base lets utilities win without needing !important hacks.
* Switch docs-content spacing from margin to padding
Margins were collapsing and conflicting with Tailwind layout utilities
in the changelog. Padding doesn't collapse and can't interfere with
external spacing set by parent containers.
* Fix changelog layout: use flex column + inline styles for all spacing
Block layout was collapsing when articles had media content (h2, feature
divs, section divs all rendered at the same position). Switching to
display:flex + flex-direction:column on articles and using inline styles
for all spacing guarantees proper vertical stacking regardless of
docs-content CSS interference.
* Remove border from changelog images
* Replace devtools screenshot with cmux inspecting cmux.dev
* Add browser automation docs page (#594)
Comprehensive reference for all cmux browser subcommands: navigation,
waiting, DOM interaction, inspection, JS eval, state management,
tabs, dialogs, frames, and downloads. Includes common patterns section.
* Remove unnecessary callout from browser automation docs
* Add "Read the Docs" link below bottom CTA on homepage
* Increase top padding on Read the Docs link
* Reduce docs horizontal padding on mobile
* Align docs content with header on mobile, increase top padding
* Make sticky header fully opaque with subtle bottom border
* Fix sticky header on mobile by containing horizontal overflow in content area
Wide content (hierarchy diagrams, code blocks) was causing horizontal
page scroll, which breaks position:sticky on mobile browsers. Added
overflow-x:hidden to the main content area (below the header in DOM)
and overflow-x:auto to docs pre blocks so they scroll internally.
* Remove bottom border from sticky header
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.
* 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.
Bump navbar, docs, legal, and community layouts from max-w-5xl to
max-w-6xl. Widen docs content from max-w-2xl to max-w-3xl. Home and
blog pages unchanged. Disable next-themes transition on change.
- Overlay covers entire viewport (inset-0 z-40) including header
- Drawer at z-50 spans full height with its own header row
- Duplicate theme toggle + close (X) button inside drawer
- Docs sidebar/FAB bumped to z-50 to stay above overlay
Extract drawer logic (overlay, focus trap, scroll lock, escape key)
from DocsNav into shared mobile-drawer.tsx hook and components.
SiteHeader now shows a hamburger menu on mobile that opens a
right-side drawer with nav links and download button. Footer
wraps gracefully on small screens.