feat(worker): add post-merge verification gate for list merges
Per-list optional VerifyCommand (list_config.verify_command) runs via VerifyCommandRunner in the list's working dir right after a successful merge/continue-merge, before the task is allowed to reach Done. A non-zero exit or timeout leaves the merge in place but keeps the task out of Done and reports StatusVerifyFailed with an output excerpt through MergeResultDto/review_task; no command configured behaves exactly as before. Merges against the same repo are now serialized per working dir so a running verify can't be interrupted by a second merge landing mid-build. Adds the field to the List Settings modal (en/de localized) and covers success/failure/timeout in TaskMergeServiceTests + VerifyCommandRunnerTests.
This commit is contained in:
@@ -78,6 +78,16 @@ Offene Entscheidungen dazu:
|
||||
lives as two new nullable columns directly on `TaskEntity` (not a phantom `WorktreeEntity` row),
|
||||
specifically so `list_worktrees`/the Worktrees overview never see it.
|
||||
|
||||
- **Post-merge verify gate (2026-08-05)** — build + unit tests all green (incl. real-process
|
||||
`VerifyCommandRunner` exit-code/output/timeout tests and `TaskMergeService` success/failure/
|
||||
timeout paths via a fake runner), but **not visually verified**: open a list's Settings modal,
|
||||
confirm the new "VERIFICATION" section renders below Agent with a settable/clearable
|
||||
`VerifyCommand` field; approve a task on a list with a failing command configured and confirm
|
||||
the footer/error surfacing (`ShowErrorAsync`) actually shows the verify failure message instead
|
||||
of silently looking like nothing happened. Also no real-build smoke test (a real `dotnet build`/
|
||||
`dotnet test` invocation as the configured command) — only fast synthetic commands (`exit N`,
|
||||
`ping` for timeout) were exercised.
|
||||
|
||||
---
|
||||
|
||||
## Bewusst verworfen (nicht erneut vorschlagen)
|
||||
|
||||
Reference in New Issue
Block a user