fix: detect workbench recovery authority fanout

This commit is contained in:
Codex
2026-07-08 19:32:56 +02:00
parent bd4722c9a8
commit 2b0778f21f
9 changed files with 509 additions and 13 deletions
@@ -152,6 +152,33 @@ export function nodeWebObserveAnalyzerFindingsSource(): string {
rootCauseConfidence: "high",
valuesRedacted: true
});
const recoveryAuthority = workbenchInPlaceProjectionLag.recoveryAuthority || {};
const recoveryAuthoritySummary = recoveryAuthority.summary || {};
const forbiddenRecoveryCount = Number(recoveryAuthoritySummary.forbiddenAutomaticRecoveryCount ?? 0);
const legacyFanoutWindowCount = Number(recoveryAuthoritySummary.legacyFanoutWindowCount ?? 0);
if (forbiddenRecoveryCount > 0 || legacyFanoutWindowCount > 0) findings.push({
id: "workbench-automatic-recovery-fanout-authority",
severity: "red",
summary: "Workbench automatic recovery used direct trace/session/turn fan-out instead of sync replay authority",
count: forbiddenRecoveryCount + legacyFanoutWindowCount,
forbiddenAutomaticRecoveryCount: forbiddenRecoveryCount,
legacyFanoutWindowCount,
syncReplayEvidenceCount: Number(recoveryAuthoritySummary.syncReplayEvidenceCount ?? 0),
syncReplayAppliedCount: Number(recoveryAuthoritySummary.syncReplayAppliedCount ?? 0),
recoveryAuthority: {
summary: recoveryAuthoritySummary,
forbiddenAutomaticRecovery: Array.isArray(recoveryAuthority.forbiddenAutomaticRecovery) ? recoveryAuthority.forbiddenAutomaticRecovery.slice(0, 12) : [],
legacyFanoutWindows: Array.isArray(recoveryAuthority.legacyFanoutWindows) ? recoveryAuthority.legacyFanoutWindows.slice(0, 12) : [],
syncEvidence: Array.isArray(recoveryAuthority.syncEvidence) ? recoveryAuthority.syncEvidence.slice(-12) : [],
observabilityGaps: Array.isArray(recoveryAuthority.observabilityGaps) ? recoveryAuthority.observabilityGaps.slice(0, 8) : [],
valuesRedacted: true
},
sourceOfTruth: "Workbench sync replay / entity version / terminal seal authority; explicit detail/history reads are allowed but automatic recovery must not hydrate direct REST fan-out",
rootCause: "workbench_automatic_recovery_legacy_fanout",
rootCauseStatus: "confirmed-from-web-performance-runtime-diagnostics-and-network-artifacts",
rootCauseConfidence: "high",
valuesRedacted: true
});
const turnStateTriad = sampleMetrics?.workbenchTurnStateTriad || {};
const turnStateTriadSummary = turnStateTriad.summary || {};
const turnStateTriadRows = [