worker serves /leaderboard.json dynamically, UI fetches from worker URL
drops the in-cycle wispctl publish step in favor of KV-cached payload
served from the worker's fetch handler. wisp's 10-min edge cache was
the reason the UI lagged behind the data layer; fetching from the
worker bypasses that entirely.
bun run publish now ships only html/css/js; the leaderboard file is no
longer part of the wisp manifest.
Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>