diff --git a/src/ClaudeDo.Ui/Services/WorkerClient.cs b/src/ClaudeDo.Ui/Services/WorkerClient.cs index c5f6694..462b1e6 100644 --- a/src/ClaudeDo.Ui/Services/WorkerClient.cs +++ b/src/ClaudeDo.Ui/Services/WorkerClient.cs @@ -8,6 +8,7 @@ using Microsoft.AspNetCore.SignalR.Client; namespace ClaudeDo.Ui.Services; public record ActiveTask(string Slot, string TaskId, DateTime StartedAt); +public sealed record WorkerLogEntry(string Message, WorkerLogLevel Level, DateTime TimestampUtc); sealed class IndefiniteRetryPolicy : IRetryPolicy { @@ -46,6 +47,7 @@ public partial class WorkerClient : ObservableObject, IAsyncDisposable public event Action? WorktreeUpdatedEvent; public event Action? RunNowRequestedEvent; public event Action? ListUpdatedEvent; + public event Action? WorkerLogReceivedEvent; public WorkerClient(string signalRUrl) { @@ -116,6 +118,11 @@ public partial class WorkerClient : ObservableObject, IAsyncDisposable { Dispatcher.UIThread.Post(() => ListUpdatedEvent?.Invoke(listId)); }); + + _hub.On("WorkerLog", (message, level, timestampUtc) => + { + WorkerLogReceivedEvent?.Invoke(new WorkerLogEntry(message, level, timestampUtc)); + }); } public Task StartAsync()