Merge task branch for: fix(worker): FailAsync-Guard untersuchen — ist Queued→Failed erreichbar/gewollt?
This commit is contained in:
@@ -69,7 +69,7 @@ Allowed transitions (enforced by `TaskStateService`):
|
||||
|
||||
```
|
||||
Idle → Queued | Running (RunNow)
|
||||
Queued → Running | Cancelled | Idle | Failed (runner guard)
|
||||
Queued → Running | Cancelled | Idle | Failed (OverrideSlotService preflight gap: RunAsync can fail before StartRunningAsync is called)
|
||||
Running → WaitingForReview (standalone success, no children)
|
||||
| WaitingForChildren (parent with pending children)
|
||||
| Done (planning/improvement child success) | Failed | Cancelled
|
||||
|
||||
@@ -198,6 +198,9 @@ public sealed class TaskStateService : ITaskStateService
|
||||
{
|
||||
await using (var ctx = await _dbFactory.CreateDbContextAsync(ct))
|
||||
{
|
||||
// Queued is intentional: OverrideSlotService dispatches RunAsync before calling
|
||||
// StartRunningAsync, so a preflight failure (list not found, worktree setup) can
|
||||
// reach MarkFailed while the task is still Queued in the DB.
|
||||
var affected = await ctx.Tasks
|
||||
.Where(t => t.Id == taskId &&
|
||||
(t.Status == TaskStatus.Running || t.Status == TaskStatus.Queued))
|
||||
|
||||
Reference in New Issue
Block a user