From 3c440c0049c68813b5176dae475a7d60b5279792 Mon Sep 17 00:00:00 2001 From: Kpa-clawbot Date: Sat, 13 Jun 2026 04:16:54 +0000 Subject: [PATCH] docs(v3.9.2): release notes --- docs/release-notes/v3.9.2.md | 55 ++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 docs/release-notes/v3.9.2.md diff --git a/docs/release-notes/v3.9.2.md b/docs/release-notes/v3.9.2.md new file mode 100644 index 00000000..2013fb5d --- /dev/null +++ b/docs/release-notes/v3.9.2.md @@ -0,0 +1,55 @@ +# CoreScope v3.9.2 + +**Upgrade urgency: Recommended.** Big batch of operator-felt wins. + +## Highlights + +### Accessibility (#1668 — M2/M3/M4/M5 merged; M6 in flight) +- Two-tier CSS palette with semantic tokens (`--palette-*` → `--color-*`/`--text-*`); operators can now hot-swap theme palettes +- WCAG AA color-contrast hits across all 22 audited routes — **443 baseline violations → 0** verified by the new axe CI gate (#1696) +- Typography pass: 14px body / 12px+500 chip floor across the entire chrome (#1679) +- Hash-cell analytics palette, badge contrast, /live VCR controls (#1681) +- Audio-lab BPM + Volume sliders now have aria-labels + +### MQTT observability +- Per-source MQTT status endpoint + Observers panel (#1682) — connected/disconnected/last-packet/error counters per broker +- Mobile-friendly: cards at ≤640px instead of squished table (#1698) + +### Cold-load + analytics correctness +- **Packet-store cold-load actually loads the database now (#1691).** Pre-fix: after restart, only 0.3% of DB rows were loaded into RAM, dashboards looked empty for hours. Root cause: hot-load filtered by `first_seen` (immutable per hash) instead of effective recency. New `transmissions.last_seen` denormalized column + writer-side update fixes this end-to-end. +- Analytics endpoint returns 503 Retry-After during warm-up (#1688) — operators no longer see post-restart partial slices +- Warm-up banner surfaces backfill state in the UI (#1683) + +### Firmware 1.16 sync +- Server-side decoder parity for extended ACK payloads (#1695) +- Customizer toggle to hide 1-byte path hops (collide ~8-way at 2k nodes) — #1689 + +### Performance +- `/packets` init parallelizes loadObservers + loadPackets (#1693) — first-row time dropped from 25-40s to <5s on slow links +- Confidence rating weighted by hash mode (#1687) — 1-byte sightings carry less weight than 6-byte + +### CI / operability +- OpenAPI completeness gate (#1678 Phase 1) +- Release fast-path: re-tag :edge → :vX.Y.Z when SHA matches (#1680) — most patch releases now skip the 30min full pipeline rerun +- Staging disk monitor + cleanup cron (#1686) +- Slideover E2E flake-gate reduced 20× → 3×, root cause fixed in #1693 + +## Container image + +`ghcr.io/kpa-clawbot/corescope:v3.9.2` (multi-arch: amd64, arm64) + +## Verification + +- 22 routes × 2 themes × 2 viewports automated a11y gate (axe-core, #1696) +- All 19 PRs ran through the full polish chain (parallel reviewers + Kent Beck TDD gate) +- Cold-load fix verified by `transmissions.last_seen` test fixture (#1691) + +## Operator upgrade (MikroTik) + +``` +/container add remote-image=ghcr.io/kpa-clawbot/corescope:v3.9.2 envlist=cs-env mounts=cs-data,cs-caddyfile interface=veth-corescope start-on-boot=yes name=corescope-prod-v392 +``` + +## Acknowledgements + +External contributors carry over from v3.9.1.