Fuellarbeit: zeitlich flexible Arbeit fuellt ungenutztes Budget (#717, Stufe 1)

Eine einmalige Aufgabe mit fill_by (spaetestens bis) statt Termin laeuft,
wenn der Tag Budget uebrig laesst: nach regulaerer und nachgeholter Arbeit,
nur wenn nichts vom Agenten wartet, bevorzugt ab 18 Uhr, und nur wenn ihre
eigene Schaetzung in den Spielraum aus #716 passt. Kurz vor der Frist wird
einmal ein Mensch gefragt; nach der Frist laeuft sie als regulaere Arbeit.

Ehrliche Schaetzung (TaskCostEstimator): eigene Laeufe, dann Geschwister
unter derselben Elternaufgabe, dann die Angabe des Autors (als Schaetzung
gekennzeichnet), zuletzt das Mittel des Agenten.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-09-25 15:34:15 +02:00
co-authored by Claude Opus 5.5
parent 25f74d9ad6
commit 183e922278
21 changed files with 1185 additions and 36 deletions
+8 -2
View File
@@ -129,7 +129,11 @@ public sealed record TaskDto(
string? BoardPath = null,
// #697: where the task came from — stamped by the engine.
string? OriginRunId = null,
string? OriginTaskId = null);
string? OriginTaskId = null,
// #717: fill work — a deadline instead of an appointment — and the author's estimate per run.
DateTime? FillBy = null,
decimal? EstimateUsd = null,
DateTime? FillAlertedAt = null);
/// <summary>
/// #716: Runs of this task the budget refused — only present while something is open
@@ -198,7 +202,9 @@ public sealed record TaskInputDto(
string? TimeZone = null,
string Acceptance = "",
int Priority = 3,
string? ParentId = null);
string? ParentId = null,
string? FillBy = null,
decimal? EstimateUsd = null);
/// <summary>Die Kostenprognose einer Instanz (#595).</summary>
public sealed record ForecastDto(