fix: make sentinel trend aggregate exact

This commit is contained in:
Codex
2026-06-28 07:22:05 +00:00
parent 2f0fe399ef
commit bdb00ff616
@@ -71,7 +71,7 @@ createApp({
timeLabel: formatDate(rawTime),
absoluteTime: formatAbsoluteDate(rawTime),
reportSha: shortHash(run.reportJsonSha256 || run.report_json_sha256 || run.reportSha256 || ""),
title: `${shortId(run.id)} ${formatAbsoluteDate(rawTime)} 错误 ${red} 警告 ${warning} 总量 ${total}`,
title: `${shortId(run.id)} ${formatAbsoluteDate(rawTime)} 错误 ${red} 警告 ${warning} 合计 ${total}`,
};
}));
const timelineRuns = computed(() => runs.value.slice(0, 16));
@@ -237,6 +237,7 @@ createApp({
redCount,
warningCount,
findingCount,
trendTotalCount,
severityClass,
formatDate,
formatAbsoluteDate,
@@ -301,7 +302,7 @@ createApp({
<section class="trend-panel" aria-labelledby="trend-heading">
<div class="panel-header">
<div>
<h2 id="trend-heading">错误 / 警告监测项曲线</h2>
<h2 id="trend-heading">错误 / 警告 / 合计曲线</h2>
<p>按运行更新时间展示最近 {{ trendRows.length }} 次变化</p>
</div>
<span class="pill" :class="cadence.stale ? 'warning' : 'healthy'">{{ cadence.stale ? "非阻塞报警" : "新鲜" }}</span>
@@ -344,7 +345,7 @@ createApp({
<strong>{{ shortId(hoveredTrendDot.runId) }}</strong>
<span>{{ hoveredTrendDot.absoluteTime }}</span>
<span>状态 {{ hoveredTrendDot.status }}</span>
<span>错误 {{ hoveredTrendDot.red }} / 警告 {{ hoveredTrendDot.warning }} / 总量 {{ hoveredTrendDot.total }}</span>
<span>错误 {{ hoveredTrendDot.red }} / 警告 {{ hoveredTrendDot.warning }} / 合计 {{ hoveredTrendDot.total }}</span>
<span v-if="hoveredTrendDot.reportSha">report {{ hoveredTrendDot.reportSha }}</span>
</div>
<div v-if="trendRows.length === 0" class="trend-empty">暂无运行数据</div>
@@ -352,7 +353,7 @@ createApp({
<div class="trend-legend">
<span class="legend-item"><span class="legend-swatch red"></span>错误 {{ redCount({ severityCounts: severityTotals }) }}</span>
<span class="legend-item"><span class="legend-swatch warning"></span>警告 {{ warningCount({ severityCounts: severityTotals }) }}</span>
<span class="legend-item"><span class="legend-swatch total"></span>监测项总量 {{ findingCount({ findingCount: overview?.latestRun?.findingCount, severityCounts: severityTotals }) }}</span>
<span class="legend-item"><span class="legend-swatch total"></span>错误+警告合计 {{ trendTotalCount({ severityCounts: severityTotals }) }}</span>
<span class="legend-item">{{ cadence.alert }}</span>
</div>
</section>
@@ -588,9 +589,7 @@ function trendWarningCount(item) {
}
function trendTotalCount(item) {
const counts = trendSeverityCounts(item);
if (!counts) return 0;
return Object.values(counts).reduce((sum, value) => sum + number(value), 0);
return trendErrorCount(item) + trendWarningCount(item);
}
function findingCount(item) {