diff --git a/KanbanTests/PointerLatencyTests.swift b/KanbanTests/PointerLatencyTests.swift index e0a8d2b..302b25a 100644 --- a/KanbanTests/PointerLatencyTests.swift +++ b/KanbanTests/PointerLatencyTests.swift @@ -145,7 +145,13 @@ private final class HostedBoard { recordOpen = { [weak self] id in MainActor.assumeIsolated { self?.openedCards.append(id) } } - settle() + // A generous settle, and not politeness: the masonry places cards only after measurement + // round-trips, and until those land a click at `cardPoint` hits the *empty-space layer* + // instead of a card — which the dragless layer holds forever in this sterile queue, + // poisoning the process's held-event machinery (see the suite note above). Six turns + // sufficed on an idle machine; under parallel-build load it reproducibly did not + // (2026-08-08). The turns are cheap; the misfire is not. + settle(turns: 60) } deinit {