feat(agent): 接通 plan 自动放行(autoApprovePlan)+ 项目配置可写

之前 auto_approve_plan/auto_approve_exec/checks 列与 Project 类型已存在,但
PatchProjectInput 不含它们 → 无法启用(dead config)。本次接通:
- PatchProjectInput + patchProject 支持 autoApprovePlan/autoApproveExec/checks
- API PATCH /projects 透传三字段
- ingest decompose-result:auto-approved + autoApprovePlan + 全 easy + 子任务≤5
  → store.decide(accept) 跳过 plan_review 直达 decomposed(默认关)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-06-24 22:13:18 +08:00
parent ecea1ae9b6
commit 73f80d27c9
107 changed files with 10970 additions and 0 deletions
+8
View File
@@ -45,6 +45,7 @@ export interface PatchProjectInput {
model?: string | null; status?: 'active' | 'paused'; logo?: string | null;
maxRetries?: number; timeoutMs?: number;
budgetUsd?: number | null; budgetPeriod?: 'day' | 'month';
autoApprovePlan?: boolean; autoApproveExec?: boolean; checks?: string | null;
}
export interface PatchTaskInput {
title?: string; priority?: number; complexity?: Complexity; deps?: string[];
@@ -230,6 +231,13 @@ export class Store {
}
sets.push('budget_period = @budget_period'); args.budget_period = patch.budgetPeriod;
}
if (patch.autoApprovePlan !== undefined) {
sets.push('auto_approve_plan = @auto_approve_plan'); args.auto_approve_plan = patch.autoApprovePlan ? 1 : 0;
}
if (patch.autoApproveExec !== undefined) {
sets.push('auto_approve_exec = @auto_approve_exec'); args.auto_approve_exec = patch.autoApproveExec ? 1 : 0;
}
if (patch.checks !== undefined) { sets.push('checks = @checks'); args.checks = patch.checks; }
if (sets.length > 0) {
this.db.prepare(`UPDATE projects SET ${sets.join(', ')} WHERE id = @id`).run(args);