Skip to content

CmuxNext Cloud: the start's harness login decision calls Rust; the Swift copy and its tests go (step B) - #32403

Merged
teamleaderleo merged 3 commits into
feat-cmux-nextfrom
lane/cloud-startchat-rust-b
Nov 2, 2026
Merged

teamleaderleo merged 3 commits into
feat-cmux-nextfrom
lane/cloud-startchat-rust-b

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

Leo: "But why are there so many tests in Swift? It's Cloud code. Why is it not in Rust?" and "Why are there so many of these tests in the first place?"

What

Step B of the move #32305 started: the NEXT Cloud start's harness login decision is now Rust's, and the Swift copy and its tests go.

No behavior change: the Rust rules are a 1:1 port, checked case for case in #32305.

Takes back #31305: on purpose. Its decision rules (the team-guest allowance included) now live, unchanged, in Rust (cmux-cloud-start-core, #32305), and this Swift type calls them. The behavior is the same.

Tests

Observed / Not run

I ran the suite above and the pin check. I did not run the full CmuxNext suite locally; CI runs it.

Changelog

none

🤖 Generated with Claude Code

Agent session: agent session

teamleaderleo and others added 3 commits November 2, 2026 05:40
…tart-core; the Swift copy and its tests go (step B)

Re-pins CCmuxAppFFI to cmux-app-ffi-8b624259cf79 (#32305, which added
the cloud_harness_login* ops). CloudHarnessLoginDecision keeps what the
start knows and reads the step, the reason, readsMachine, guestTakesLogin,
skippedTeamMachine and the record line from the Rust rules in one FFI call;
loginProvider, the vm-kind probe and its parse are FFI calls too. An FFI
that does not answer skips the login with reason ffi-failed (never silent).

CloudStartChatLoginTests drops its six decision tests (the Rust crate's
10 cargo tests cover every case) for one bridge test; the build gate's
UserDefaults tests stay, since that read stays in Swift.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-548f18c0a6d1ebb48240
…, which also carries #32305's ops)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-548f18c0a6d1ebb48240
@teamleaderleo teamleaderleo added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 2, 2026
@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

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

Review a6b1903: 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=pr32403 -f ref=lane/cloud-startchat-rust-b -f platform=macos -f backend_mode=local

Shipped in:

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex, router-review): SHIP at a6b1903

Reviewer: codex gpt-6-astra high, fast tier.

Follow-ups: 1. Each lands as an issue in this repo that links this receipt; the lane that opened the PR fixes it forward.

SHIP at a6b1903

Visual verdict: no images; Leo tries the build

  1. [P2] [follow-up] FFI failures are indistinguishable from valid nil results. loginProvider returns nil for both unsupported harnesses and failed calls, while guestKind and guestKindProbe similarly convert failures into normal “no transfer”/“guest unread” behavior (CloudHarnessLoginDecision.swift:89, CloudHarnessLoginDecision.swift:97, CloudHarnessLoginDecision.swift:104). Propagate a distinct FFI failure so the promised ffi-failed record is preserved.

Follow-ups:

  • FFI helper failures should preserve the ffi-failed reason.

@cmux-bot cmux-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cmux-bot approves a6b1903: an independent review passed this exact head (router-review receipt by teamleaderleo). A push needs a new review; a later BLOCK at this head dismisses this approval.

@teamleaderleo
teamleaderleo merged commit 9ad0334 into feat-cmux-next Nov 2, 2026
201 of 220 checks passed
@teamleaderleo
teamleaderleo deleted the lane/cloud-startchat-rust-b branch November 2, 2026 15:29

This branch was previously deployed

1 inactive deployment
ci-routing-agent — a6b1903b Deployed Nov 2, 2026 by teamleaderleo via namespace autofix #12509
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.

1 participant