From 0cf0edbe3f67de17cd4fb93cce396fafd89e6c96 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 27 Jan 2026 05:53:26 +0000 Subject: [PATCH 1/2] Initial plan From d5bed2d0042561dd067a727ce8d30fd9b5cd1859 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 27 Jan 2026 05:58:17 +0000 Subject: [PATCH 2/2] Fix AsyncReplayBuffer waiter leak causing CI hangs Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com> --- src/PatternKit.Core/Behavioral/Iterator/AsyncFlow.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/PatternKit.Core/Behavioral/Iterator/AsyncFlow.cs b/src/PatternKit.Core/Behavioral/Iterator/AsyncFlow.cs index a713b64..ff2d91c 100644 --- a/src/PatternKit.Core/Behavioral/Iterator/AsyncFlow.cs +++ b/src/PatternKit.Core/Behavioral/Iterator/AsyncFlow.cs @@ -163,7 +163,13 @@ public async ValueTask TryGetAsync(int index, CancellationToken ct) using var reg = ct.Register(static s => ((TaskCompletionSource)s!).TrySetCanceled(), waiter); var signaled = await waiter.Task.ConfigureAwait(false); if (!signaled) + { + lock (_sync) + { + _waiters.Remove(waiter); + } return false; + } } }