From f48caaa4caefd38d7997b4c6756a6dd8a9519fa4 Mon Sep 17 00:00:00 2001 From: onevcat Date: Fri, 24 Jul 2026 23:05:42 +0900 Subject: [PATCH] fix: address Copilot review on cancellation and test waits Explicitly cancelAll in-flight document loads when bailing out of the bounded task group, and record a Swift Testing issue when waitForDiffWindowState exhausts its iterations instead of returning silently; the helper is now explicitly MainActor. Claude-Session: https://claude.ai/code/session_01Wke4shTaWo7wv6pGbTagVL --- supacode/Features/DiffView/DiffWindowState.swift | 5 ++++- supacodeTests/DiffWindowStateTests.swift | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/supacode/Features/DiffView/DiffWindowState.swift b/supacode/Features/DiffView/DiffWindowState.swift index bcf6276a..56ba00e8 100644 --- a/supacode/Features/DiffView/DiffWindowState.swift +++ b/supacode/Features/DiffView/DiffWindowState.swift @@ -330,7 +330,10 @@ final class DiffWindowState { addNextLoad() } for await (id, doc) in group { - guard !Task.isCancelled else { break } + guard !Task.isCancelled else { + group.cancelAll() + break + } documentCache[id] = doc if selectedFile?.id == id { updateDiffDocument(doc) diff --git a/supacodeTests/DiffWindowStateTests.swift b/supacodeTests/DiffWindowStateTests.swift index bfb6b5a6..90de4d09 100644 --- a/supacodeTests/DiffWindowStateTests.swift +++ b/supacodeTests/DiffWindowStateTests.swift @@ -629,6 +629,7 @@ private func outgoingBase(displayName: String) -> OutgoingBaseResolution { ) } +@MainActor private func waitForDiffWindowState( _ condition: @MainActor @escaping () -> Bool, maxIterations: Int = 500 @@ -639,4 +640,5 @@ private func waitForDiffWindowState( } await Task.yield() } + Issue.record("Timed out waiting for the DiffWindowState condition after \(maxIterations) iterations") } -- 2.51.2