fix(小宝预警): 稳定风险证据与建议更新

关键改动:

- 优化风险证据的日报工时与静默风险计算

- 稳定 AI 触发签名,避免证据细节变化造成重复请求

- 调整预警建议更新状态与相关测试

Co-Authored-By: Codex GPT-5 <codex@openai.com>
This commit is contained in:
Script Generator
2026-07-01 11:26:16 +08:00
parent 8947aeaac7
commit e5ef9ee28b
7 changed files with 421 additions and 43 deletions

View File

@@ -370,8 +370,6 @@ function buildDisplayCompatibilityKey(signature: string): string | undefined {
const parsed = JSON.parse(signature) as Record<string, unknown>;
const signals = readRecord(parsed.signals);
const trend = readRecord(parsed.trend);
const dailyEvidence = readRecord(parsed.dailyEvidence);
return JSON.stringify({
versionId: readString(parsed.versionId),
riskScore: normalizeInteger(parsed.riskScore),
@@ -394,15 +392,6 @@ function buildDisplayCompatibilityKey(signature: string): string | undefined {
},
reasons: normalizeCompatibilityReasons(parsed.reasons),
silentRisks: normalizeCompatibilitySilentRisks(parsed.silentRisks),
dailyEvidence: {
todayDeliveries: normalizeCompatibilityEvidence(dailyEvidence.todayDeliveries),
todayProgress: normalizeCompatibilityEvidence(dailyEvidence.todayProgress),
todayCreations: normalizeCompatibilityEvidence(dailyEvidence.todayCreations),
todayRisks: normalizeCompatibilityEvidence(dailyEvidence.todayRisks),
progressNotes: normalizeCompatibilityEvidence(dailyEvidence.progressNotes),
needsProgressItems: normalizeCompatibilityEvidence(dailyEvidence.needsProgressItems),
totalActivityCount: normalizeInteger(dailyEvidence.totalActivityCount),
},
});
} catch {
return undefined;
@@ -430,16 +419,6 @@ function normalizeCompatibilitySilentRisks(rows: unknown) {
.sort(compareSignatureRows);
}
function normalizeCompatibilityEvidence(rows: unknown) {
return asRecordArray(rows)
.map((row) => ({
id: readString(row.id),
title: readString(row.title),
summary: readString(row.summary),
}))
.sort(compareSignatureRows);
}
function asRecordArray(rows: unknown): Array<Record<string, unknown>> {
return Array.isArray(rows) ? rows.map(readRecord).filter((row) => Object.keys(row).length > 0) : [];
}