Skip to content

fix(cli): list browser JSON flags in help - #16098

Merged
teamleaderleo merged 1 commit into
manaflow-ai:mainfrom
nightcityblade:fix/issue-15690
Oct 1, 2026
Merged

teamleaderleo merged 1 commit into
manaflow-ai:mainfrom
nightcityblade:fix/issue-15690

Conversation

@nightcityblade

@nightcityblade nightcityblade commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

cmux browser --help omitted existing structured-output options, so users could not discover them from detailed help. It now lists --json for screenshot and download list, aligns task help, and adds executable no-socket contract probes.

Fixes #15690

Testing

  • python3 scripts/verify-local.py --affected upstream/main — passed the selected feature-flag policy check.
  • python3 scripts/verify-local.py --only swift-syntax --swift-changed upstream/main — passed for both changed Swift files.
  • python3 Tests/test_cmux_browser_skill.py — 12 tests passed.
  • python3 scripts/localization_catalog.py check — 3 catalogs and 9 locales checked with 0 parity errors.
  • ./scripts/localize-changes --base upstream/main found 0 new or changed localization keys and 0 changed web messages. Manual review confirmed the only new user-facing token is the invariant --json flag; the tool reports manual attention for pre-existing interpolated and escaped default values in the enclosing help literal.
  • The built-CLI runtime probe was not run locally because no built cmux CLI was available. The updated no-socket probes run in CLI product CI.

Changelog

Fixed CLI help to list browser JSON flags.

Demo Video

N/A — help-text-only change.

  • Video URL or attachment: N/A

Checklist

  • Behavior changes have added or updated tests, or Testing says why not
  • UI, settings, menu, schema, help-text or user-facing docs change: localization audited, and the result is stated above
  • New or changed v2 socket method allowlisted for cmux ssh: the relay authorization questions are answered above — N/A; no socket method changed
  • iOS connectivity, auth, lifecycle, workspace action, terminal I/O or mobile RPC contract change: deterministic soak coverage updated, or explained why existing coverage still applies, with the affected workload result recorded — N/A; no iOS behavior changed
  • User-facing docs updated if needed
  • Reviewed with a subagent before merge (cmux-review), and all bot and human review comments resolved

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


Summary by cubic

Makes cmux browser --help list the --json structured-output flag for screenshot and download list.

  • Aligns the task help text and adds the new flags to the CLI contract docs.
  • Adds no-socket contract probes for the updated help output.

Written for commit f24ec72. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • Documentation
    • Updated browser CLI help to show --json for screenshot and download list commands, without listing it for download wait.
    • Updated the CLI contract documentation to reflect the screenshot usage line and JSON option in download list help.

@cursor

cursor Bot commented Sep 30, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@coderabbitai

coderabbitai Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 360fb2df-ac57-47fb-b8a9-3caa0e69566b

📥 Commits

Reviewing files that changed from the base of the PR and between 0fcbc54 and f24ec72.

📒 Files selected for processing (3)
  • CLI/CMUXCLI+TaskHelp.swift
  • CLI/cmux.swift
  • docs/cli-contract.md

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review.


📝 Walkthrough

Walkthrough

The browser CLI help now lists --json for screenshot and download list. The CLI contract probe checks these help entries.

Changes

Browser CLI help

Layer / File(s) Summary
Document JSON options in browser help
CLI/cmux.swift, CLI/CMUXCLI+TaskHelp.swift, docs/cli-contract.md
Detailed and task help list the JSON options for screenshot and download list. The CLI contract probe checks the updated help output.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~6 minutes

Change: Bug fix · Severity of issue fixed: Low

Suggested reviewers: teamleaderleo

Merge Risk: ⚪ Minimal · up to f24ec

The added options are supported by the browser commands, and the help checks cover their documented usage. No actionable merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 25
✅ Passed checks (25 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The PR satisfies the coding requirements in [#15690]. CLI/cmux.swift now lists --json for screenshot and download list in detailed browser help. CLI/CMUXCLI+TaskHelp.swift now lists --json…
Out of Scope Changes check ✅ Passed The diff changes only browser help text and the related CLI contract probes. Each change directly supports [#15690]. The PR does not modify browser behavior or address the excluded screenshot output b…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Cmux Cloud Persistent Session And Early Input ✅ Passed PASS: The pull request changes only browser help text and CLI contract documentation in three files. The diff introduces no Cloud terminal creation, persistent cmux-tui transport, renderer gating, inp…
Cmux Swift Actor Isolation ✅ Passed PASS: The PR changes only three help-text string lines in Swift and two contract-documentation lines. The authoritative diff adds --json to existing browser help text; it adds no structs, classes, p…
Cmux Swift Blocking Runtime ✅ Passed The pull request changes only Swift help-text string literals in CLI/CMUXCLI+TaskHelp.swift and CLI/cmux.swift, plus docs/cli-contract.md. The diff introduces no semaphores, blocking waits, slee…
Cmux Browser Automation Off-Main ✅ Passed PASS. The PR changes only help text and no-socket CLI contract probes in CLI/CMUXCLI+TaskHelp.swift, CLI/cmux.swift, and docs/cli-contract.md. It does not change `Sources/TerminalController.swif…
Cmux Expensive Synchronous Load ✅ Passed The PR changes only help-text strings and CLI contract probe text. The authoritative diff adds --json to browser screenshot/download-list usage lines and does not add or move any synchronous agent-h…
Cmux Cache Substitution Correctness ✅ Passed PASS: The pull request changes only Swift help-text literals and CLI contract documentation. The diff adds --json to browser screenshot and download-list usage lines; it does not replace any authori…
Cmux No Hacky Sleeps ✅ Passed PASS. The review-scoped diff changes only Swift help strings and Markdown contract documentation. It introduces no TypeScript, JavaScript, shell, or build/runtime-script changes, and it adds no sleeps…
Cmux Algorithmic Complexity ✅ Passed The pull request changes only Swift help-text string literals and matching CLI contract documentation. The diff adds --json to existing usage lines and adds one probe line; it introduces no loops, c…
Cmux Swift Concurrency ✅ Passed PASS: The PR changes only browser help string literals in the two Swift files and contract documentation. The authoritative diff adds no Dispatch, Combine, completion-handler, or fire-and-forget Task …
Cmux Swift @Concurrent ✅ Passed PASS: The PR changes only synchronous help-text string literals in CLI/CMUXCLI+TaskHelp.swift and CLI/cmux.swift. The Swift diff adds no async, await, nonisolated, @concurrent, actor isola…
Cmux Swift Package Boundaries ✅ Passed PASS — The authoritative diff changes only CLI help string literals in CLI/cmux.swift and CLI/CMUXCLI+TaskHelp.swift, plus matching contract documentation. It adds no independently testable or reu…
Cmux Swiftpm Lockfiles ✅ Passed PASS: The PR changes only CLI/CMUXCLI+TaskHelp.swift, CLI/cmux.swift, and docs/cli-contract.md. It does not change a Package.swift, Package.resolved, .gitignore, workflow, Xcode project, o…
Cmux Swift Logging ✅ Passed The Swift diff only changes user-facing CLI help strings. It adds --json to browser screenshot and download-list usage text. It adds no print, debugPrint, dump, NSLog, ad hoc diagnostics, Lo…
Cmux User-Facing Error Privacy ✅ Passed PASS. The changed text reaches users through cmux browser --help and task help, but it only adds the existing --json flag and path/limit syntax. It exposes no vendor names, provider details, secre…
Cmux Full Internationalization ✅ Passed PASS. The diff adds only the exact CLI option token --json to existing browser help usage lines in CLI/CMUXCLI+TaskHelp.swift and CLI/cmux.swift. Command-line tokens are explicitly allowed by th…
Cmux Swiftui State Layout ✅ Passed PASS. The PR changes only CLI help-string literals in CLI/CMUXCLI+TaskHelp.swift and CLI/cmux.swift, plus contract documentation. The diff adds --json text only. It introduces no SwiftUI view, s…
Cmux Architecture Rethink ✅ Passed PASS: The pull request changes only three help-text/contract lines in two Swift string literals and one Markdown probe. It adds --json to existing screenshot and download list usage text. The di…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PASS. The PR changes only CLI help-string text in CLI/CMUXCLI+TaskHelp.swift and CLI/cmux.swift, plus docs/cli-contract.md. The added Swift lines only document --json; they do not add or mater…
Cmux Source Artifacts ✅ Passed The PR changes only two hand-written Swift help sources (CLI/CMUXCLI+TaskHelp.swift, CLI/cmux.swift) and the durable CLI contract documentation (docs/cli-contract.md). The diff contains only hel…
Cmux No Test Or Debug Seam In Production Source ✅ Passed PASS: The authoritative PR diff changes only CLI/CMUXCLI+TaskHelp.swift, CLI/cmux.swift, and docs/cli-contract.md. The Swift files are not under any **/Sources/** production path, and the chan…
Title check ✅ Passed The title clearly and concisely describes the main change: documenting browser JSON flags in CLI help.
Description check ✅ Passed The description includes the required Summary, Testing, Changelog, Demo Video, and Checklist sections. It explains the behavior change, records test results and the known unverified runtime probe, and…
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cursor

cursor Bot commented Sep 30, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@teamleaderleo

teamleaderleo commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

Thanks @nightcityblade, this CLI help fix is good to merge once the approved CI is green. The JSON flags now match the existing no-socket contract probes. :)

@teamleaderleo
teamleaderleo merged commit 73ae480 into manaflow-ai:main Oct 1, 2026
68 checks passed
@teamleaderleo

Copy link
Copy Markdown
Collaborator

Merged, thank you @nightcityblade! Browser CLI help now lists the existing JSON flags consistently so users can discover machine-readable output :)

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Merge receipt for f24ec720a2: every check was green at merge (15 verified; 17 skipped by policy). Full suite runs on main after merge.

rustybret pushed a commit to rustybret/bmux that referenced this pull request Oct 1, 2026
877df6f docs: add Kiro and Hermes to Feed matrix (manaflow-ai#16106)
b5aa76c Re-land Cloud machine stale status punctuation (manaflow-ai#16010)
4fdd903 Merge pull request manaflow-ai#15345 from manaflow-ai/fix-v2-startup-local-route-impl
73ae480 fix(cli): list browser JSON flags in help (manaflow-ai#16098)
2bb742d fix(agents): preserve HTML-like Codex auto-naming messages (manaflow-ai#15984)
0d1b8dd fix(web): restore the seats-follow-membership copy the dashboard port dropped (manaflow-ai#16265)
be10c64 fix: recover interrupted Cloud vm run creates (manaflow-ai#16221)
28742a8 docs: document agent session recovery command (manaflow-ai#16108)
bcaf5e4 test: resolve the temp root before comparing rerun xcconfig paths (manaflow-ai#16372)
86230a5 Add built-in custom sidebar templates (manaflow-ai#15931)
5ccac53 fix(session): discard persisted listening ports on restore (manaflow-ai#12436)
882b6fc fix(flags): extend the fourteen reviewBy dates that expire on 2026-10-02 (manaflow-ai#15922)
45914ae docs: document Kimi session restore (manaflow-ai#16107)
2f574d6 Treat aborted Codex turns as terminal monitor events
f59f37d Remove stale Cloud reorder indicator on cleanup
eba8488 Fix drag cleanup and message inbox fixture
0d2b312 Include CLI error type in CLI tests
5955b67 Include CLI error type in app target
94acff9 Repair stale macOS test compile references
0117647 Fix isolated test window geometry cleanup
4b7b837 Fix canonical identity and accent color compile errors
538aaf6 Normalize instance tags and fix browser restoration compile
2c33e92 Fix post-merge compile blockers
5ea8219 Merge remote-tracking branch 'origin/main' into fix-v2-startup-local-route-impl
825e0d3 Fail closed when release gate V2 origin is unset
c21b0a8 Publish warmup recovery and preserve workspace IDs
f66904b Allow full relay rollover soak to finish
2ca91b5 Harden forget cleanup and Codex iteration proof
b908dde Bound endpoint warmup retries and retry on foreground
859ca92 Retry endpoint warmup after transient failures
97e5a7f Cancel timed out endpoint warmup
c5caca7 Serialize snapshot encoding in persistence actor
c589ff8 Bound Codex workload log polling
40aa04e Harden startup identity cache and snapshot invalidation
f06f502 Use shared deadline scheduler for endpoint warmup
2fa7297 Validate combined host status before reuse
5386126 Scope paired Mac cache before reconnect reuse
a34c7ee Bound endpoint warmup timeout independently of cancellation
b834f86 Bound cached endpoint warmup and diagnostics
00959bf Revalidate scope after cached snapshot restore
1b444a0 Keep attach tickets in memory during retries
6985f9e Repair cached runtime reconciliation and warmup retries
08c8047 Make explicit snapshot deletion win races
4c78ecf Preserve v2 runtime ownership through auth and soak
b1f7a18 Await workspace snapshot removal
0583749 Move snapshot restore off the main actor
7ea8285 Persist workspace snapshots off the main actor
07f7c13 Bound snapshot maintenance and relay gate timing
6b68c8c Keep real usage terminals available for verification
2f5c012 Normalize hidden Mac snapshot identities
5c5388e Stabilize real usage release gate lifecycle
344cac1 fix: bound cached startup and redact snapshots
1ce9bc8 fix: preserve and prune cached workspace snapshots
1887e53 fix: close release gate workload hazards
27fba71 Merge main (0398322) into fix-v2-startup-local-route-impl
d9724bc test: compile the vm ready poll policy into cmuxCLITests
beadd57 test: drive hook state recovery through the bundled CLI
c3b97e1 Use shared queue drain helper after compile repair
a11fc3c test: restore cmuxTests compile on main
c5a9d15 Keep close tab test queue drain compatible with main
07b9624 Hit test the measured text line in inline link regression
6c9f137 Merge main (a66a8bb) into fix-v2-startup-local-route-impl
4cbdeea Measure inline link view before hit testing
82618ef Await actor epoch during cached warmup
59cbda2 Fix cached endpoint warmup self lifetime
a06061a Keep release gate on approved runner route
1c10a44 Leave staging gate outside protected environments
8c4cfb5 Use staging environment for staging release gates
1db5b80 Pin manual gate to an available trusted Mac
b934ccf Route manual gate through selected owned pool
9ecd5aa Allow trusted owned runner for manual gate
5afde77 Use supported hosted macOS label for manual gate
2359026 Allow hosted runner for manual Iroh acceptance gate
01b0f64 Make release-gate evidence durable and ordered
c7cb704 Bind real-use replay to the requested workspace
5bd6005 Require real Codex workload evidence
35c7723 Measure app-side foreground readiness
e52cb3e Recover backup pairing when only demo row is cached
849ed89 Harden v2 startup state and workspace targeting
02bb470 Bind iOS e2e checks to the Codex workspace
76178d0 Document complete iOS e2e driver contract
908e2ee Merge green main into v2 startup branch
185be6c Make iOS e2e driver open a workspace
45f19d0 Keep IROH gate independent of Ghostty helper fetches
5f67eea Allow full relay gate to publish its verdict
9574395 Measure release gate rows at UIKit visibility
f3928a3 fix: persist every complete workspace snapshot
c5cb772 fix: measure cached workspace rows before Iroh readiness
c84fb67 ci: install axe before iOS Iroh gate
451933a Retain foreground state during snapshot reconciliation
eb1aa35 Preserve local demo workspace ownership
14dc577 Upload real Iroh usage evidence
41659c1 Add real Codex and background coverage to Iroh gate
5696ef1 Close workspace snapshot scope races
cb9d421 Prevent stale workspace snapshots from resurfacing
4f7f4b5 Restore scoped workspace snapshots before paired Mac load
a93af42 Give real relay gate cleanup time
61a88a2 Fix workspace snapshot initializer ordering
8bc596e Verify relay renewal at its real lifetime
99ca1d8 Cache scoped workspace rows during v2 startup
5aeab39 Enforce sub-2.5-second workspace startup gate
4fe8ac5 Warm cached v2 state before auth bootstrap
bf90a77 fix mobile attach parsing with CLI diagnostics
f7db0fa Merge remote-tracking branch 'origin/main' into fix-v2-startup-local-route-impl
1a91f7c test: keep workspace creation override signatures current
db62464 test: pass remote workspace flag through overrides
241ba19 test: avoid asserting startup cache implementation details
1e87a6e fix simulator launch environment propagation
6a17189 fix: keep release gate on workspace list
fa8f1c1 fix: retry stored Mac after auth restore
2bbb2ef fix: remove merge artifact from mobile shell
0ba4041 Merge remote-tracking branch 'origin/main' into fix-v2-startup-local-route-impl
2b64a40 test: preserve simulator startup diagnostics in release gates
73bd646 fix: avoid speculative duplicate Iroh dials
814ebe7 perf: reuse hydrated pairing cache during startup
27c401b Revert "perf: publish startup workspace rows before pairing persistence"
c146010 perf: publish startup workspace rows before pairing persistence
582713d fix: drain parallel iroh preconnect task
b980721 perf: preconnect iroh before first authenticated request
a396428 fix: use v2 identity for combined host status
5901f7d test: preserve admitted identity in combined startup status
5c504e8 fix: match cached host status in combined workspace response
9fac2b6 perf: build combined host proof from live service
0cf1b27 perf: combine startup workspace and host status
1ece6fc test: persist onboarding before cached launch
6372c0c test: measure cached pairing release-gate startup
73bc8cf test: reject injected credentials during cached startup verification
792a561 Revert "perf: reuse hydrated pairing snapshot during startup"
c9a6b58 Revert "perf: start cached pairing dial during startup hydration"
93d0db5 Revert "fix: bind optional cached pairing row correctly"
12ef215 fix: bind optional cached pairing row correctly
16cd25d perf: start cached pairing dial during startup hydration
d8a9c75 perf: reuse hydrated pairing snapshot during startup
4f6f58b fix: dial cached route before startup backup refresh
7814fd2 test: prove startup dials during backup refresh

# Conflicts:
#	.github/workflows/iroh-release-gate.yml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Detailed browser help omits JSON options for screenshot and download list

2 participants