Repository navigation
base red: Takes back #29497: the remote-start refusal table, with its older-daemon codes, moves to CmuxNextDaemonService (app_lines +51) - #29590
Conversation
… older-daemon codes, moves to CmuxNextDaemonService (app_lines) 270912b (#29497, "a first chat an older daemon refused updates the machine and starts once more") adds 51 CmuxNextApp Swift lines with no exception row; arch-ratchet's app_lines row refuses it alone (--base 270912b^ --head 270912b: +51), part of the tip's red (STATUS, lead 18:5xZ). - #29497's own refusal codes (AgentTabRemoteHost.olderDaemonRefusals) move, with their doc, onto the refusal type as AgentRemoteStartRefusal.olderDaemonCodes. - The refusal type itself (AgentRemoteStartRefusal: the one table from an `agent-session-start` refusal to the person's words, through RefusalStrings) and AgentTabRefusedHost move unchanged in behavior from CmuxNextApp/AgentTabs+RemoteStart.swift to CmuxNextDaemonService, next to RefusalStrings, whose Refusals table they already read (same bundle, same keys). Public access, an explicit init with the same defaults. The App reaches them through its CmuxNextDaemonService re-export; the tests are unchanged.
|
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 87d6fb0 Correctness first. Static review only: no Swift compile or test on this machine (fleet only). Equivalence
Compile (static reading)
Gates
Non-blocking notes
|
|
Fleet evidence at 87d6fb0: compile with tests job 7077d6a64720681f83dc7ae9 (CmuxNext 240 s, app, cmux-tui passed). Suites step 2234b0ab9ef002f3df34d066: AgentTabRemoteStartTests 8/8, CloudStartSessionTests 25/25, CloudAppLinkOwnerAnswerTests 5/5 passed. |
…e moved refusal uses its own constant, a test keeps them equal The defaults guard tracks AgentRemoteStartRefusal.folderNeededCode by its file path (it is referenced from CloudStartSession.startFailure) and reported its move as a changed default. The App keeps `static let folderNeededCode = "app.folder_needed"` in AgentTabs+RemoteStart.swift, as an extension of the moved type; the moved type uses an internal appFolderNeeded for folderNeeded(machine:) and its message. AgentRemoteStartRefusalCodeTests asserts the two are the same code.
|
Review (claude-review-subagent): SHIP at bc518d0 I reviewed the full diff over the merge base d208989 (87d6fb0 and bc518d0). 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 App's one-line Nits (do not block)
|
|
Fleet evidence at bc518d0: compile with tests job 17566911cb1bfb2458fb6ac2 (CmuxNext 236 s, app, cmux-tui passed). Suites step 1526e5dfee67930529706d0f: AgentTabRemoteStartTests 8/8, CloudStartSessionTests 25/25, CloudAppLinkOwnerAnswerTests 5/5, AgentRemoteStartRefusalCodeTests 1/1 passed. defaults_guard.py check: exit 0. |
Summary
Base red, priority zero (tip arch red; lead 18:5xZ). 270912b (#29497, "a first chat an older daemon refused updates the machine and starts once more") adds 51 CmuxNextApp lines with no exception row. The repo rule run on that commit alone refuses it (+51). It is one of the three culprits of the tip's
app_lines +139over b6eb849; #29566 covers #28686, and the #28786 PR covers #28786.Takes back #29497: its own refusal codes leave CmuxNextApp, together with the refusal table they belong to. The behavior is unchanged.
AgentTabRemoteHost.olderDaemonRefusalsmoves, with its doc, onto the refusal type asAgentRemoteStartRefusal.olderDaemonCodes.AgentRemoteStartRefusalmoves unchanged in behavior fromCmuxNextApp/AgentTabs+RemoteStart.swiftto CmuxNextDaemonService, together withAgentTabRefusedHost.agent-session-startrefusal to the person's words, through RefusalStrings.AgentRemoteStartRefusal.folderNeededCodeby its file path, because CloudStartSession.startFailure references it. So the App keepsstatic let folderNeededCode = "app.folder_needed"in AgentTabs+RemoteStart.swift, as a one-line extension of the moved type. The moved type uses an internalappFolderNeededwith the same string, and the newAgentRemoteStartRefusalCodeTestsasserts that the two are equal.AgentTabRemoteHost.updateMachine's doc comment is shorter, because the list of codes now lives onolderDaemonCodes.CmuxNextApp -86.
Testing
The watcher's command (
arch-ratchet.py, rowapp_lines):--base 270912bba17^ --head 270912bba17):+51, refused.app_lines -86,no architecture count rises.no architecture count rises. They remove 162 against the tip, which is +362 with 264 allowed.scripts/ci/defaults_guard.py check: exit 0.app_lines -57,no architecture count rises.check-app-size.sh --base origin/feat-cmux-next: ok. The namespace lint: OK.prepush-gate.py: no new violations.Observed / Not run
Observed:
Not run: no local Swift build (fleet only). No tagged build: no behavior change.
Changelog
none
Proof
No capture: no visible change; a refusal table moves between targets with the same strings.