Skip to content

cmux NEXT: a hosted cloud Chief's settings card reads and sets its model and effort - #22602

Merged
teamleaderleo merged 27 commits into
feat-cmux-nextfrom
feat-cmux-next-chief-hosted-settings
Oct 21, 2026
Merged

teamleaderleo merged 27 commits into
feat-cmux-nextfrom
feat-cmux-next-chief-hosted-settings

Conversation

@austinywang

@austinywang austinywang commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Summary

When you create a new Chief in cmux NEXT Home, it runs in the cloud. Its settings card said "Runs in the cloud", then showed a red "The server with this Chief is not connected.", and the Harness, Model and Effort pickers were empty. The card was looking for a paired server through its brain_place. A hosted Chief has no brain_place, so no server was ever found.

  • HomeChiefHostedEngine (CmuxNextHomeEngine) reads and sets model and effort through the hosted brain's own route (GET/PUT v1/chiefs/<agent>/brain). It offers the models and efforts that route accepts (Opus, Sonnet and Haiku 5.5; efforts off through max). The Harness row is hidden because the hosted brain runs a single engine. "Default" sets the brain's own default, because the route cannot clear a field.
  • HomeChiefControl.engineSource() picks it for a cloud Chief that no paired server runs. Chiefs placed on a paired server stay on HomeChiefRemoteEngine. The placement comes from the Chief tab's Chiefs or from the directory (brain_place is now parsed into HomeChiefRecord), and the card picks its source again when the list answers.
  • Error messages now describe the real problem: signed out, cloud not reachable, or this cloud runs no Chiefs, instead of "the server ... not connected". A hosted brain that is off says it does not answer messages.
  • Stop on a hosted Chief no longer claims there is a server. The cloud has no stop route for a hosted turn yet, so it returns cloudStopUnsupported.
  • Reply path: New Chief created the Chief with its brain off. The brain starts off (chief-brain configure), and nothing turned it on except the default Hosted Chief's own migration, so a new Chief never answered. createCloudChief now turns on the new Chief's brain, when this service runs Chief brains.
  • New strings are localized in Home.xcstrings (21 locales).

Changelog

Fixed: A new Chief's settings now show and change its model and effort. A new Chief now answers messages.

Tests

HomeChiefHostedSettingsTests (CmuxNextAppTests) covers:

  • source selection: hosted, placed and local
  • Stop on a hosted Chief
  • the card over a fake brain route: GET mapping, PUT body, Default, refusal, signed out, offline, brain off

On the base these tests do not compile, because the API they test does not exist there, so there is no separate red run. Results are posted in a PR comment.

Observed / Not run

  • Observed: prepush-gate.py passes, lint-ios-package-conventions.sh passes, and localization_catalog.py check adds no new parity errors.
  • Not run yet: the compile and tests on the fleet, and the tagged dev build. Results follow in comments.
  • Already-created Chiefs whose brain is off stay off. The card now says so, but nothing turns them on.

🤖 Generated with Claude Code


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


Summary by cubic

Fixes the hosted cloud Chief's settings card so it reads and sets model and effort through the Cloud brain route, and new Chiefs now answer after creation.

  • A hosted Chief (no brain_place) uses the Cloud brain route; a Chief placed on a paired server keeps its server route, and the card hides the Harness row.
  • Errors now match the real state (signed out, cloud unreachable, cloud runs no Chiefs, brain off) instead of claiming a server is not connected.
  • Stop on a hosted Chief returns a cloud-specific unsupported message.
  • Creating a Chief now turns its brain on, since a new Chief's brain starts off and otherwise never answers.
  • "Default" sets the brain's own default because the route cannot clear a field.

Written for commit 6f0f3f5. Summary will update on new commits.

View guided diff Turn on auto-fix

…ffort through the Cloud brain route

A new Chief runs in the Cloud service's brain (no brain_place), but the Chief
card looked for the paired server its brain is placed on, so it said "The
server with this Chief is not connected." and its pickers stayed empty.

- HomeChiefHostedEngine (CmuxNextHomeEngine): GET/PUT v1/chiefs/<agent>/brain,
  offering the models and efforts the route takes; no Harness row.
- HomeChiefControl picks it for a cloud Chief no server runs; placed Chiefs keep
  HomeChiefRemoteEngine. Stop on a hosted Chief no longer claims a server.
- Honest errors: signed out, cloud unreachable, cloud runs no Chiefs; a brain
  that is off says so.
- New Chief turns on the new Chief's brain (it starts off and never answered).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 6f0f3f5: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr22602 -f ref=feat-cmux-next-chief-hosted-settings -f platform=macos -f backend_mode=local

Not verified: macOS jobs did not run: compile and app tests were skipped on 6f0f3f5cc5; ci-status is green without them.

CI passes on 6f0f3f5cc5 (run 39537415727 attempt 1).
macOS jobs did not run: compile and app tests were skipped: Fast static checks skipped (the macos job needs both to succeed). Re-run CI once they pass, before merging.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

web and size checks: green

Tour of 6f0f3f5cc5 (run): no media. The tour job failed before the tour ran (build or setup); the run log has the output. Both apps run cmux-tui from 51338c0 (tree 946551338957): the merge base's own tree 0734d524797d was not published yet.

@teamleaderleo

Copy link
Copy Markdown
Collaborator

Bead cx-4wle9 created for this PR by the cmux coordinator.

austinywang and others added 2 commits October 20, 2026 14:30
…the protocol is

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ings' into feat-cmux-next-chief-hosted-settings
@teamleaderleo

Copy link
Copy Markdown
Collaborator

cmux-next guards / defaults-snapshot is red on 14 of 14 fresh feat-cmux-next PR heads in the last 2:00:00, so it is most likely a base red, not this PR's. The base-reds lane has it; a base merge picks up the fix once it lands.

@cursor

cursor Bot commented Oct 20, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@blacksmith-sh

This comment has been minimized.

@cursor

cursor Bot commented Oct 21, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@blacksmith-sh

This comment has been minimized.

@blacksmith-sh

This comment has been minimized.

@blacksmith-sh

This comment has been minimized.

@cursor

cursor Bot commented Oct 21, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@blacksmith-sh

This comment has been minimized.

@cursor

cursor Bot commented Oct 21, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@teamleaderleo

Copy link
Copy Markdown
Collaborator

owner: 01a15c01

…tedChief, so CmuxNextApp does not grow

HomeChiefRecord and its chief.list parsing move out of HomeDirectory; the hosted-or-placed lookup is HomeCloudChiefs.placement(of:records:). CmuxNextApp source lines: +0 against the base (was +24, the size cap's red). A test covers a Chief the directory lists before the Chief tab does.

Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15c01-a495-7013-b37d-abe71de99881&host=cosmic-gray
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cursor

cursor Bot commented Oct 21, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@blacksmith-sh

blacksmith-sh Bot commented Oct 21, 2026

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

Failure

Test View Logs
test_the_repository_highlights_validate (main.DigestTests.test_the_repository_highl
ights_validate)/
test_the_repository_highlights_validate (main.DigestTests.test_the_repository_highl
ights_validate)
View Logs

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

@teamleaderleo

Copy link
Copy Markdown
Collaborator

Adopted (orphaned). 6f0f3f5 fixes this PR's own red, the CmuxNextApp size cap. It was +24 source lines and is now +0: HomeChiefRecord and its chief.list parsing move to CmuxNextHostedChief, and HomeCloudChiefs.placement(of:records:) gives the hosted-or-placed answer. A new test covers a Chief that chief.list lists before the Chief tab does.

Independent review: passed. Low findings, left for follow-ups:

  • A failed brain enable on New Chief is only logged.
  • A non-main cloud conversation counts as hosted.
  • The hosted card ignores turns_today.
  • A refresh can land after a pick. This one is older than this PR.

Reds on 6f0f3f5 that are not this PR's:

  • release-notary: base highlight links-open-in-their-pane.md.
  • defaults-snapshot: the base settings exports are stale. This PR changes no CmuxNextSettings file.
  • Guard status: wrapper over the two above.

Agent session: cosmic-gray

@teamleaderleo
teamleaderleo merged commit 69b018a into feat-cmux-next Oct 21, 2026
@teamleaderleo
teamleaderleo deleted the feat-cmux-next-chief-hosted-settings branch October 21, 2026 03:19
@github-actions

Copy link
Copy Markdown
Contributor

Shipped in:

@github-actions

Copy link
Copy Markdown
Contributor

Shipped in:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants