4 months ago
174eb87Arming enqueues a backfill-repo job; the worker replays the repo's stored
change-request events through the real runWorkflows into real runs, so the
dashboard has history the moment they arm. No hand-inserted runs.
The hard requirement — no comments/checks on historical threads — is met by
runWorkflows({surface:false}): it records action rows as 'suppressed', not
'recorded'. The sweeper only picks up 'recorded', and backfill never calls
emitPrSurface/emitPendingCheck, so history appears with zero PR surfaces (test:
run persists, verdict block, all actions suppressed).
Bounded: 30 days, cap 50 change requests, paced 400ms; a failed forge read
degrades one run via the fail-closed floor. Progress on repos (migration 0004) →
RepoLite; BackfillProgress polls 2s and shows 'backfilling — N of M change
requests', the dashboard filling in live via pg_notify. dev:demo skips the
enqueue.
Checks: typecheck all, biome, boundaries, 240/240.Parentc566b0a