What's Changed
Bug Fixes
- Fix reconnect flood on WiFi-connected devices — Schedulers now wait for
configCompletebefore starting, with staggered initialization and TCP backpressure handling to prevent overwhelming WiFi-connected Meshtastic devices (#2479, closes #2474) - Detect and recover from phantom TCP connections — Adds buffer staleness detection and forced reconnect when data arrives but no messages are parsed, fixing a long-standing issue with USB serial bridges losing inbound data after hours (#2480)
- Polygon geofence trigger button never enables — Fixed Leaflet's double-click zoom consuming the polygon finalization event; polygon shape now updates progressively as vertices are added (#2481)
- Permissions swap fails on SQLite CHECK constraint (#2476)
Improvements
- Expanded repository test coverage — 363 new tests across all database backends (SQLite, PostgreSQL, MySQL) covering nodes, channels, notifications, neighbors, traceroutes, ignored nodes, channel database, and settings repositories (#2477)
- Flaky system test fix — Added retry logic to config import CSRF/login step (#2479)
- Translation updates from Hosted Weblate (#2459)
Issues Closed
- #2474 — [BUG] Disconnects on 3.10.2
- #2475 — [SUPPORT] Telegram proxy
- #2425 — [FEAT] Channel Migration on container start
Full Changelog: v3.10.3...v3.10.4