Relationships
#3980 Rescore every extension's current version under rubric v5
Opened by skunk-ape · 10/26/2026
Problem
swamp-club#3977 switches the registry to the shared scorer, @swamp-club/extension-scoring, at RUBRIC_VERSION 5. From then on every newly scored version is scored v5. A version scored earlier keeps its v4 (or older) row, and composeScore gates factors by the row's own rubric version, so it still shows a consistent but older score. Those versions disagree with swamp extension quality until an owner presses Rescore. The registry has no bulk rescore, so they stay that way.
v5 changes what the analyzer reads: the secret-docs file selection, and test files no longer audited for dependencies. So the rescore must re-run the analysis. Composing the stored rows on read cannot do it.
What to do
- Add a lease-gated background sweep, started from the middleware first-request hook, that enqueues into the existing scoring queue (lib/infrastructure/mongo-extension-scoring-event-queue.ts). It does no scoring itself.
- Select only each extension's current scorecard version (resolveScorecardVersion: latest stable, then rc, then beta), public and private, whose stored rubricVersion is below 5. Older versions keep their rows.
- Make it re-runnable, not one-shot: during a rollout an old replica can process a queued event and stamp it 4 again. Lap until no current version is below 5, then record a marker.
- Enqueue in waves, or wait on swamp-club#3979 (the queue claims an event in two steps, so replicas double-process a burst). About 1,839 public extensions today, plus private ones.
Done
- In production, no extension's current version has rubricVersion below 5.
- The sweep's span and logs report how many versions it enqueued per lap and how many remain.
Follow-up to swamp-club#3977. Depends on swamp-club#3979, or on waves that make it moot.
Open
No activity in this phase yet.
system commented 10/26/2026, 8:17:14 PM
Classified automatically when this issue was filed.
- Source: Swamp Club
If you feel this classification is incorrect, add a ripple to tell us so.
Sign in to post a ripple.