Repository navigation
v2.39.0 — a static iframe shell and fewer D1 reads and KV writes
Highlights:
- Static iframe shell:
/embed/?slug=<slug>is served by Workers Static Assets, so an iframe pageview no longer runs the Worker for the shell./embed/<slug>is unchanged. - Fewer D1 reads and KV writes: page vote/reaction totals are stored on write (no per-pageview counting), new admin-list indexes, sessions read once per request and refreshed at half-life,
/feed/:slugand/c/:idedge-cached for 5 minutes. Anonymous comment posts no longer write KV (Workers AI verdict cache removed). - Cost visibility:
/admin/usagecounts D1 rows read/written (not queries) and adds a Workers AI neurons panel; each anti-spam control on/admin/settingsstates its per-comment cost. - Siteverify, Akismet and Workers AI calls now time out (5 s / 3 s / 5 s).
Notes for operators:
- Run
npm run upgrade(migrations 0031, 0032), then run once:npx wrangler d1 execute DB --remote --file src/db/post-deploy/0032_page_engagement_totals.sql. It recounts vote/reaction totals the old Worker changed between migrate and deploy. It is idempotent. Upgrades from this release on run it automatically. - To use the static shell, point iframe embeds at
/embed/?slug=…. Its CSP comes from top-levelALLOWED_ORIGINSinwrangler.tomlat build time, so redeploy after changing it. WithENV = "dev",[env.*]tables or noALLOWED_ORIGINS, the Worker serves that URL instead. - Dashboard figures can trail a moderation action by up to a minute; the queue stays live.