merge: maestro/tsk_kmdMuWSn0HUS [配置面板补 verifyCmd / 项目级 model]

# Conflicts:
#	web/app.js
#	web/index.html
This commit is contained in:
wangjia
2026-06-13 09:02:52 +08:00
2 changed files with 13 additions and 1 deletions
+5 -1
View File
@@ -1227,6 +1227,8 @@ document.addEventListener('click', (ev) => {
$('#cfgConcurrency').value = p.concurrency ?? 1; $('#cfgConcurrency').value = p.concurrency ?? 1;
$('#cfgAutonomy').value = AUTONOMY_LABEL[p.autonomy] ? p.autonomy : 'manual'; $('#cfgAutonomy').value = AUTONOMY_LABEL[p.autonomy] ? p.autonomy : 'manual';
$('#cfgLogo').value = p.logo ?? ''; $('#cfgLogo').value = p.logo ?? '';
$('#cfgVerifyCmd').value = p.verifyCmd ?? '';
$('#cfgModel').value = p.model ?? '';
} }
} }
break; break;
@@ -1237,9 +1239,11 @@ document.addEventListener('click', (ev) => {
if (!Number.isInteger(cc) || cc < 1) { toast('最大并发必须是 ≥1 的整数'); break; } if (!Number.isInteger(cc) || cc < 1) { toast('最大并发必须是 ≥1 的整数'); break; }
const autonomy = $('#cfgAutonomy').value; const autonomy = $('#cfgAutonomy').value;
const logo = $('#cfgLogo').value.trim(); const logo = $('#cfgLogo').value.trim();
const verifyCmd = $('#cfgVerifyCmd').value.trim() || null;
const model = $('#cfgModel').value.trim() || null;
act(async () => { act(async () => {
await api(`/api/projects/${S.currentProjectId}`, { await api(`/api/projects/${S.currentProjectId}`, {
method: 'PATCH', body: JSON.stringify({ concurrency: cc, autonomy, logo: logo || null }), method: 'PATCH', body: JSON.stringify({ concurrency: cc, autonomy, logo: logo || null, verifyCmd, model }),
}); });
await loadProjects(); // 刷新当前值显示 + logo await loadProjects(); // 刷新当前值显示 + logo
renderSidebar(); renderSidebar();
+8
View File
@@ -82,6 +82,14 @@
<input id="cfgLogo" type="text" placeholder="图片 URL 或仓库内相对路径;留空=自动(仓库 logo→git 头像→首字母)"> <input id="cfgLogo" type="text" placeholder="图片 URL 或仓库内相对路径;留空=自动(仓库 logo→git 头像→首字母)">
</label> </label>
</div> </div>
<div class="form-row">
<label class="grow">校验命令
<input id="cfgVerifyCmd" type="text" placeholder="npm test · go test ./... (可空)" autocomplete="off">
</label>
<label class="grow">项目 Model
<input id="cfgModel" type="text" placeholder="claude-opus-4-5(可空,留空用全局默认)" autocomplete="off">
</label>
</div>
<div class="form-row cfg-sync-row"> <div class="form-row cfg-sync-row">
<span id="syncMeta" class="sync-meta"></span> <span id="syncMeta" class="sync-meta"></span>
<button id="btnSync" class="btn btn-xs" data-action="sync-todo">⟳ 同步 todo</button> <button id="btnSync" class="btn btn-xs" data-action="sync-todo">⟳ 同步 todo</button>