base red: Session Info's Remote Control wiring moves to the iPhone host (app_lines +34, #28981)

Closed
LA
6d ago
+29-15

Summary

Base red, priority zero (TIP RED 1442 follow-up). arch-ratchet still refuses the feat-cmux-next tip after #29344: app_lines +57 over 2a5cdb20f8b7..967b0e923a4. By the repo rule per first-parent commit (arch-ratchet.py --base <commit>^ --head <commit>), two commits since 504cfa8559d add App lines with no exception:

CommitPRapp_lines
aa59bc63cfc#28981 (Session Info: the Remote Control switch is real)+34, refused (this PR)
79152526dd3#29271 (Start refusals: ... New Cloud Machine)+24, refused (the companion base-red PR)

This PR fixes the first by a move, with no exception row. Session Info's Remote Control switch is the iPhone host's own setting (mobile.allowIPhoneConnections), so IPhoneHostService (CmuxNextMobileHost) wires AgentPaneRemoteControl itself in wire(auth:...settings:...). It uses the same CloudAuth and settings closure that the App already passes there (services.cloud.isSignedIn is cloud.auth.isSignedIn). AgentPaneRemoteControl+App.swift and its call in AgentTabs+Wiring.swift go: CmuxNextApp -34.

No behavior change: before wire runs, servesPhones is false, and the switch showed no row then too. IPhoneHostRemoteControlTests (new) covers the row rule that moved.

Testing

arch-ratchet at the head (ca23226df73):

  • before, the culprit alone (--base aa59bc63cfc^ --head aa59bc63cfc): app_lines +34 ... push refused.
  • --base origin/feat-cmux-next --head HEAD: app_lines -34, no architecture count rises.
  • Both base-red PRs together over the watcher's range (2a5cdb20f8b7): app_lines 0 (57 - 34 - 23).

python3 scripts/cmux-next/prepush-gate.py (pre-push): no new violations.

Observed / Not run

Observed:

  • The arch-ratchet runs and the prepush gate above.
  • Fleet compile: cmux-ci compile-check --ref ca23226df73d1fc59fd6372b0f3bf8bcc61eb1d7 --app, job 1e6ed98aa7f61ced569c030e: compile check app: passed (71 s).
  • Fleet tests: package-test-lane.sh suite Packages/macOS/CmuxNext IPhoneHostRemoteControlTests,AgentPaneRemoteControlTests,IPhoneHostChiefTests, step 4897ae5bf3f4ceef4c1e92d9 on aws-m4pro-2: 1 of 1, 5 of 5 and 2 of 2 passed.
    Not run: no local Swift build or test (fleet only). No tagged build: no behavior change.
    Not fixed here: #28981 also adds stateful_singletons +1 (AgentPaneRemoteControl.shared) and assume_isolated_outside_adapters +1 (its nonisolated deinit) in CmuxNextAgentPane. The stacked base-red PR on this branch (base-red/remote-control-inject) fixes them.

Changelog

none

Proof

No capture: no visible change; the wiring moves from the App to the iPhone host with the same inputs.

Takes back #28981: moves the code #28981 added (no behavior change) so the arch ratchet on feat-cmux-next is green again; #28981 raised app_lines, stateful_singletons and assume_isolated_outside_adapters (TIP RED 1442).