Fig 1How AI;DR worksMove across to turn the clock · ← →
In
→
Out
1 Schedule: a run every 30 min
2 Fetch + dedupe
3 Score: router → JEV → LLM, batches of 5; then merge
4 Rank: last 72h; top 16 of 24h → TL;DR
5 TL;DR snapshot (EN + VI)
6 Email · Telegram · Facebook
Outlined bar: the #1 story at this hourBars left of the gate: the top 16 of the last 24 hours, the TL;DR's inputOutlets: email 07:00 in each subscriber's timezone (EN and VI lanes); Telegram (VI and EN) and Facebook (EN only) 08:00 ICTReal data: 294 items from production D1, fetched 2026-10-10 18:00 to 2026-10-12 00:00 ICT, from 50 enabled sources. Every 30 minutes a run starts (one turn of the dial; a run asked for inside the 25-minute arc is skipped). Fetch drops any URL already stored (id = sha256 of the URL). A decision router, JEV and then an LLM score importance and quality in batches of 5, and same-story items are merged into one story. The rack re-ranks the last 72 hours with the Worker's rank formula: importance^1.5/√10 × (0.6 + 0.4·quality/10) × age decay × min(engagement × source boost, 3.25) × votes × breaking boost. Engagement counts only Hacker News and Lobsters points; the source boost counts distinct outlet families in the story. Bar height is the score, ruled every 2. The TL;DR takes the top 16 of the rolling 24 hours into an English and a Vietnamese list that never fill in for each other; it is written for each new local date and refreshed after 3 hours. Each channel sends once per local date.