MeshMonitor v3.10.0-RC1
Release Candidate 1 for v3.10.0. This is a pre-release — not recommended for production use.
Major: Database Architecture Remediation
Complete overhaul of the multi-database architecture across 20+ PRs:
Migration System
- Clean break at v3.7 — replaced 89 migration files with a single v3.7 baseline + 11 uniform post-baseline migrations (#2315)
- Declarative migration registry — prevents ordering bugs like #2301 (#2306, #2309)
- Pre-3.7 detection — clear error message for users on older versions (#2343)
Repository Layer
- Active Schema Map — eliminated 440+ three-way if/else branches in repositories (#2306)
- 57 Async wrappers removed — callers migrated to direct repository access (#2309, #2310)
- AuthRepository enabled for SQLite — unified auth across all backends (#2318)
- All sync callers migrated to async — zero production code calls sync DB methods (#2323, #2324, #2325, #2328, #2330, #2332, #2335)
Schema Fixes
- BIGINT bug fix —
messages.relayNodeandackFromNodeupgraded for PG/MySQL (#2306) - Schema drift resolved — 8 known column/type mismatches fixed across backends (#2318, #2322, #2340, #2341)
- Raw SQL schema files deleted — single source of truth is now Drizzle ORM (#2315)
- Permission resource names fixed — admin/user creation now uses valid CHECK constraint values (#2320, #2321)
CI & Testing
- PostgreSQL added to CI — multi-DB tests now run in CI instead of silently skipping (#2313)
- 21 new regression tests — BIGINT round-trip and schema integrity tests (#2306)
- 10/10 system tests passing (#2342)
Other Improvements
- fix: correct portnum range, add enabled guard, and optimize channel decryption (#2337)
- fix: prevent scheduling drift, timezone bugs, and data wipe in maintenance service (#2338)
- fix: auto-recover from stale SQLite SHM files after upgrades (#2304, fixes #2303)
- fix: SQLite migrations 083/084 skipped due to early return in 082 (#2301)
- fix: allow 0 for traceroute expiration hours setting (#2300)
- fix: clarified PKI key mismatch warning messages (#2343)
- fix: startup errors from early settings access before DB ready (#2343)
- fix: dead MQTT proxy setup instructions link (#2344, fixes #2329)
- ci: add PostgreSQL service to release pipeline (#2346)
Security
- Security upgrade node from 24-alpine to 24.14.0-alpine3.22 (#2312)
- Security upgrade node from 22-slim to 22.22.1-trixie-slim (#2311)
Upgrade Notes
⚠️ Requires v3.7 or later — if you are running a version older than v3.7, you must upgrade to v3.7 first, then upgrade to this version. The application will detect pre-v3.7 databases and show a clear error message.
Full Changelog: v3.9.5...v3.10.0-RC1
🚀 MeshMonitor v3.10.0-RC1
📦 Installation
Docker (recommended):
docker run -d \
--name meshmonitor \
-p 8080:3001 \
-v meshmonitor-data:/data \
ghcr.io/Yeraze/meshmonitor:3.10.0-RC1🧪 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.