Skip to content

v4.13.0-rc2

Pre-release
Pre-release

Choose a tag to compare

@Yeraze Yeraze released this 12 Jul 04:36
2e47a2a

MeshMonitor v4.13.0-rc2

⚠️ Pre-release — release candidate for testing; not recommended for production deployments. Docker images are not tagged :latest.

Summary

This release candidate lands the Map Consolidation epic (#4047): MeshMonitor's ten independent Leaflet map implementations are now one shared BaseMap shell, one composable layer library, one popup family, and one marker-icon factory. Traceroutes render identically on every surface — one canonical 4-band SNR color scale (previously three different scales), unified MQTT dashing and coloring, and the Dashboard finally renders return legs. Node markers, popups, neighbor links, and accuracy regions are likewise single-sourced, so future fixes apply to every map at once, and public embed maps now show the same canonical traceroute visuals as the app. The epic also surfaced and fixed several latent bugs, including a hidden-node position leak in the public embed traceroutes endpoint and Dashboard coloring segments with unscaled SNR values. On top of the epic, this RC brings map interaction polish (#4046): center-on-node never zooms out and its target zoom is user-configurable, pan/zoom animations scale with distance, clicking a marker at low zoom now zooms in instead of exploding a giant spiderfy fan, and open fans survive zoom changes. Live testing fixes include restored wheel/double-click zoom, correct zoom-to-node for one-way traceroutes, loading indicators on initial map data fetch, a polar grid for MeshCore maps, and a self-healing reload when a stale cached page requests rotated asset chunks after an upgrade.

Map Consolidation Epic (#4047)

  • #4068 — Epic integration: one shell, one layer library, one popup family (phases below)
    • #4049 Phase 1 — shared BaseMap shell; pickers and editors migrated
    • #4051 Phase 2 — Map Analysis legend/polar-grid/trails reconciliation
    • #4057 Phase 3 — unified traceroute rendering across all app maps
    • #4060 Phase 4 — unified node-marker factory + shared NodeMarkersLayer
    • #4064 Phase 5 — one popup family with composable source-tech sections
    • #4065 Phase 6 — public embeds adopt canonical traceroute rendering (includes a hidden-node position leak fix 🔒)
    • #4066 / #4067 Phase 7 — shared neighbor-links/accuracy/waypoints layers; all maps on BaseMap

Features

  • #4072 — Map interaction polish: zoom clamp with configurable target (default 17), distance-scaled animations, zoom-gated spiderfy with zoom-in-first clicks, re-spiderfy after zoom (#4046)
  • #4071 — MeshCore map polar grid; map loading indicators during initial fetch

Bug Fixes

  • #4071 — Wheel/double-click zoom restored on all maps; zoom-to-node no longer hijacked by route-fit on one-way traceroutes; one-time reload on stale-chunk load failures after upgrades
  • #4055 — Dashboard neighbor-info lines follow the merged node marker position (#4042) — thanks @temalo!
  • #4045 — Notifications: drop inline autoindex UNIQUE(user_id) missed by migration 079 (#4044)

Issues Resolved

  • #4047 — Consolidate 10 independent Leaflet maps into a shared BaseMap shell + composable layer library
  • #4046 — Map UI: improve pan/zoom-to-center behavior and its interaction with marker spiderfy
  • #4042 — Dashboard Unified map: neighbor-info lines don't follow merged node marker position
  • #4044 — Can't configure Apprise Notifications for a second source

Upgrade Notes

  • Map visuals converge to one canonical look: the per-source Nodes map moves from a 3-band to the 4-band SNR color scale, no-data segments render dashed gray, the Dashboard gains traceroute return legs, the traceroute widget's legs use the theme color, and embeds show SNR-colored traceroutes instead of uniform mauve.
  • New per-user setting: Settings → Map → center-on-node target zoom (default 17).

Full Changelog: v4.13.0-rc1...v4.13.0-rc2

🚀 MeshMonitor v4.13.0-rc2

📦 Installation

Docker (recommended):

docker run -d \
  --name meshmonitor \
  -p 8080:3001 \
  -v meshmonitor-data:/data \
  ghcr.io/Yeraze/meshmonitor:4.13.0-rc2

🧪 Testing

✅ All tests passed
✅ TypeScript checks passed
✅ Docker images built for linux/amd64, linux/arm64, linux/arm/v7

📋 Changes

See commit history for detailed changes.