Files
meshcore-analyzer/docs/release-notes/v3.9.2.md
T

56 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.