github Yeraze/meshmonitor v4.0.0-beta.2
MeshMonitor v4.0.0-beta.2

pre-release7 hours ago

MeshMonitor v4.0.0-beta.2

Second beta of the 4.0 series. This release lands the Phase 0 Store & Forward client, completes the Drizzle ORM remediation (Phases 1–3), adds CodeQL security scanning, and ships a critical telemetry performance fix for PostgreSQL/MySQL deployments.

Features

  • Store & Forward Phase 0 — MeshMonitor now decodes and displays S&F packets (PortNum 65) received from firmware-based S&F servers on the mesh. ROUTER_TEXT_DIRECT/BROADCAST replays flow into the chat with a viaStoreForward indicator; HEARTBEAT/STATS/HISTORY are decoded and logged. (#2671)
  • Auto-delete-by-distance toggle — Choose between deleting and ignoring nodes outside the configured radius. (#2677, closes #2676)
  • Remote Admin Scanner — distance/hop prioritization — Nearby nodes now scanned first. (#2679, closes #2669)
  • CodeQL security scanning — New CI workflow surfaces security issues on every PR. (#2678)

Bug Fixes

  • Telemetry performance (PG/MySQL) — Added 4 missing indexes on the telemetry table (single-column nodeId/telemetryType, compound (nodeId, telemetryType, timestamp DESC) and (nodeNum, timestamp DESC)). Fixes timeouts on deployments with 100k+ telemetry rows. Also rewrote 6 MySQL delete methods to use SELECT COUNT(*) instead of SELECT id (avoids loading 100k+ IDs into memory). Removed channel-lookup debug log spam. (#2697)
  • Embed map respects Default Map Center / URL params — No longer falls back to world view. (#2673, closes #2668)
  • Disabled channels persist in UI — (#2675, closes #2666)
  • Remote Admin Scanner uses configured time format — (#2672, closes #2670)
  • Sources UI delete option — (Closes #2682)

Drizzle ORM Remediation (Phases 1–3)

Complete migration from raw SQL to Drizzle repositories across all domains. src/services/database.ts is now raw-SQL-free (enforced by ESLint).

  • Phase 1 — Delete legacy models, route to AuthRepository: #2683, #2684, #2685, #2687
  • Phase 2 — Extract domain repositories: #2688 (audit), #2689 (neighbors), #2690 (settings), #2691 (channels + packetlog), #2692 (telemetry + traceroutes), #2693 (init/import), #2694 (messages), #2695 (nodes + keyrepair + ignored_nodes)
  • Phase 3 — Final 14 sites + ESLint enforcement: #2696
  • User map preferences to Drizzle: #2681

Other

  • Translations update from Hosted Weblate (#2613)
  • Version bump (#2698)

Upgrade Notes

  • Database schema migrates automatically on first start (migration 036 adds telemetry indexes — idempotent on all backends).
  • For deployments with very large telemetry tables (450k+ rows), expect first-start to take longer while the indexes build.
  • No configuration changes required.

Full Changelog: v4.0.0-beta.1...v4.0.0-beta.2

🚀 MeshMonitor v4.0.0-beta.2

📦 Installation

Docker (recommended):

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

🧪 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.

Don't miss a new meshmonitor release

NewReleases is sending notifications on new releases.