Count reconciliation actions in reports

This commit is contained in:
Luca Martial 2026-05-11 20:39:05 -07:00
parent f13dc27805
commit 66109caa1d
2 changed files with 8 additions and 1 deletions

View file

@ -153,6 +153,7 @@ export const ingestReportSnapshotSchema = z
),
failedWorkUnits: z.array(z.string()),
reconciliationSkipped: z.boolean(),
reconciliationActions: z.array(ingestActionSchema).default([]),
conflictsResolved: z.array(conflictResolvedSchema).default([]),
evictionsApplied: z.array(evictionAppliedSchema).default([]),
unmappedFallbacks: z.array(unmappedFallbackSchema).default([]),

View file

@ -55,6 +55,10 @@ export interface IngestReportBody {
workUnits: IngestReportWorkUnit[];
failedWorkUnits: string[];
reconciliationSkipped: boolean;
// Actions emitted by the reconciliation stage (wiki/sl writes from
// cross-WU reconciliation). Counted alongside workUnit.actions in
// savedMemoryCountsForReport so progress reports reflect all writes.
reconciliationActions?: MemoryAction[];
conflictsResolved: ConflictResolvedRecord[];
evictionsApplied: EvictionAppliedRecord[];
unmappedFallbacks: UnmappedFallbackRecord[];
@ -111,7 +115,9 @@ export function postProcessorSavedMemoryCounts(
}
export function savedMemoryCountsForReport(report: IngestReportSnapshot): IngestSavedMemoryCounts {
const actions = report.body.workUnits.flatMap((workUnit) => workUnit.actions);
const workUnitActions = report.body.workUnits.flatMap((workUnit) => workUnit.actions);
const reconciliationActions = report.body.reconciliationActions ?? [];
const actions = [...workUnitActions, ...reconciliationActions];
const directCounts = {
wikiCount: actions.filter((action) => action.target === 'wiki').length,
slCount: actions.filter((action) => action.target === 'sl').length,