What's Changed since v3.10.0-RC3
Bug Fixes
- Fix audit_log missing columns for pre-3.7 databases — adds
ip_addressanduser_agentcolumns that were missing from pre-3.7 SQLite databases, fixing "table audit_log has no column named user_agent" errors — #2361 - Fix MQTT proxy messages not decoded locally — Virtual Node Server now intercepts
mqttClientProxyMessage, decodes theServiceEnvelope, and feeds it through the Server Channel Database decryption pipeline so MQTT-only channels appear in the UI (#2358) — #2363 - Fix key mismatch warning persisting after resolution —
keyMismatchDetectedflag now clears when keys match after a successful purge + exchange, not just when a new key arrives (#2349) — #2365 - Fix traceroute "No response received" for nearby nodes — race condition where fast responses arrived before the pending DB record was written;
recordTracerouteRequestis now properly awaited (#2364) — #2366 - Fix packet monitor ordering within same second — added
created_at(millisecond precision) as tiebreaker sort key (#2364) — #2369 - Fix sidebar collapse on Messages tab — sidebar content disappeared but container stayed 350px wide; now properly collapses — #2368
- Reclaim full space when sidebar collapsed — collapsed sidebar shrinks to 0 width with floating expand button overlay on both Map and Messages tabs — #2368
Documentation
- Updated migration documentation — CLAUDE.md and ARCHITECTURE_LESSONS.md now document the migration registry pattern instead of the old "3 places in database.ts" approach — #2362
- Added TechTucson BBS and Mail scripts to user scripts gallery — #2370
Chores
- Bump version to 3.10.0-RC4 — #2371
Full Changelog: v3.10.0-RC3...v3.10.0-RC4
🚀 MeshMonitor v3.10.0-RC4
📦 Installation
Docker (recommended):
docker run -d \
--name meshmonitor \
-p 8080:3001 \
-v meshmonitor-data:/data \
ghcr.io/Yeraze/meshmonitor:3.10.0-RC4🧪 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.