Skip to content

mobile host: enforce identical trust checks for canonical forks - #27347

Merged
teamleaderleo merged 5 commits into
feat-cmux-nextfrom
lane/hb-fork-mobile-alias
Oct 29, 2026
Merged

teamleaderleo merged 5 commits into
feat-cmux-nextfrom
lane/hb-fork-mobile-alias

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

This mobile-host trust classification change gives acp.session.fork the same current-mode check and per-phone Full-access marking as session/fork. The daemon now preserves the narrowing requireFullAccess marker through live and completed-turn normalization, so a phone with Full access off cannot lose that restriction before authorization. This only tightens enforcement; authenticated device identity and its stored setting remain authoritative.

Requested prerequisite for Edit and Resend. Leo: "well i just think we can improve it a f***ton more than it is now... it's slow it's bad it belabours the point in too many tooltips it's ugly in places it doesn't even work in places there's lots of functionality that needs to get in"

Audit: acp.session.fork is the sole acp.* alias of a listed session/* control method. No aliases exist for session/prompt, session/load or session/resume. The overlap audit found no competing fix; desktop edit/resend PRs #19470/#19679/#20318/#18754/#19565 are merged, and unrelated iOS #27286/#27314 are untouched.

Validation:

  • Mobile regression red: run 40846968792, test-only commit b33f189: compile passed, six existing tests passed, alias test failed on acp.session.fork.
  • Daemon regression red: run 40852403033, test-only commit 52a88bf: compile passed, canonical live fork lost the restriction and failed the expected remote.full_access_required assertion. This shared prerequisite regression also covers additional boundaries in the follow-up; the live-marker failure is identical here.
  • Final green: run 40854101642 at 77bc4f0: acpmux daemon guard regression 1/1 and mobile policy 7/7, both crates compiled. Commands: cargo test --manifest-path cmux-tui/Cargo.toml -p acpmux --test remote_guard_codex_bridge canonical_fork_boundaries_keep_the_phones_full_access_requirement and cargo test --manifest-path cmux-next-ios/rust/Cargo.toml -p cmux-mobile-host acpmux_policy::tests --lib.
  • Independent Codex gpt-6-astra high/fast review: SHIP at 77bc4f0; no correctness findings.

Risk: a canonical fork from a non-asking chat now receives the intended refusal when that phone lacks Full access. Regression checks use real daemon dispatch and assert no child creation and unchanged source events.

Observed / Not run

Observed: remote red/green tests and compile; formatting and diff checks; static independent review. No UI change or capture needed. Successful marked forks and running source sessions have no new dedicated coverage. No local builds or tests were run.

Agent session: agent session

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 29, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-3rsdf8 created for this PR by the cmux coordinator.

@blacksmith-sh

blacksmith-sh Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

Failure

Test View Logs
test_live_raw_v12_layout_and_history_contracts_are_exact (test_ir.IrTests.test_live_raw
_v12_layout_and_history_contracts_are_exact) (command='new-pane-right')/
test_live_raw_v12_layout_and_history_contracts_are_exact (test_ir.IrTests.test_live_raw
_v12_layout_and_history_contracts_are_exact) (command='new-pane-right')
View Logs

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

@github-actions

github-actions Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

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

Review 8f79353: 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=pr27347 -f ref=lane/hb-fork-mobile-alias -f platform=macos -f backend_mode=local

red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on e7ab659 to compare; do not merge until green; see lane-rules

@teamleaderleo teamleaderleo changed the title mobile host: classify canonical fork as session control mobile host: enforce identical trust checks for canonical forks Oct 29, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (Codex gpt-6-astra, high/fast): SHIP at 77bc4f0.

Independent review found no correctness defects: both fork names receive identical mobile controls, live/throughSeq normalization preserves requireFullAccess, and authorization remains tied to the authenticated device and stored setting. Remote run 40854101642 compiled both crates and passed the daemon refusal regression plus all seven mobile policy tests.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Base comparison run 40855466814 ran the failing SDK generator and no-SwiftUI commands on both this head and base 3d89c41. Base reproduces test_live_raw_v12_layout_and_history_contracts_are_exact (command='new-pane-right') (64 tests, one failure) and the two HomeChatColors SwiftUI imports. These files are unchanged by this PR. Focused acpmux and mobile policy compilation/tests passed at the reviewed head in run40854101642.

@teamleaderleo
teamleaderleo marked this pull request as ready for review October 29, 2026 10:13
@cursor

cursor Bot commented Oct 29, 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 Author

Owned by an agent session · session

…k-mobile-alias

# Conflicts:
#	cmux-next-ios/rust/crates/cmux-mobile-host/src/acpmux_policy.rs
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex-review-box/gpt-6-astra high, lane-place): SHIP at 8f79353

SHIP

No blocking findings. Rust tests could not be run because Cargo is unavailable in the box.

@teamleaderleo teamleaderleo removed the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 29, 2026

@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 8f79353: an independent review passed this exact head (review box review-27347-8f793538 receipt by teamleaderleo). A push needs a new review; a later BLOCK at this head dismisses this approval.

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 29, 2026
@teamleaderleo
teamleaderleo merged commit d165be4 into feat-cmux-next Oct 29, 2026
211 of 216 checks passed
@teamleaderleo
teamleaderleo deleted the lane/hb-fork-mobile-alias branch October 29, 2026 22:59
@github-actions

Copy link
Copy Markdown
Contributor

Shipped in:

@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

This branch had an error being deployed

1 failed and 2 inactive deployments
artifacts — 8f793538 Deployed Oct 29, 2026 by teamleaderleo via publish the Windows daemon to R2 #78599
ci-routing-agent — 8f793538 Deployed Oct 29, 2026 by github-actions[bot] via cmux-next macOS placement #46709
sentry-dsyms — 8f793538 Deployed Oct 29, 2026 by teamleaderleo via upload cmux-tui dSYMs to Sentry #78599
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