feat: highlight problem main agent runs
This commit is contained in:
@@ -985,10 +985,12 @@ function renderOneLinerRunsHtml() {
|
||||
const pendingRunCount = safeArray(runs).filter((item) => item.run_status === "needs_confirmation").length;
|
||||
const activeRunCount = safeArray(runs).filter((item) => ["queued", "running", "blocked"].includes(item.run_status)).length;
|
||||
const completedRunCount = safeArray(runs).filter((item) => item.run_status === "done").length;
|
||||
const filterKey = String(appState.onelinerRunFilter || "").trim() || (activeRunCount || pendingRunCount ? "focus" : "done");
|
||||
const problemRunCount = safeArray(runs).filter((item) => ["blocked", "failed", "cancelled"].includes(item.run_status)).length;
|
||||
const filterKey = String(appState.onelinerRunFilter || "").trim() || (activeRunCount || pendingRunCount ? "focus" : completedRunCount ? "done" : "problems");
|
||||
const runFilterPredicates = {
|
||||
focus: (item) => ["needs_confirmation", "queued", "running", "blocked"].includes(item.run_status),
|
||||
done: (item) => item.run_status === "done",
|
||||
problems: (item) => ["blocked", "failed", "cancelled"].includes(item.run_status),
|
||||
all: () => true
|
||||
};
|
||||
const filteredRuns = safeArray(runs).filter(runFilterPredicates[filterKey] || runFilterPredicates.focus);
|
||||
@@ -1035,10 +1037,12 @@ function renderOneLinerRunsHtml() {
|
||||
<span class="tag blue">待确认 ${escapeHtml(formatNumber(pendingRunCount))}</span>
|
||||
<span class="tag green">执行中 ${escapeHtml(formatNumber(activeRunCount))}</span>
|
||||
<span class="tag">已完成 ${escapeHtml(formatNumber(completedRunCount))}</span>
|
||||
<span class="tag orange">异常 ${escapeHtml(formatNumber(problemRunCount))}</span>
|
||||
</div>
|
||||
<div class="task-meta" style="margin-top:10px;">
|
||||
<span class="tag clickable-tag ${filterKey === "focus" ? "blue" : ""}" data-action="select-oneliner-run-filter" data-run-filter="focus">重点运行</span>
|
||||
<span class="tag clickable-tag ${filterKey === "done" ? "green" : ""}" data-action="select-oneliner-run-filter" data-run-filter="done">已完成</span>
|
||||
<span class="tag clickable-tag ${filterKey === "problems" ? "orange" : ""}" data-action="select-oneliner-run-filter" data-run-filter="problems">异常运行</span>
|
||||
<span class="tag clickable-tag ${filterKey === "all" ? "orange" : ""}" data-action="select-oneliner-run-filter" data-run-filter="all">全部</span>
|
||||
</div>
|
||||
${runs.length > 1 ? `
|
||||
@@ -1057,6 +1061,9 @@ function renderOneLinerRunsHtml() {
|
||||
</span>
|
||||
`).join("")}
|
||||
</div>
|
||||
${!filteredRuns.length ? `
|
||||
<div class="panel-subtitle" style="margin-top:8px;">当前筛选下还没有对应运行,已临时显示全部任务。</div>
|
||||
` : ""}
|
||||
` : ""}
|
||||
</div>
|
||||
<div class="task-item compact oneliner-run-card">
|
||||
|
||||
@@ -311,12 +311,15 @@ test("oneliner runtime shows grouped run health summary above the current run ca
|
||||
assert.match(runtime, /待确认/);
|
||||
assert.match(runtime, /执行中/);
|
||||
assert.match(runtime, /已完成/);
|
||||
assert.match(runtime, /异常/);
|
||||
assert.match(runtime, /最近完成/);
|
||||
assert.match(runtime, /recentCompletedRuns/);
|
||||
assert.match(runtime, /select-oneliner-run-filter/);
|
||||
assert.match(runtime, /重点运行/);
|
||||
assert.match(runtime, /已完成/);
|
||||
assert.match(runtime, /异常运行/);
|
||||
assert.match(runtime, /全部/);
|
||||
assert.match(runtime, /problemRunCount/);
|
||||
assert.match(runtime, /safeArray\(runs\)\.filter\(\(item\) => item\.run_status === "needs_confirmation"\)\.length/);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user