Changes since v3.8.6
Features
- Configurable TCP timing and module config delay (#2216) — Closes #2213, #2214
MESHTASTIC_CONNECT_TIMEOUT_MS— initial TCP connect timeout (default: 10s)MESHTASTIC_RECONNECT_INITIAL_DELAY_MS— reconnect backoff base delay (default: 1s)MESHTASTIC_RECONNECT_MAX_DELAY_MS— reconnect backoff cap (default: 60s)MESHTASTIC_MODULE_CONFIG_DELAY_MS— delay between module config requests (default: 100ms)
- Node ignore list for auto-acknowledge (#2212) — Suppress auto-ack for specific noisy/abusive nodes (thanks @ascendr)
- Enhanced Node Status Widget (#2205) — Clickable node names, voltage column, uptime column (thanks @ascendr)
Bug Fixes
- Fix channel assignment for node communication (#2208) — Update node channel from all firmware-decoded packets instead of only NodeInfo, preventing nodes from getting stuck on wrong channel
- Fix MQTT-sourced neighbor info creating bogus map connections (#2206)
- Fix iOS channel display ordering (#2204) — Match firmware config state machine order (thanks @NearlCrews)
- Fix NodeStatusWidget excessive voltage re-fetching (#2207) — Replace raw fetch with React Query hook for caching/dedup
Improvements
- CSS design token consolidation (#2215) — Unified design tokens, fixed 42+ orphan variable references, fully themed LoginPage and TilesetSelector (thanks @ascendr)
- Clarify Node Hops Calculation docs (#2211) — Document that "All messages" uses all packet types
- Enhanced bug report template (#2209)
- Translation updates (#2196)
🚀 MeshMonitor v3.8.7
📦 Installation
Docker (recommended):
docker run -d \
--name meshmonitor \
-p 8080:3001 \
-v meshmonitor-data:/data \
ghcr.io/Yeraze/meshmonitor:3.8.7🧪 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.