diff --git a/src/ClaudeDo.Worker/Program.cs b/src/ClaudeDo.Worker/Program.cs index d8e6173b..a1ba39a7 100644 --- a/src/ClaudeDo.Worker/Program.cs +++ b/src/ClaudeDo.Worker/Program.cs @@ -78,10 +78,14 @@ builder.Services.AddHostedService(); builder.Services.AddHostedService(); builder.Services.AddHostedService(); builder.Services.AddHostedService(); -builder.Services.AddSignalR().AddJsonProtocol(options => -{ - options.PayloadSerializerOptions.Converters.Add(new System.Text.Json.Serialization.JsonStringEnumConverter()); -}); +// Default MaximumParallelInvocationsPerClient=1 serializes every hub call on one connection — +// a slow one (e.g. GetTicketProjects hitting an unreachable ticket system) blocks unrelated +// calls like UpdateList/UpdateListConfig behind it for the same 10s. +builder.Services.AddSignalR(options => options.MaximumParallelInvocationsPerClient = 10) + .AddJsonProtocol(options => + { + options.PayloadSerializerOptions.Converters.Add(new System.Text.Json.Serialization.JsonStringEnumConverter()); + }); // Runner stack. builder.Services.AddSingleton();