// Deterministic post-deep-dive reconciliation. // // Runs after metrics deep-dive and before investigation briefs. Its job is to // prevent weak candidates from consuming investigator budget when the // follow-up metric evidence already disproves or reframes the gate hypothesis. const SLOW_ROUTE_P95_THRESHOLD_MS = 500; const ERROR_RATE_DOMINATES_THRESHOLD = 0.5; const DEPLOYMENT_OUTLIER_MULTIPLE = 2; const DEPLOYMENT_OUTLIER_MIN_MS = 1000; const ROUTE_ERROR_CONFIRMATION_RATIO = 0.1; const UNCACHED_HEALTHY_HIT_RATE = 0.9; const UNCACHED_MIN_GET_SHARE = 0.2; const ISR_WRITE_FLOOR = 100; const ISR_WRITE_READ_RATIO_THRESHOLD = 0.5; const SCANNER_ONLY_KINDS = new Set([ 'cache_header_gap', 'image_optimization', 'rendering_candidate', ]); export function reconcileInvestigation(investigation, { gate = null } = {}) { if (!investigation || typeof investigation !== 'object') { throw new TypeError('reconcileInvestigation investigation must be an object'); } const preResolvedRecords = []; const reconciliation = { droppedBeforeInvestigation: 0, reasons: {}, }; const reconcilePool = (pool, group) => { if (!Array.isArray(pool)) return []; const kept = []; for (let i = 0; i < pool.length; i++) { const candidate = pool[i]; const decision = reconcileCandidate(candidate, { group, index: i, gate }); if (decision.keep) { kept.push(candidate); continue; } reconciliation.droppedBeforeInvestigation++; reconciliation.reasons[decision.reasonCode] = (reconciliation.reasons[decision.reasonCode] ?? 0) + 1; preResolvedRecords.push(decision.record); } return kept; }; const priorPreResolved = Array.isArray(investigation.preResolvedRecords) ? investigation.preResolvedRecords : []; return { ...investigation, toLaunch: reconcilePool(investigation.toLaunch, 'toLaunch'), platform: reconcilePool(investigation.platform, 'platform'), preResolvedRecords: [...priorPreResolved, ...preResolvedRecords], reconciliation: { ...(investigation.reconciliation ?? {}), ...reconciliation, }, }; } export function reconcileCandidate(candidate, ctx = {}) { if (!candidate || typeof candidate !== 'object') return { keep: true }; const scannerOnly = scannerOnlyDecision(candidate, ctx); if (scannerOnly) return scannerOnly; if (candidate.kind === 'slow_route') { const errorDecision = slowRouteErrorDecision(candidate, ctx); if (errorDecision) return errorDecision; const mismatchDecision = slowRouteMetricMismatchDecision(candidate, ctx); if (mismatchDecision) return mismatchDecision; const regressionDecision = deploymentRegressionDecision(candidate, ctx); if (regressionDecision) return regressionDecision; } if (candidate.kind === 'route_errors') { const mismatchDecision = routeErrorsMetricMismatchDecision(candidate, ctx); if (mismatchDecision) return mismatchDecision; } if (candidate.kind === 'uncached_route') { const cacheDecision = uncachedRouteCacheDecision(candidate, ctx); if (cacheDecision) return cacheDecision; const methodDecision = uncachedRouteMethodDecision(candidate, ctx); if (methodDecision) return methodDecision; } if (candidate.kind === 'isr_overrevalidation') { const isrDecision = isrOverrevalidationDecision(candidate, ctx); if (isrDecision) return isrDecision; } return { keep: true }; } function scannerOnlyDecision(candidate, ctx) { if (!SCANNER_ONLY_KINDS.has(candidate.kind)) return null; if (candidate.o11ySignal !== 'scanner-only') return null; return dropWithObservation(candidate, ctx, { reasonCode: 'scanner_only_no_metric', reason: 'Static scanner found a possible optimization, but no Vercel metric tied traffic or cost to this target.', observation: { kind: 'scanner_only_no_metric', summary: `${targetLabel(candidate)} has a static scanner finding, but no route-level Vercel metric signal.`, evidence: `gate signal=${candidate.o11ySignal}`, suggestedAction: 'Do not ship a recommendation from this finding unless a Vercel metric shows material traffic, cost, or latency for the same target.', }, }); } function slowRouteMetricMismatchDecision(candidate, ctx) { const p95 = numberAt(candidate, ['evidence', 'deepDive', 'latency', 'p95']); if (p95 == null) return null; if (p95 >= SLOW_ROUTE_P95_THRESHOLD_MS) return null; return dropWithObservation(candidate, ctx, { reasonCode: 'metric_mismatch', reason: `Deep-dive p95 (${formatMs(p95)}) is below the slow-route threshold, so the broad gate did not survive follow-up verification.`, observation: { kind: 'metric_mismatch', summary: `${targetLabel(candidate)} was flagged as slow in the broad pass, but follow-up p95 is below threshold.`, evidence: `${candidate.o11ySignal ?? 'gate signal unavailable'}; deepDive.latency.p95=${formatMs(p95)}`, suggestedAction: 'Skip code investigation for this run. Re-check only if the broad and follow-up windows converge in a later run.', }, }); } function slowRouteErrorDecision(candidate, ctx) { const rows = arrayAt(candidate, ['evidence', 'deepDive', 'statusDistribution']); if (rows.length === 0) return null; let total = 0; let errors = 0; for (const row of rows) { const value = numberValue(row?.value); if (value == null) continue; total += value; if (/^5/.test(String(row.http_status ?? ''))) errors += value; } if (total <= 0) return null; const rate = errors / total; if (rate <= ERROR_RATE_DOMINATES_THRESHOLD) return null; return dropWithObservation(candidate, ctx, { reasonCode: 'error_storm', reason: `Function-level 5xx responses dominate this route (${formatPct(rate)}), so this is a reliability finding rather than a slow-route finding.`, observation: { kind: 'error_storm', summary: `${targetLabel(candidate)} latency is dominated by function-level 5xx responses.`, evidence: `deepDive.statusDistribution: ${formatInteger(errors)} 5xx of ${formatInteger(total)} function invocations (${formatPct(rate)})`, suggestedAction: 'Investigate as route_errors with runtime logs and error classification before making performance recommendations.', }, }); } function deploymentRegressionDecision(candidate, ctx) { const rows = arrayAt(candidate, ['evidence', 'deepDive', 'perDeployment']) .filter((row) => row && typeof row.deployment_id === 'string' && numberValue(row.value) != null) .map((row) => ({ deploymentId: row.deployment_id, p95: numberValue(row.value) })) .sort((a, b) => b.p95 - a.p95); if (rows.length < 3) return null; const [worst, second] = rows; if (!worst || !second || worst.p95 < DEPLOYMENT_OUTLIER_MIN_MS) return null; if (worst.p95 < second.p95 * DEPLOYMENT_OUTLIER_MULTIPLE) return null; return dropWithObservation(candidate, ctx, { reasonCode: 'deployment_regression', reason: `One deployment is a large latency outlier (${worst.deploymentId} at ${formatMs(worst.p95)}), so the next action is regression triage rather than generic code optimization.`, observation: { kind: 'deployment_regression', summary: `${targetLabel(candidate)} p95 is concentrated in one deployment.`, evidence: `${worst.deploymentId} p95=${formatMs(worst.p95)} vs next highest ${second.deploymentId} p95=${formatMs(second.p95)}`, suggestedAction: 'Compare the outlier deployment against the prior deployment and inspect runtime logs before recommending a code-level performance change.', }, }); } function routeErrorsMetricMismatchDecision(candidate, ctx) { const broadErrors = numberAt(candidate, ['evidence', 'count']) ?? parseSignalNumber(candidate.o11ySignal, 'errs'); if (broadErrors == null || broadErrors < 1000) return null; const rows = [ ...arrayAt(candidate, ['evidence', 'deepDive', 'errorStatusPattern']), ...arrayAt(candidate, ['evidence', 'deepDive', 'errorsByDeployment']), ]; if (rows.length === 0) return null; let confirmed5xx = 0; for (const row of rows) { if (!/^5\d\d$/.test(String(row?.http_status ?? ''))) continue; const value = numberValue(row?.value); if (value != null) confirmed5xx += value; } // errorStatusPattern and errorsByDeployment can both be present; avoid // double-count inflation by taking the lower non-zero route-level view when available. const statusRows = arrayAt(candidate, ['evidence', 'deepDive', 'errorStatusPattern']); const status5xx = sumRows(statusRows, (row) => /^5\d\d$/.test(String(row?.http_status ?? ''))); if (status5xx > 0) confirmed5xx = status5xx; if (confirmed5xx >= broadErrors * ROUTE_ERROR_CONFIRMATION_RATIO) return null; return dropWithObservation(candidate, ctx, { reasonCode: 'metric_mismatch', reason: `Deep-dive 5xx volume (${formatInteger(confirmed5xx)}) does not confirm the broad route_errors gate (${formatInteger(broadErrors)}).`, observation: { kind: 'metric_mismatch', summary: `${targetLabel(candidate)} was flagged for 5xx errors, but follow-up status data did not confirm the volume.`, evidence: `${candidate.o11ySignal ?? 'gate signal unavailable'}; deepDive.confirmed5xx=${formatInteger(confirmed5xx)}`, suggestedAction: 'Skip code recommendations from this run. Re-run with refreshed status metrics or runtime logs if the route is still suspected.', }, }); } function uncachedRouteCacheDecision(candidate, ctx) { const rows = arrayAt(candidate, ['evidence', 'deepDive', 'cacheBreakdown']); if (rows.length === 0) return null; const total = sumRows(rows); if (total <= 0) return null; const hits = sumRows(rows, (row) => ['HIT', 'STALE'].includes(String(row?.cache_result ?? '').toUpperCase())); const hitRate = hits / total; if (hitRate < UNCACHED_HEALTHY_HIT_RATE) return null; return dropWithObservation(candidate, ctx, { reasonCode: 'metric_mismatch', reason: `Deep-dive cache hit rate (${formatPct(hitRate)}) is already healthy, so the uncached-route gate did not survive follow-up verification.`, observation: { kind: 'metric_mismatch', summary: `${targetLabel(candidate)} was flagged as low-cache, but follow-up cache data is already healthy.`, evidence: `${candidate.o11ySignal ?? 'gate signal unavailable'}; deepDive.cacheHitRate=${formatPct(hitRate)}`, suggestedAction: 'Skip cache recommendations for this candidate unless a later run shows sustained MISS/BYPASS traffic.', }, }); } function uncachedRouteMethodDecision(candidate, ctx) { const rows = arrayAt(candidate, ['evidence', 'deepDive', 'methodDistribution']); if (rows.length === 0) return null; const total = sumRows(rows); if (total <= 0) return null; const gets = sumRows(rows, (row) => String(row?.request_method ?? '').toUpperCase() === 'GET'); const getShare = gets / total; if (getShare >= UNCACHED_MIN_GET_SHARE) return null; return dropWithObservation(candidate, ctx, { reasonCode: 'protocol_mismatch', reason: `Deep-dive GET share (${formatPct(getShare)}) is below the cacheable-route floor, so this is not a good shared-cache candidate.`, observation: { kind: 'protocol_mismatch', summary: `${targetLabel(candidate)} is not GET-heavy enough for a shared-cache recommendation.`, evidence: `${candidate.o11ySignal ?? 'gate signal unavailable'}; deepDive.getShare=${formatPct(getShare)}`, suggestedAction: 'Do not recommend CDN caching for this route from aggregate traffic alone. Investigate write-path cost only if another metric gate fires.', }, }); } function isrOverrevalidationDecision(candidate, ctx) { const writeRows = arrayAt(candidate, ['evidence', 'deepDive', 'writePattern']); const readRows = arrayAt(candidate, ['evidence', 'deepDive', 'readPattern']); if (writeRows.length === 0 && readRows.length === 0) return null; const writes = sumRows(writeRows); const reads = sumRows(readRows); const ratio = reads > 0 ? writes / reads : (writes > 0 ? Infinity : 0); if (reads <= 0) { return dropWithObservation(candidate, ctx, { reasonCode: 'metric_mismatch', reason: 'Deep-dive ISR read units were not present, so the write/read over-revalidation signal was not confirmed.', observation: { kind: 'metric_mismatch', summary: `${targetLabel(candidate)} was flagged for ISR over-revalidation, but follow-up ISR read data was empty.`, evidence: `${candidate.o11ySignal ?? 'gate signal unavailable'}; deepDive.isrWrites=${formatInteger(writes)}; deepDive.isrReads=${formatInteger(reads)}`, suggestedAction: 'Skip ISR recommendations for this candidate unless a later run confirms both ISR writes and reads for the same route.', }, }); } if (writes >= ISR_WRITE_FLOOR && ratio > ISR_WRITE_READ_RATIO_THRESHOLD) return null; const ratioLabel = ratio === Infinity ? 'Infinity' : ratio.toFixed(2); return dropWithObservation(candidate, ctx, { reasonCode: 'metric_mismatch', reason: `Deep-dive ISR writes per read (${ratioLabel}) no longer crosses the over-revalidation threshold.`, observation: { kind: 'metric_mismatch', summary: `${targetLabel(candidate)} was flagged for ISR over-revalidation, but follow-up ISR data did not confirm it.`, evidence: `${candidate.o11ySignal ?? 'gate signal unavailable'}; deepDive.isrWrites=${formatInteger(writes)}; deepDive.isrReads=${formatInteger(reads)}; ratio=${ratioLabel}`, suggestedAction: 'Skip ISR recommendations for this candidate unless a later run shows sustained write amplification.', }, }); } function dropWithObservation(candidate, ctx, { reasonCode, reason, observation }) { return { keep: false, reasonCode, record: { abstain: true, candidateRef: candidateRefFor(candidate), reason, observation, reconciliation: { droppedBeforeInvestigation: true, reasonCode, group: ctx.group ?? null, index: Number.isInteger(ctx.index) ? ctx.index : null, }, }, }; } export function candidateRefFor(candidate, files = candidate?.files) { if (!candidate || typeof candidate !== 'object') return 'unknown:'; const target = candidate.route ?? candidate.hostname ?? (Array.isArray(files) && files.length > 0 ? `#${files[0]}` : ''); return `${candidate.kind ?? 'unknown'}:${target}`; } function targetLabel(candidate) { return candidate.route ?? candidate.hostname ?? candidate.files?.[0] ?? 'account-level target'; } function arrayAt(obj, path) { let cur = obj; for (const p of path) cur = cur?.[p]; return Array.isArray(cur) ? cur : []; } function numberAt(obj, path) { let cur = obj; for (const p of path) cur = cur?.[p]; return numberValue(cur); } function numberValue(value) { return typeof value === 'number' && Number.isFinite(value) ? value : null; } function sumRows(rows, predicate = () => true) { if (!Array.isArray(rows)) return 0; let total = 0; for (const row of rows) { if (!predicate(row)) continue; const value = numberValue(row?.value); if (value != null) total += value; } return total; } function parseSignalNumber(signal, key) { if (typeof signal !== 'string') return null; const re = new RegExp(`(?:^|,)${key}=([\\d,.]+)`); const m = signal.match(re); if (!m) return null; const n = Number(m[1].replace(/,/g, '')); return Number.isFinite(n) ? n : null; } function formatMs(value) { const n = numberValue(value); if (n == null) return String(value); return `${Math.round(n)}ms`; } function formatPct(value) { const n = numberValue(value); if (n == null) return String(value); return `${(n * 100).toFixed(n >= 0.1 ? 1 : 2)}%`; } function formatInteger(value) { const n = numberValue(value); if (n == null) return String(value); return Math.round(n).toLocaleString('en-US'); }