Patch release: bug fixes across automation, configuration, favorites, MeshCore, telemetry, and messaging.
Bug Fixes
- Timed Events fired across all sources (#3479) — timer-trigger result writes are now source-scoped, so a timed event only runs on the source it was configured for.
- Saving Traffic Management / Status Message config failed (#3464) — the generic module-config save route now accepts both module types (previously rejected with "Invalid module type").
- Auto Favorites wrongly reported firmware as unsupported (#3482) — the firmware-support cache is keyed by version and no longer sticks on "unsupported" after a reconnect.
- MeshCore Share Contact failed silently (#3481) — the real failure reason now reaches the user, with a faster 10s timeout instead of a silent ~30s hang.
- Delivered icon missing on own replies in Firefox on Android (#3477) — CSS flex-sizing fix; desktop was unaffected.
- Air-quality particle counts never collected or graphed (#3483) — underscore-before-digit protobuf fields are now read in their snake_case form, so all six particle bins are stored and graphed.
Full details in the changelog.
🤖 Generated with Claude Code
🚀 MeshMonitor v4.10.4
📦 Installation
Docker (recommended):
docker run -d \
--name meshmonitor \
-p 8080:3001 \
-v meshmonitor-data:/data \
ghcr.io/Yeraze/meshmonitor:4.10.4🧪 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.