This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
Affected surfaces
Summary
AI summaryUpdates π MeshMonitor v4.10.0, Bug Fixes, and recommended across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| 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_statsrequests 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-nodesand/api/security/key-mismatchesignoredsourceIdand 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
customanalytics provider was caught by the same early-return asnone, so configured origins never reached theContent-Security-Policyheader; they now flow through toscript-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
About Yeraze/meshmonitor
All releases βRelated context
Related tools
Beta — feedback welcome: [email protected]