Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
The BullMQ cron scan never fired on prod (ic frozen at 28 for days, 0 scans completed) even after the lifo change. Root cause, confirmed live: a cron scheduler enqueues a DELAYED marker, and BullMQ promotes delayed jobs to the wait-list HEAD via LPUSH — `promoteDelayedJobs` ignores lifo — while the worker pops from the tail. Behind the ~444k deep-drill backlog the scan marker sat at wait position 1 (head) with ~444k jobs ahead of it → unreachable for weeks. So scheduler-level lifo cannot work; the marker must not go through the queue at all. Run the scan on an in-process hourly timer in PrefetchWorkerService instead (kickoff 60s after boot, then hourly), prod-host gated and single-fired via a Redis NX lock. The scan's Phase-1 still enqueues NON-delayed `lifo` init jobs, which DO jump the wait list (RPUSH tail → popped next), so newly-decoded / zero-parts vehicles get onboarded ahead of the backlog while it drains. jobs.module now removes the old cron scheduler so stale markers stop being produced; the backfill-scan job handler stays so any already-queued legacy marker runs harmlessly. Tested: spec covers the NX lock (run when acquired / skip when held) plus the existing lifo + Phase-1/Phase-2 gating; full api suite 272 passed, `pnpm build` + biome green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>