Repository navigation
mobile host: enforce identical trust checks for canonical forks - #27347
Conversation
|
Bead |
|
Found 1 test failure on Blacksmith runners: Failure
|
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
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 |
|
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. |
|
Base comparison run 40855466814 ran the failing SDK generator and no-SwiftUI commands on both this head and base 3d89c41. Base reproduces |
Bugbot needs on-demand usage enabledBugbot 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. |
|
Owned by an agent session · session |
…k-mobile-alias # Conflicts: # cmux-next-ios/rust/crates/cmux-mobile-host/src/acpmux_policy.rs
|
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. |
|
Shipped in:
|
|
Shipped in:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
This mobile-host trust classification change gives
acp.session.forkthe same current-mode check and per-phone Full-access marking assession/fork. The daemon now preserves the narrowingrequireFullAccessmarker 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.forkis the soleacp.*alias of a listedsession/*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:
cargo test --manifest-path cmux-tui/Cargo.toml -p acpmux --test remote_guard_codex_bridge canonical_fork_boundaries_keep_the_phones_full_access_requirementandcargo test --manifest-path cmux-next-ios/rust/Cargo.toml -p cmux-mobile-host acpmux_policy::tests --lib.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