feat(merge): 自动合并失败时建最高优先级补救任务来完成合并

decide 端 exec_review accept→merge 冲突失败时,不再只是报错留在闸:
自动建一个 P0 easy 补救任务(operations 写明分支/目标/冲突详情与解冲突步骤),
自治项目会自动领取去解决。幂等:补救任务 id 记到原任务 result.mergeTaskId,
已有未结束补救任务则复用不重复建;结束(done/cancelled)后允许新建。

- model/types: TaskResult 加 mergeTaskId 字段
- mappers/orchestrator: 同步透传/补 null
- store.ensureMergeRemediationTask + store.test 覆盖(P0/easy/ready/operations/幂等/可重建)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-06-13 09:13:30 +08:00
parent 47eeaf1902
commit 217eb6aa1f
7 changed files with 97 additions and 1 deletions
+1
View File
@@ -140,6 +140,7 @@ export function createOrchestrator(store: Store, log: OrchestratorLogger, deps:
diffSummary: diff.diffSummary, commits: diff.commits, prUrl: null,
summary: code.summary, verdict: code.verdict,
securitySummary: sec.summary, securityVerdict: sec.verdict,
mergeTaskId: null,
});
store.transition(task.id, 'exec_review', { by: 'orchestrator', runId: run.id });
store.finishRun(run.id, 'succeeded', {