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
@@ -0,0 +1,17 @@
import { ensureFieldCss } from './Input.jsx';
export function Textarea({ label, required, placeholder, value, defaultValue, onChange, minHeight = 72, danger, style }) {
ensureFieldCss();
const ctrl = (
<textarea className="m-input" placeholder={placeholder} value={value} defaultValue={defaultValue}
style={{ resize: 'vertical', minHeight, width: '100%', ...(danger ? { borderColor: 'var(--red-dim)' } : {}), ...style }}
onChange={onChange ? (e) => onChange(e.target.value) : undefined} readOnly={value !== undefined && !onChange} />
);
if (!label) return ctrl;
return (
<label className="m-label" style={{ width: '100%' }}>
<span>{label}{required ? <span className="m-req"> *</span> : null}</span>
{ctrl}
</label>
);
}