← back to Nationalrealestate
usre: loud+identifiable log on first-see lifecycle failure (explains ingest listing_count vs new-event off-by-one; sweep is the safety net) (TK-10155)
aeba005a3f69c3e0fdeee6a1b4518930fcaffebc · 2026-08-03 07:04:57 -0700 · steve
Files touched
M src/ingest/listings/engine.ts
Diff
commit aeba005a3f69c3e0fdeee6a1b4518930fcaffebc
Author: steve <steve@designerwallcoverings.com>
Date: Mon Aug 3 07:04:57 2026 -0700
usre: loud+identifiable log on first-see lifecycle failure (explains ingest listing_count vs new-event off-by-one; sweep is the safety net) (TK-10155)
---
src/ingest/listings/engine.ts | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/ingest/listings/engine.ts b/src/ingest/listings/engine.ts
index 2562718..54779f2 100644
--- a/src/ingest/listings/engine.ts
+++ b/src/ingest/listings/engine.ts
@@ -100,7 +100,10 @@ async function upsertListing(
);
}
} catch (e: any) {
- console.warn(`[${source}] lifecycle first-see record skipped: ${e?.message || e}`);
+ // Loud + identifiable (TK-10155 Cycle-3): a swallowed first-see failure is why an ingest's
+ // listing_count can exceed the new-event count by 1+. Not fatal — the next sweep re-derives
+ // state for every listing and writes the missing 'new' event + snapshot as its safety net.
+ console.error(`[${source}] lifecycle first-see record FAILED for source_id=${f.sourceId} (sweep will recover): ${e?.message || e}`);
}
}
← 3709d7d usre: coverage-gate the full-rescan marker — downgrade to 'p
·
back to Nationalrealestate
·
usre: agent(broker) own-site discovery — $0 free-SERP + loca cacffea →