146a044e6958b130ee50248ba11636f90e598c45
The old approach added ±12 noise to scores that span -365..+100 (recency uses raw Julian days), so the perturbation could never reorder videos that differed by more than 24 points — which is almost all of them. Every reshuffle returned the same ranking. Fixes: - Per-channel candidate window: rn <= 15 (was rn <= 5) for a much wider pool - Candidate pool: up to 600 per page (was limit * 4 = 100) - Non-overlapping page offsets: page N pulls SQL rows N*600 .. (N+1)*600 so pagination actually moves through new material instead of re-reading the same top-100 - Replaced ±12 perturbation with proper tier-based random sampling: top 40% → 60% of page, mid 40% → 30%, bottom 20% → 10% wildcards Each reshuffle picks a genuinely different mix from the score-ranked pool Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Description
No description provided
Languages
JavaScript
53.6%
Python
45.9%
HTML
0.2%
Dockerfile
0.2%