Stable release. Everything since the last stable (beta_31), headlined by the freeze fixes: the periodic 1-2 second freezes with Wi-Fi on, and the freezes with MQTT enabled, are both gone.
A big thank you to Half Live for the patient testing behind this one: toggling MQTT and Wi-Fi through every combination and photographing the on-device stall diagnostics is exactly what pinned both root causes down.
Install via the web flasher, the on-device updater (Settings > About), or Launcher. Fresh install: flash the -merged bin at 0x0. Launcher/OTA: the plain bin.
Fixed
- Periodic 1-2 second freezes with Wi-Fi on. When a phone app or web client was connected over Wi-Fi and that connection went stale (phone asleep, out of range), every received mesh packet made the device block on the dead connection. The device now only writes to a connection that can accept data immediately, and a connection that stays unresponsive for 10 seconds is dropped so the client can reconnect cleanly. Real messages are unaffected; they re-sync on reconnect.
- Freezes with MQTT enabled. Connecting to the broker (DNS lookup, TCP connect, login) could block the device for 2-10 seconds and retried every 15 seconds while the broker was unreachable, all on the UI thread. Connection attempts now run fully in the background, and writes to an unresponsive broker are skipped instead of waited on. Tip: if your bridge keeps reconnecting, check the broker address and credentials. A healthy connection does not retry.
- Chat-history saves could hitch the UI on busy meshes. The history file now writes in a few large chunks instead of thousands of tiny ones (the same treatment the contact list got in beta_30), and background saves are spaced further apart while messages stream in.
- Wrong toast when the favorites list is full. Favoriting a 17th contact now says "Favorites full (max 16)" instead of the incorrect "Removed from favorites".
New
- Stall diagnostics in About. Settings > About lists recent main-loop stalls (over 0.2 seconds, newest first), so freeze reports can be confirmed or ruled out at a glance. The About page also no longer causes a stall of its own while open (computing the firmware image size used to checksum the whole app image every second).
Boards: LilyGo T-Deck, Heltec V4 TFT. Also ships to the Tanmatsu launcher store.