018122648f
Browsers were serving stale frontend assets after rebuilds, which hid the new world/local headline desks: the OLD app.js's refreshCounts() only counted .item children (not .headline), so the new headline desks came up with visibleItems=0 and got the .is-empty class which is display:none. Hard refresh fixed it but only for the user who knew to do that. Append ?v=<generated_at strftime> to both link/script tags in digest.html.j2 and archive.html.j2 so every digest run produces a new asset URL. Works with the existing entrypoint.sh static-asset sync — no other infra needed.