Files
probo/pkg/coredata
Émile Ré 952c427d2a Add stale recovery to tracker mapping worker
The tracker-mapping worker clears mapping_requested_at at claim time, so
a crash or hard failure between Process phases left the pattern dequeued,
unmapped, and with nothing to re-trigger it. Only an incidental sibling
remap could rescue it, so a lone pattern could stay stranded forever.

Implement the worker.StaleRecoverer interface, mirroring the enrichment
worker. ResetStaleMappings re-arms rows that were claimed but never
assigned a catalog row (common_tracker_pattern_id IS NULL) once idle past
a configurable window; a successful Process always assigns one via the
unmatched fallback, so the predicate cleanly detects interrupted runs and
self-heals after a single pass. ClearMappingRequestedAt now bumps
updated_at so the stale clock starts at claim time and the sweep never
recycles an in-flight claim.

Plumb a StaleAfter knob (default 600s) through the config struct, builder
env var, probod wiring, and Helm templates.

Signed-off-by: Émile Ré <emile@probo.com>
2026-06-01 13:17:18 +02:00
..
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 09:27:28 +04:00
2026-06-01 13:17:17 +02:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-28 12:30:36 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 09:27:28 +04:00
2026-05-20 09:27:28 +04:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-04-13 14:50:42 +04:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-04-03 11:56:06 +02:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-19 21:44:27 +02:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 09:27:28 +04:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-26 15:49:17 +02:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 15:36:47 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 15:36:47 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 09:27:28 +04:00
2026-04-03 11:56:06 +02:00
2026-05-23 14:07:37 -07:00
2026-05-20 09:27:28 +04:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 09:27:28 +04:00
2026-04-03 11:56:06 +02:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-28 12:30:34 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-23 14:07:37 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 09:27:28 +04:00
2026-05-20 15:36:47 -07:00
2026-05-20 15:36:47 -07:00
2026-05-20 09:27:28 +04:00
2026-05-23 14:07:37 -07:00