a7d126787f
The director had no idea what hour or season a session started in, so a 22:00 weeknight and a Sunday morning drew from the same pool. The client now sends localHour, weekday, month and an optional timeZone; the route validates and bounds all four, the coordinator threads them through, and the generators use them as scoring signals. Also exposes GET /library/stats, which the Home page counts read. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>