Skip to content

Yeraze/meshmonitor

v4.10.0 Feature

This release adds 3 notable features for engineering teams evaluating rollout.

Published 1mo Monitoring & Metrics
βœ“ No known CVEs patched
Read the diff β†’ Tool health β†’ What is this tool? β†’

✓ No known CVEs patched in this version

Topics

meshcore meshtastic mqtt

Affected surfaces

auth

Summary

AI summary

Updates πŸš€ MeshMonitor v4.10.0, Bug Fixes, and recommended across a mixed release.

Changes in this release

Feature Medium

Adds Auto Remote LocalStats to request telemetry from remote nodes.

Adds Auto Remote LocalStats to request telemetry from remote nodes.

Source: llm_adapter@2026-06-11

Confidence: high

β€”
Feature Medium

Adds Map Analysis search box, marker spiderfy, directional traceroutes, and weak‑link filtering.

Adds Map Analysis search box, marker spiderfy, directional traceroutes, and weak‑link filtering.

Source: llm_adapter@2026-06-11

Confidence: high

β€”
Feature Medium

Adds public flag for GeoJSON overlays on anonymous, embed, and dashboard maps.

Adds public flag for GeoJSON overlays on anonymous, embed, and dashboard maps.

Source: llm_adapter@2026-06-11

Confidence: high

β€”
Feature Medium

Bundles Apprise as a frozen sidecar for desktop builds, providing local notification support without system Python.

Bundles Apprise as a frozen sidecar for desktop builds, providing local notification support without system Python.

Source: llm_adapter@2026-06-11

Confidence: high

β€”
Feature Medium

Adds noise‑floor field to LocalStats telemetry and charts.

Adds noise‑floor field to LocalStats telemetry and charts.

Source: llm_adapter@2026-06-11

Confidence: high

β€”
Dependency Low

Updates protobufs submodule from v2.7.23 to v2.7.25 (additive).

Updates protobufs submodule from v2.7.23 to v2.7.25 (additive).

Source: llm_adapter@2026-06-11

Confidence: high

β€”
Bugfix Medium

Fixes Radio Statistics legend clipping counts and adds total to Packet Distribution panel.

Fixes Radio Statistics legend clipping counts and adds total to Packet Distribution panel.

Source: llm_adapter@2026-06-11

Confidence: high

β€”
Bugfix Medium

Fixes custom analytics CSP domains being silently dropped from headers.

Fixes custom analytics CSP domains being silently dropped from headers.

Source: llm_adapter@2026-06-11

Confidence: low

β€”
Bugfix Medium

Fixes Security tab leaking dead‑node and key‑mismatch rows across sources.

Fixes Security tab leaking dead‑node and key‑mismatch rows across sources.

Source: llm_adapter@2026-06-11

Confidence: low

β€”
Bugfix Medium

Ensures custom analytics CSP domains are included in Content‑Security‑Policy headers.

Ensures custom analytics CSP domains are included in Content‑Security‑Policy headers.

Source: granite4.1:30b@2026-06-11-audit

Confidence: low

β€”
Full changelog

MeshMonitor v4.10.0

This release is about seeing more of the mesh you don't physically touch. The headline feature, Auto Remote LocalStats (#3398), is a new per-source automation that periodically requests local_stats telemetry β€” noise floor, channel/air utilization, uptime, and packet counts β€” from remote nodes, so you can graph the health of infrastructure you don't own; requests go out as channel unicasts (so REPEATER/CLIENT nodes answer too) with a polite round-robin scheduler. Map Analysis got four upgrades (#3399): a marker search box, marker spiderfy so overlapping nodes fan out and become individually selectable, inbound/outbound traceroute separation with directional SNR arrows, and weak-link filtering with a per-node summary. GeoJSON overlays (#3407) can now be flagged public and rendered on the anonymous, embed, and dashboard maps, and desktop builds now bundle Apprise as a frozen sidecar (#3405) for full local notification support with no system Python. The new firmware noise-floor LocalStats field (#3396) is captured and charted. On the fix side: the Security tab no longer leaks dead-nodes/key-mismatch rows across sources, the Radio Statistics legend stops clipping counts, and custom-analytics CSP domains reach the header.

Features

  • Auto Remote LocalStats β€” periodic local_stats requests to remote nodes (#3398, #3403) β€” per-source automation (modeled on Auto Traceroute) that polls remote nodes for noise floor, channel/air utilization, uptime, and packet counts. Targets are the union of node-list / role / favorite / name-regex filters; requests are channel unicasts sized to the target's distance, with jitter, a schedule window, an airtime gate, and a per-target rate limit. Passive-mode aware; replies persist through the existing telemetry pipeline.
  • Map Analysis: node search, marker spiderfy, directional + weak-link traceroutes (#3399, #3404) β€” a search box that filters markers and traceroute endpoints by name/node-id/nodeNum; overlapping markers fan out so each node is selectable; traceroutes split into inbound (RX) / outbound (TX) legs with direction colours and SNR arrows; persisted min-occurrence/min-SNR filters plus a per-node link summary.
  • GeoJSON overlays on public, anonymous, embed, and dashboard maps (#3407, #3408) β€” per-layer opt-in Public flag (default off); flagged layers render on every public surface while private layers stay private (anonymous data 404s).
  • Desktop: Apprise bundled as a frozen sidecar (#3405) β€” Apprise (with all plugins) is frozen into a self-contained executable shipped alongside the desktop app and started on a loopback-only port, giving desktop full local Apprise support with no system Python. (Intel macOS falls back to a remote Apprise API; arm64 macOS / Windows / Linux ship the sidecar.)
  • Noise Floor in LocalStats telemetry (#3396, #3397) β€” the noiseFloor (dBm) field from Meshtastic firmware 2.7.25 is captured and graphed alongside the other LocalStats metrics, on Device Info and every local-stats chart. Protobufs submodule bumped v2.7.23 β†’ v2.7.25 (additive).

Bug Fixes

  • Security tab leaked dead nodes and key-mismatch events across sources (#3406) β€” GET /api/security/dead-nodes and /api/security/key-mismatches ignored sourceId and returned rows from every source; both are now scoped to the requested source. The same change wires the (previously unreachable) Auto Remote LocalStats section into the Automation sub-nav.
  • Radio Statistics legend clipped counts; Packet Distribution lacked a total (#3400, #3401, #3402) β€” the legend no longer clips the raw count mid-value (truncation now only in stacked mode), and the Packet Distribution panel shows a prominent grand total.
  • Custom analytics "CSP Allowed Domains" were silently dropped (#3409, #3410) β€” the custom analytics provider was caught by the same early-return as none, so configured origins never reached the Content-Security-Policy header; they now flow through to script-src/connect-src.

Issues Resolved

#3398, #3399, #3407, #3405, #3396, #3406, #3400, #3401, #3409

Full changelog: https://github.com/Yeraze/meshmonitor/compare/v4.9.4...v4.10.0

πŸš€ MeshMonitor v4.10.0

πŸ“¦ Installation

Docker (recommended):

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

Helm:

helm repo update
helm upgrade meshmonitor meshmonitor/meshmonitor --version 4.10.0

πŸ§ͺ Testing

βœ… All tests passed (full Vitest suite + hardware system tests)
βœ… TypeScript checks passed
βœ… Docker images built for linux/amd64, linux/arm64, linux/arm/v7

πŸš€ MeshMonitor v4.10.0

πŸ“¦ Installation

Docker (recommended):

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

πŸ§ͺ 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.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Yeraze/meshmonitor

Get notified when new releases ship.

Sign up free

About Yeraze/meshmonitor

All releases β†’

Related context

Earlier breaking changes

  • v4.13.0 Source‑scoped API endpoints now require an explicit `sourceId` parameter.
  • v4.13.0 Auto-Upgrade is retired; remove upgrade sidecar and related config.
  • v4.7.2 Route `destination` field now rejects non‑8‑hex nodeId or 64‑hex publicKey, returning HTTPβ€―400.

Beta — feedback welcome: [email protected]