From 7d61d38a34663040d4b6a9ba1d88eaf5b30abe5a Mon Sep 17 00:00:00 2001 From: mika kuns Date: Wed, 20 May 2026 11:26:57 +0200 Subject: [PATCH] fix(ui): dispatch WorkerLog events to UI thread Worker log broadcasts arrive on a SignalR thread; raising the event directly let UI subscribers touch bindable state off-thread. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/ClaudeDo.Ui/Services/WorkerClient.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ClaudeDo.Ui/Services/WorkerClient.cs b/src/ClaudeDo.Ui/Services/WorkerClient.cs index 120dd53..3d01c72 100644 --- a/src/ClaudeDo.Ui/Services/WorkerClient.cs +++ b/src/ClaudeDo.Ui/Services/WorkerClient.cs @@ -139,7 +139,8 @@ public partial class WorkerClient : ObservableObject, IAsyncDisposable, IWorkerC _hub.On("WorkerLog", (message, level, timestampUtc) => { - WorkerLogReceivedEvent?.Invoke(new WorkerLogEntry(message, level, timestampUtc)); + Dispatcher.UIThread.Post(() => + WorkerLogReceivedEvent?.Invoke(new WorkerLogEntry(message, level, timestampUtc))); }); _hub.On("PlanningMergeStarted", (planningTaskId, targetBranch) =>