feat(claude-do): feat(queue): Option pro Liste — Tasks mit überlappendem Date

## Befund (Batch-Lauf 2026-08-06, Liste "Bandel.Hub")
maxParallelExecutions = 5, 23 Geschwister-Tasks auf demselben Plugin. Die Parallelitaet hat die
Ausfuehrung verkuerzt, aber die Konfliktlast erhoeht: eine CSS-Datei wurde von 10 Tasks
angefasst, drei Razor-Dateien von je 6. Der Engpass des Gesamtdurchlaufs war nicht die
Ausfuehrung, sondern Review und Merge — die sind zwingend seriell. Netto wa

ClaudeDo-Task: 89f989e0-4fcf-43f5-a802-11d63df7a6d1
This commit is contained in:
mika kuns
2026-08-10 13:41:38 +02:00
parent 6a2a19cc9e
commit 07ee535b7d
14 changed files with 1292 additions and 10 deletions
@@ -10,6 +10,11 @@ public sealed class ListConfigEntity
public string? SessionSkills { get; set; }
public string? VerifyCommand { get; set; }
// Off by default: tasks in this list run in parallel exactly as before. When on, the queue
// picker holds back a queued task whose declared ScopeGlobs overlaps a running or
// awaiting-merge sibling in the same list instead of claiming it.
public bool SerializeOnFileOverlap { get; set; }
// Navigation property
public ListEntity List { get; set; } = null!;
}
+6
View File
@@ -51,6 +51,12 @@ public sealed class TaskEntity
public int SortOrder { get; set; }
public string? SessionSkills { get; set; }
// Newline-separated declared file paths/globs this task expects to touch. User-supplied only
// (never inferred). Only consulted by the queue picker when the list's
// ListConfigEntity.SerializeOnFileOverlap is on, and only for this task's own overlap check --
// an unset value means "no basis to hold this task back", not "touches nothing".
public string? ScopeGlobs { get; set; }
// Review range for a worktree-less task hosting an interactive "list handler" run
// (Mission Control's "Let Claude handle it"): the handler commits its own changes
// straight to the list's working dir, so there is no per-task worktree to diff. These