From 183edc0dd590f1f7bd979f8128be0091f513ad70 Mon Sep 17 00:00:00 2001 From: Austin Wang Date: Wed, 30 Sep 2026 12:16:07 -0700 Subject: [PATCH] =?UTF-8?q?Revert=20"fix(cloud):=20stop=20reconciling=20pa?= =?UTF-8?q?nes=20a=20Cloud=20workspace=20already=20shows=20(#=E2=80=A6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit e709b69d8c8ce005de32fa76609f78725de1075e. --- .../CloudWorkspaceProjectionPlan.swift | 9 ++-- .../CloudWorkspaceProjectionPlanTests.swift | 51 ------------------- 2 files changed, 3 insertions(+), 57 deletions(-) diff --git a/Packages/macOS/CmuxCloud/Sources/CmuxCloud/Surfaces/CloudWorkspaceProjectionPlan.swift b/Packages/macOS/CmuxCloud/Sources/CmuxCloud/Surfaces/CloudWorkspaceProjectionPlan.swift index a887a7d4f01a..d4f5198ac417 100644 --- a/Packages/macOS/CmuxCloud/Sources/CmuxCloud/Surfaces/CloudWorkspaceProjectionPlan.swift +++ b/Packages/macOS/CmuxCloud/Sources/CmuxCloud/Surfaces/CloudWorkspaceProjectionPlan.swift @@ -9,11 +9,8 @@ public struct CloudWorkspaceProjectionPlan { public init(desired: [SurfaceResourcePlacement], existing: [SurfaceProjection]) { let wanted = Set(desired) - // Desired placements an existing pane already shows: exact daemon tabs, - // a local preview's own workspace row and the display memberships it - // satisfies. None of them is missing, so reconciliation never - // reprojects a pane it already has. var seen = Set() + var satisfied = Set() var obsolete: [SurfaceProjection] = [] for projection in existing.sorted(by: { $0.panelID.uuidString < $1.panelID.uuidString }) { let placement = SurfaceResourcePlacement( @@ -26,11 +23,11 @@ public struct CloudWorkspaceProjectionPlan { // coordinates were cleared by an authoritative remote deletion has // neither coordinate and must still be retired. if projection.isLocalWorkspaceView && projection.remoteWorkspaceID != nil { - seen.insert(placement) for matching in desired where matching.cloudDisplayMembershipViewID != nil && matching.resource == projection.resource && matching.remoteWorkspaceID == projection.remoteWorkspaceID { + satisfied.insert(matching) seen.insert(matching) } continue @@ -38,7 +35,7 @@ public struct CloudWorkspaceProjectionPlan { if !wanted.contains(placement) || !seen.insert(placement).inserted { obsolete.append(projection) } } var missingSeen = Set() - missing = desired.filter { !seen.contains($0) && missingSeen.insert($0).inserted } + missing = desired.filter { !satisfied.contains($0) && missingSeen.insert($0).inserted } self.obsolete = obsolete } } diff --git a/Packages/macOS/CmuxCloud/Tests/CmuxCloudTests/CloudWorkspaceProjectionPlanTests.swift b/Packages/macOS/CmuxCloud/Tests/CmuxCloudTests/CloudWorkspaceProjectionPlanTests.swift index 0e7e83db2040..61bc646204b1 100644 --- a/Packages/macOS/CmuxCloud/Tests/CmuxCloudTests/CloudWorkspaceProjectionPlanTests.swift +++ b/Packages/macOS/CmuxCloud/Tests/CmuxCloudTests/CloudWorkspaceProjectionPlanTests.swift @@ -62,33 +62,6 @@ struct CloudWorkspaceProjectionPlanTests { #expect(plan.missing.isEmpty) } - @Test("A local Desktop preview satisfies its own workspace row, with or without a membership view") - func localDisplayPreviewSatisfiesItsWorkspaceRow() { - let display = SurfaceResourceID(machine: machine, kind: .display, key: "display:1") - let preview = SurfaceProjection( - resource: display, - workspaceID: UUID(), - panelID: UUID(), - remoteWorkspaceID: "remote-workspace" - ) - let workspaceRow = SurfaceResourcePlacement(resource: display, remoteWorkspaceID: "remote-workspace") - let membership = SurfaceResourcePlacement( - resource: display, - remoteView: SurfaceRemoteView( - tabID: SurfaceRemoteView.cloudDisplayMembershipViewPrefix + "view-a", - workspace: SurfaceRemoteWorkspace(id: "remote-workspace", name: "Cloud", index: 0, focused: true) - ) - ) - - // The workspace group lists each local preview as a row of its own. A - // preview reported missing is reprojected on every reconcile. - for desired in [[workspaceRow], [workspaceRow, membership]] { - let plan = CloudWorkspaceProjectionPlan(desired: desired, existing: [preview]) - #expect(plan.obsolete.isEmpty) - #expect(plan.missing.isEmpty) - } - } - @Test("A preview whose remote placement was deleted is retired") func deletedRemotePlacementIsNotMistakenForPreview() { let display = SurfaceResourceID(machine: machine, kind: .display, key: "display:1") @@ -120,28 +93,4 @@ struct CloudWorkspaceProjectionPlanTests { #expect(plan.obsolete == [existing]) #expect(plan.missing == [desired]) } - - @Test("A terminal tab the workspace already shows is neither missing nor obsolete") - func projectedTerminalPlacementIsSatisfied() { - let terminal = SurfaceResourceID(machine: machine, kind: .terminal, key: "terminal-1") - let existing = SurfaceProjection( - resource: terminal, - workspaceID: UUID(), - panelID: UUID(), - remoteWorkspaceID: "workspace", - remoteTabID: "tab" - ) - let desired = SurfaceResourcePlacement( - resource: terminal, - remoteWorkspaceID: "workspace", - remoteTabID: "tab" - ) - - let plan = CloudWorkspaceProjectionPlan(desired: [desired], existing: [existing]) - - // A shown tab reported as missing is reprojected on every reconcile, and - // each reprojection requests the next reconcile of the same machine. - #expect(plan.obsolete.isEmpty) - #expect(plan.missing.isEmpty) - } }