StreamingClaudeSession.RemoveQueuedAsync drops the first occurrence of a queued message from _pending and re-broadcasts the updated queue. Wired through InteractiveSessionService + WorkerHub.RemoveQueuedInteractiveMessage + IWorkerClient.RemoveQueuedInteractiveMessageAsync. Removal by text (first match) is robust to a turn flushing mid-click. Fakes + ILiveSession impls updated.
11 lines
330 B
C#
11 lines
330 B
C#
namespace ClaudeDo.Worker.Runner.Interfaces;
|
|
|
|
public interface ILiveSession : IAsyncDisposable
|
|
{
|
|
bool IsTurnInFlight { get; }
|
|
Task SendUserMessageAsync(string text, CancellationToken ct);
|
|
Task RemoveQueuedAsync(string text, CancellationToken ct);
|
|
Task InterruptAsync(CancellationToken ct);
|
|
Task StopAsync();
|
|
}
|