cmux/web
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
..
app Add sidebar metadata CLI subcommands and API docs (#305) 2026-02-22 16:06:32 -08:00
public Add Nick Schrock testimonial and subtitles to wall of love (#297) 2026-02-22 01:48:29 -08:00
.gitignore Add landing page (web/) with Next.js + Tailwind 2026-02-09 20:51:27 -08:00
bun.lock Add homepage wall of love, FAQ, blog post, footer redesign, and SEO improvements 2026-02-21 06:16:38 -08:00
eslint.config.mjs Add landing page (web/) with Next.js + Tailwind 2026-02-09 20:51:27 -08:00
next.config.ts Remove docs-site, add PostHog analytics to web (#66) 2026-02-18 04:00:04 -08:00
package-lock.json Add homepage wall of love, FAQ, blog post, footer redesign, and SEO improvements 2026-02-21 06:16:38 -08:00
package.json Add homepage wall of love, FAQ, blog post, footer redesign, and SEO improvements 2026-02-21 06:16:38 -08:00
postcss.config.mjs Add landing page (web/) with Next.js + Tailwind 2026-02-09 20:51:27 -08:00
README.md Update landing page: switch to Bun, add view transitions and UI polish 2026-02-09 22:01:53 -08:00
tsconfig.json Add landing page (web/) with Next.js + Tailwind 2026-02-09 20:51:27 -08:00

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.