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();
var (scanner, staging, board) = BuildTaskboard(
var (scanner, staging, board, followUp) = BuildTaskboard(
instance, taskRepository, engine, tools, stateStore, audit,
stagingRepository, dauerfreigaben, stagingGate, cases, storage, loggerFactory, logger);
@@ -737,6 +737,7 @@ public sealed class AppHost : IAsyncDisposable
loggerFactory.CreateLogger("ClawdDotNet.Core.Audit"));
auditArchive.Start();
host.AuditArchive = auditArchive;
host.FollowUp = followUp;
host._shutdown.Add(auditArchive.DisposeAsync);
// #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,
SqliteTaskRepository taskRepository,
AgentEngine engine,
@@ -897,7 +898,7 @@ public sealed class AppHost : IAsyncDisposable
.FirstOrDefault(p => !string.IsNullOrWhiteSpace(p));
if (string.IsNullOrWhiteSpace(sharedWorkspace))
return (null, null, null);
return (null, null, null, null);
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.
var followUp = new Core.Tasks.TaskFollowUp(board, taskRepository, audit, storage, () => instance.FollowUp,
() => engine.OrganisationProvider?.Invoke(), loggerFactory.CreateLogger("ClawdDotNet.Core.Tasks.FollowUp"));
host.FollowUp = followUp;
var scanner = new TaskScanner(taskRepository, dispatcher, loggerFactory,
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)