Repository navigation
base red: Takes back #28786: the signed-out Cloud action sign-in recovery moves to CmuxNextDaemonService (app_lines +65) - #29589
Conversation
…very moves to CmuxNextDaemonService (app_lines) ac59cd2 (#28786, "signed-out Cloud actions sign in, then run") adds 65 CmuxNextApp Swift lines with no exception row; arch-ratchet's app_lines row refuses it alone (--base ac59cd2^ --head ac59cd2: +65), part of the tip's red (STATUS, lead 18:5xZ). #28786's own recovery code (CloudHandlers+Account.swift's 53-line extension: the exempt set, signInRecovers, bindSignInRecovery's replay and resumeAfterSignIn) moves unchanged in behavior to CmuxNextDaemonService as CloudSignInRecovery, next to CloudStrings and the registry types it uses. The App's CloudHandlers builds it with the Cloud service's reads (pending continuation, sign-in, hasCurrentList(within: 30 s), isSignedIn, refresh) and binds it where it bound the extension. CloudSignInRecoveryTests read CloudSignInRecovery.recovers.
…ble set), so the nonisolated recovers(_:reason:) reads it The fleet compile at f466009 (step 4ef24f9505a217c46278ab28) refused `exempt` from the nonisolated `recovers`: in CmuxNextApp the static was main-actor by the module's default isolation; in the @mainactor struct it kept that isolation. A Set<ActionID> literal is immutable Sendable data.
|
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)
Default changesNo defaults change at Shipped in:
|
|
Review (claude-review-subagent): SHIP at 4b8e80c Reviewed f466009 (the move) plus 4b8e80c ( Behavior: the same as before
Compile (read only; no local Swift build, by the repo rule)
Package edge
PR rules: the title starts with Not run
Nit (not blocking): |
…rapper builds CloudSignInRecovery The defaults guard fingerprints CloudHandlers.bind (a tunable-source declaration) and reported its edit as a changed default. bind calls bindSignInRecovery(into:cloud:) as before; that App wrapper, in CloudHandlers+Account.swift, builds CloudSignInRecovery with the Cloud service's reads. No behavior change.
|
Review (claude-review-subagent): SHIP at b48a3a2 I reviewed the full diff over the merge base d208989 (f466009, 4b8e80c and b48a3a2). The review is static only. I did no Swift compile or test on this machine. Behavior: the same as the base
Compile, from the code
Checks (run on this head over d208989)
PR body: it describes the wrapper and Nits (do not block)
|
|
Fleet evidence at b48a3a2: compile with tests job 8a42c768108ce1acc732d024 (CmuxNext 244 s, app, cmux-tui passed). CloudSignInRecoveryTests 3/3 passed (step 5997cec2ae059cf653c709a4). defaults_guard.py check: exit 0. |
Summary
Base red, priority zero (tip arch red; lead 18:5xZ). Run on each first-parent commit since the last green arch tip b6eb849, the repo rule (
arch-ratchet.py --base <c>^ --head <c>) refuses three commits:The tip over b6eb849 is
app_lines +139, refused.Takes back #28786: its own sign-in recovery code leaves CmuxNextApp. The behavior is unchanged.
CloudHandlers+Account.swift's 53-line extension moves to CmuxNextDaemonService asCloudSignInRecovery, next to CloudStrings and the registry types it uses. The extension holds the exempt set,signInRecovers,bindSignInRecovery's replay andresumeAfterSignIn.CloudHandlers.bindunchanged, so it still callsbindSignInRecovery(into:cloud:). That is now a one-line App wrapper that buildsCloudSignInRecoverywith the Cloud service's reads (the pending continuation, sign-in,hasCurrentList(within: 30 s),isSignedIn,refresh). The defaults guard tracksCloudHandlers.bind, so this PR leaves it as it was.CloudSignInRecoveryTestsreadCloudSignInRecovery.recovers.CmuxNextApp -51. #28786's DEBUG-only fixture lines in CloudService stay in the App, so this PR alone covers 50 of its 65. The four base-red PRs together clear the row (see Testing).
Testing
The watcher's command (
arch-ratchet.py --base b6eb84916c1a, rowapp_lines):--base ac59cd26eed^ --head ac59cd26eed):+65, refused.app_lines -51,no architecture count rises.no architecture count rises. The tip alone is +362 with 264 allowed by carry of #28037: show Cloud machine transitions and failed changes #28407's exception, and these three remove 162.scripts/ci/defaults_guard.py check: exit 0 (no tracked default changes).app_lines -57,no architecture count rises.check-app-size.sh --base b6eb84916c1a: ok (117740 <= 117793 source lines).prepush-gate.py: no new violations. The namespace lint: OK.Observed / Not run
Observed:
exemptwas main-actor and was read from the nonisolatedrecovers. Fixed in 4b8e80c:exemptis now a nonisolated constant.Not run: no local Swift build (fleet only). No tagged build: no behavior change.
Changelog
none
Proof
No capture: no visible change; the recovery moves between targets with the same behavior.