Nachfassen (#646): TaskFollowUp ueber BuildTaskboard an den Host reichen

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-10-02 12:06:53 +02:00
co-authored by Claude Opus 5.5
parent 753d633cf3
commit 7ce5e219cf
+5 -5
View File
@@ -666,7 +666,7 @@ public sealed class AppHost : IAsyncDisposable
engine.LoadPersistedChats(); engine.LoadPersistedChats();
var (scanner, staging, board) = BuildTaskboard( var (scanner, staging, board, followUp) = BuildTaskboard(
instance, taskRepository, engine, tools, stateStore, audit, instance, taskRepository, engine, tools, stateStore, audit,
stagingRepository, dauerfreigaben, stagingGate, cases, storage, loggerFactory, logger); stagingRepository, dauerfreigaben, stagingGate, cases, storage, loggerFactory, logger);
@@ -737,6 +737,7 @@ public sealed class AppHost : IAsyncDisposable
loggerFactory.CreateLogger("ClawdDotNet.Core.Audit")); loggerFactory.CreateLogger("ClawdDotNet.Core.Audit"));
auditArchive.Start(); auditArchive.Start();
host.AuditArchive = auditArchive; host.AuditArchive = auditArchive;
host.FollowUp = followUp;
host._shutdown.Add(auditArchive.DisposeAsync); host._shutdown.Add(auditArchive.DisposeAsync);
// #698: what holds in a unit, set by its lead. // #698: what holds in a unit, set by its lead.
@@ -877,7 +878,7 @@ public sealed class AppHost : IAsyncDisposable
} }
} }
private static (TaskScanner?, StagingService?, TaskboardService?) BuildTaskboard( private static (TaskScanner?, StagingService?, TaskboardService?, Core.Tasks.TaskFollowUp?) BuildTaskboard(
InstanceConfig instance, InstanceConfig instance,
SqliteTaskRepository taskRepository, SqliteTaskRepository taskRepository,
AgentEngine engine, AgentEngine engine,
@@ -897,7 +898,7 @@ public sealed class AppHost : IAsyncDisposable
.FirstOrDefault(p => !string.IsNullOrWhiteSpace(p)); .FirstOrDefault(p => !string.IsNullOrWhiteSpace(p));
if (string.IsNullOrWhiteSpace(sharedWorkspace)) if (string.IsNullOrWhiteSpace(sharedWorkspace))
return (null, null, null); return (null, null, null, null);
var board = new TaskboardService(taskRepository, Path.Combine(sharedWorkspace, "tasks")); var board = new TaskboardService(taskRepository, Path.Combine(sharedWorkspace, "tasks"));
@@ -943,7 +944,6 @@ public sealed class AppHost : IAsyncDisposable
// #646: the board follows up on stalled, unblocked and waiting work. // #646: the board follows up on stalled, unblocked and waiting work.
var followUp = new Core.Tasks.TaskFollowUp(board, taskRepository, audit, storage, () => instance.FollowUp, var followUp = new Core.Tasks.TaskFollowUp(board, taskRepository, audit, storage, () => instance.FollowUp,
() => engine.OrganisationProvider?.Invoke(), loggerFactory.CreateLogger("ClawdDotNet.Core.Tasks.FollowUp")); () => engine.OrganisationProvider?.Invoke(), loggerFactory.CreateLogger("ClawdDotNet.Core.Tasks.FollowUp"));
host.FollowUp = followUp;
var scanner = new TaskScanner(taskRepository, dispatcher, loggerFactory, var scanner = new TaskScanner(taskRepository, dispatcher, loggerFactory,
maxParallelRuns: instance.MaxParallelTaskRuns, maxParallelRuns: instance.MaxParallelTaskRuns,
@@ -1023,7 +1023,7 @@ public sealed class AppHost : IAsyncDisposable
} }
}); });
return (scanner, staging, board); return (scanner, staging, board, followUp);
} }
private async Task ConnectTelegramAsync(Callbacks callbacks, ILogger logger) private async Task ConnectTelegramAsync(Callbacks callbacks, ILogger logger)