- Drop the embedded 20-contact RAW_DATA sample; the logbook now comes
only from data/k5bss-log.json
- Show a banner and table message when the log fails to load, and
display "—" for the header stats
- Skip building the dashboard when there is no data (it crashed on an
empty log) and guard the activity chart redraw on resize
- Compute the QSO count from the log instead of hardcoding it
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Two conflicting <meta> CSP tags in index.html (plus a separate _headers
policy) meant the browser enforced their intersection, which blocked
the Cloudflare Insights beacon script and its inline bootstrap. k5bss.html
had the same gap in its own CSP. Consolidated to one consistent policy per
surface that allows static.cloudflareinsights.com / cloudflareinsights.com,
and moved index.html's inline script and onerror handler into js/main.js
so script-src no longer needs 'unsafe-inline' there.
Also added the missing fonts/ibm-plex-mono-400.woff2 that style.css has
referenced since it was wired up, which was 404ing.
Co-Authored-By: Claude Sonnet 5 <[email protected]>