Repository navigation
cmux NEXT: await FolderChanges.events() in MachineConsentChanges (build fix) - #27758
Conversation
…ld fix) #26517 made FolderChanges.events() async (it returns once its watches are registered); #27223, which landed an hour before it, calls it from the synchronous MachineConsentChanges.events(armed:). Together they stop CmuxNextApp from compiling (JoinConsent+App.swift:222: 'async' call in a function that does not support concurrency; fleet job 549a2bfa50c634b6131799d8). MachineConsentChanges.events(armed:) is async now and awaits it, so the folder watch is registered before the file watches and the armed handshake, as its comment already promised; its callers (the model's watch task and JoinConsentTests) await it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Head |
|
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)
|
…/fix-dataloss-a-journal Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ompile fix) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…JoinConsent build fix, #27758)
|
Shipped in:
|
|
Shipped in:
|
Takes #27758 (base compile fix). No conflicts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-1288bbb2b5d2f5c6b66a
Summary
feat-cmux-nextdoes not compile. Two changes that landed an hour apart don't build together:MachineConsentChanges.events(armed:), which callsFolderChanges(folders:).events()from a synchronous function.FolderChanges.events()async, so it returns only after its watches are registered.Fleet build
549a2bfa50c634b6131799d8at6d8838a09200fails inswift_compile:This change makes
MachineConsentChanges.events(armed:)async and awaits the folder watch. That ordering is what its doc comment already promised: folder watch registered, then file watches, thenarmed, then one yield. Its three callers (the model's watch task and twoJoinConsentTests) nowawaitit. The package runs withNonisolatedNonsendingByDefault, so the non-Sendablearmedclosure stays on the caller's actor.Changelog
none
Review
A subagent did a correctness review of
8dec64d15a7band found nothing blocking. It checked:FolderChanges.events()andMachineConsentChanges.eventscall site inPackages/;FolderChangeswait returns a finished stream, the detached loop exits, and the file watches are cancelled and the continuation finished. Nothing leaks.It noted one older issue that this PR does not cause:
watchFilesresumes its file sources without waiting for registration, the race #26517 fixed for folders. That's left for a follow-up.Observed / Not run
6d8838a09200fails to compile on the fleet (job549a2bfa50c634b6131799d8, error above).scripts/ci/package-test-lane.sh suite Packages/macOS/CmuxNext JoinConsentTestsat the head (cmux-ci step22cfe1759689444cd520dd0e). The result will be posted here beforeready-to-land.No capture: build fix, no UI change).🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes the
feat-cmux-nextbuild break by makingMachineConsentChanges.events(armed:)async to match the now-asyncFolderChanges.events().JoinConsentTests) nowawaitthe call.Written for commit 8dec64d. Summary will update on new commits.