fix(小宝预警): 等待缓存加载后再触发AI建议
This commit is contained in:
@@ -18,7 +18,7 @@ import { useWorkActivityStore } from '@/stores/useWorkActivityStore';
|
||||
import { useXiaobaoRiskStore } from '@/stores/useXiaobaoRiskStore';
|
||||
import { flattenVersions } from '@/lib/derive';
|
||||
import { calcXiaobaoVersionRisk, type XiaobaoVersionRisk } from '@/lib/xiaobao-risk';
|
||||
import { buildRiskInsightSignature, findLatestRiskInsightForVersion, findPreviousRiskSnapshot, getReusableInsight, requestRiskInsight, shouldRequestRiskInsightWithCooldown } from '@/lib/xiaobao-risk-ai';
|
||||
import { buildRiskInsightSignature, findPreviousRiskSnapshot, getReusableInsight, requestRiskInsight, shouldRequestRiskInsightWithCacheGate } from '@/lib/xiaobao-risk-ai';
|
||||
import { buildVersionDailyEvidence, buildXiaobaoWorkItems } from '@/lib/xiaobao-risk-evidence';
|
||||
import { buildRiskSignature, findLatestDailySnapshot, shouldSaveRiskSnapshot } from '@/lib/xiaobao-risk-trend';
|
||||
import { filterXiaobaoWarningVersions, sanitizeRiskInsight } from '@/lib/xiaobao-warning-view';
|
||||
@@ -45,7 +45,7 @@ function XiaobaoWarningContent() {
|
||||
const { bugs, fetchBugs } = useBugStore();
|
||||
const { activities, fetchActivities } = useWorkActivityStore();
|
||||
const { worklogs, fetchWorklogs } = useTaskWorklogStore();
|
||||
const { snapshots, insights, fetchRiskData, saveSnapshot, saveInsight } = useXiaobaoRiskStore();
|
||||
const { snapshots, insights, riskDataLoaded, fetchRiskData, saveSnapshot, saveInsight } = useXiaobaoRiskStore();
|
||||
const [selectedRiskId, setSelectedRiskId] = useState<string | null>(null);
|
||||
const [filter, setFilter] = useState<RiskFilter>('all');
|
||||
const [calculationNow] = useState(() => new Date());
|
||||
@@ -142,10 +142,8 @@ function XiaobaoWarningContent() {
|
||||
|
||||
useEffect(() => {
|
||||
risks.forEach((risk) => {
|
||||
if (getReusableInsight(insights, risk)) return;
|
||||
const previous = findPreviousRiskSnapshot(snapshots, risk.versionId, today);
|
||||
const latestInsight = findLatestRiskInsightForVersion(insights, risk.versionId);
|
||||
if (!shouldRequestRiskInsightWithCooldown(risk, previous, latestInsight)) return;
|
||||
if (!shouldRequestRiskInsightWithCacheGate(riskDataLoaded, insights, risk, previous)) return;
|
||||
const signature = buildRiskInsightSignature(risk);
|
||||
const key = `${risk.versionId}:${signature}`;
|
||||
if (requestedInsightKeysRef.current.has(key)) return;
|
||||
@@ -161,7 +159,7 @@ function XiaobaoWarningContent() {
|
||||
}).catch(() => {});
|
||||
}).catch(() => {});
|
||||
});
|
||||
}, [insights, risks, saveInsight, snapshots, today]);
|
||||
}, [insights, riskDataLoaded, risks, saveInsight, snapshots, today]);
|
||||
|
||||
const risksWithInsight = useMemo(() => risks.map((risk) => {
|
||||
const cached = getReusableInsight(insights, risk);
|
||||
|
||||
Reference in New Issue
Block a user