base red: move #29532's and #29058's CmuxNextApp lines into CmuxNextCloud and CmuxNextAgentPane (app_lines)

Merged
LA
5d ago
+65-22

Summary

Base red (lead 00:5xZ, item 3). Two merges raised the arch ratchet's app_lines row with no exception row:

  • 28ab7d2e615 (#29532, "cloud.startChat: a Mac workspace keeps the Cloud machine it picked"): CmuxNextApp +5.
  • aaa050d762f (#29058, "a relaunch never draws a black picture of a see-through page"): CmuxNextApp +6.

Takes back #29532: its +5 CmuxNextApp lines are paid for by moving the pure parts of the start-chat plan request (a listed machine's entry, and its own "kept for a pin" list) to CmuxNextCloud. Behavior unchanged.
Takes back #29058: its +6 CmuxNextApp lines are paid for by moving its saved-picture rule (take plus savedPictureCovers) to CmuxNextAgentPane as AgentPaneLaunchImages.takeCovering. Behavior unchanged.

The move:

  • CmuxNextCloud, CloudMachine+StartChatPlan.swift: CloudMachine.startChatPlanEntry(connected:chats:) (the dictionary planRequest built inline) and Collection<CloudMachine>.keptForPin(listed:) (was CloudStartChat.stored(_:listed:), #29532's own).
  • CmuxNextAgentPane, AgentPaneView+PageImage.swift: AgentPaneLaunchImages.takeCovering(_:newTab:size:appearance:in:), next to savedPictureCovers (#29058's own rule).
  • CmuxNextApp: CloudStartChat+Machine.swift and AgentTabContent.swift call these. CmuxNextApp -16 lines.

Testing

The watcher's command (arch-ratchet.py --repo . --base <c>^ --head <c>, row app_lines):

  • before: 28ab7d2e615 [app_lines] CmuxNextApp Swift lines: +5, push refused; aaa050d762f +6, push refused.
  • after, this head over the tip it is cut from (8922fc217e2): app_lines -16 (CmuxNextApp -16), no architecture count rises.

check-app-size.sh --base 8922fc217e2: ok (no source-line growth). The namespace lint (--files-from the changed Swift files): OK. defaults_guard.py check: exit 0. prepush-gate.py: no new violations.

New tests: CloudStartChatMachineTests.aListedMachinesPlanEntryNamesWhatThePickReads (the plan entry had no test: the request test passes no machines) and AgentPaneLaunchImagesAlphaTests.aSavedPictureWithClearPixelsCoversItsPageOnce. aGoneMachineInTheStoreIsNeverKeptForAPin calls keptForPin.

Observed / Not run

Observed:

  • The static checks above.
  • Fleet compile at this head alone, job 80e9b11d38dffd870b081a08: failed only on CmuxNextDesign/Overlay/NativePopupHost.swift:235/239 ("sending 'menu' risks causing data races"), the tip's own compile red from #28704. This PR does not touch that file; #29856 fixes it. So the suite step at this head alone (3967f3186a1e86fe5b3886d8) could not build either.
  • Combined tree (lead order 01:1xZ): scratch branch scratch/applines-plus-menus-29883-29856 (never a PR), SHA 9db5253ac60ef250a7eb95706a1cb6b6f8a58a93 = this head 2318c5a355e4 merged with #29856's head bc6570cfe4bb.
    • Fleet compile, job 67d98e03e30486b66eb97c21: CmuxNext ok, app ok, cmux-tui ok.
    • Fleet suites, step ec98f1f1d3f829cb75a3666f (same-tree cmux-tui: source=published): CloudStartChatMachineTests 8/8, AgentPaneLaunchImagesAlphaTests 4/4, AgentPaneLaunchImageReadTests 2/2, PageImageBackgroundTests 10/10, all passed.

Not run: no local Swift build (fleet only). No tagged build: no behavior change. The app_lines row is still higher at the tip than before 28ab7d2e615 because of other commits in that range (+335 net after this PR); this PR covers only #29532 and #29058.

Changelog

none

Proof

No capture: no visible change; pure code moves between targets.