Test build. Stable stays beta_65.
Flash it at flasher.wadamesh.com (flip the toggle to Beta), or update on the device if you have "Get test builds (beta)" switched on.
Six of the changes here are @oumike's, each tested on his own hardware, and they are the reason the ThinkNode M9 is close to the point where its keyboard navigation stops being something you work around. Thanks also to @Buko84, @jrote1, @DenRalle, @jesshampshire, @Piguyraspberry, PD0RCM, museifu696, thesupergeek, honza_87628 and Leon P, whose reports are most of what follows.
A Lua app could reset the device
Running a Lua app could reboot the device outright. Decoding a crash dump from a T-Deck put it inside Lua's own panic path: the firmware never told Lua what to do when an error escapes a protected call, so Lua fell back to its default, which is to abort the program. On a phone that closes an app; here it resets the radio.
An app's own faults were already caught and turned into a message plus a clean close. The gap was everything that runs before that safety net is armed, including the lookup of the app's callback, which an app could make run its own code. That lookup is now raw, stack space for the arguments is reserved in advance where failure can be reported instead of raised, and if anything still escapes, the error text is printed rather than lost along with the device.
ThinkNode M9
- Contacts no longer stalls partway through opening. While adverts were arriving the whole list was torn down and rebuilt every 2.5 s, which costs over a second on a large list. Only what an advert actually changes is updated now. Reported by @Buko84, whose note that it was smooth until something was discovered is what found it (#463).
- Leaving a channel returns the cursor to that channel. Reading unread messages rebuilds the list, and the cursor was remembered by an address that no longer pointed at the same row (#467). @oumike extended the fix so the D-pad also walks messages in order inside a conversation, and dropped the two floating jump arrows, which only made sense with a touchscreen (#468).
- A new selection cursor, an accent outline instead of the old block of reverse video that hid whatever it landed on. Every keyboard-driven board gets it, so the Pager, Tanmatsu and T-Deck trackball match the M9 now. By @oumike (#458, covering #427, #432, #434, #430).
- Ctrl closes the Control Center as well as opening it. By @oumike (#454, #456).
- The charging icon appears. Charge detection was compiled for two boards only; every other one answered "not charging" whatever the hardware did (#473).
Sound
Notification sounds now behave the way the settings page claims. The sample chime, the volume buttons and each switch played regardless of the master Sound switch and of Do Not Disturb, while an arriving message respected both. With sound off, the page chimed at you the whole time you configured it and nothing ever arrived audibly. A preview is now silent exactly when a real notification would be, and says which of the two silenced it. Reported by PD0RCM on a T-Deck Plus (#464).
Battery
- The idle power saver works again. It consulted a saved Wi-Fi setting that reads as "on" when it has never been written, so anyone who had not explicitly switched Wi-Fi off inside this firmware was blocked forever. It now checks whether the radio is actually powered, and the radio is properly powered down when you turn Wi-Fi off, which a network scan could leave running. Reported by @jrote1 (#450).
- The Battery page says what is keeping the device awake, for example "held by mesh busy 62%". A low "asleep" figure could mean the device parks badly or that it was rarely allowed to park, with no way to tell which. Requested by @jrote1 (#465).
Location privacy
- The displacement changes with the distance you pick. It used to be the same direction every time, so someone watching you switch between 100 m and 1 km could draw two lines and cross them at your real position. Found by @jesshampshire (#399).
- You can answer a position request from your chosen contacts with your real position. The displacement covers those replies too, which is the right default, but a reply goes encrypted to one contact who already holds your permission and who asked for it, so treating it like a broadcast was too blunt. Off unless you turn it on, and what you advertise stays displaced either way. Raised by honza_87628.
Files, apps and pages
- The browser file transfer lists crash reports, settings backups and transferred files as well as screenshots, filters by type, and can delete. By @oumike, requested by @DenRalle (#448, #453). A settings backup contains your private key, so the page says so before you download one.
- An app opened from the store no longer keeps its title bar over the app. By @oumike, reported by @Buko84 (#455, #457).
- The Discover list shows the same icons as Contacts, so a repeater and an ordinary node are no longer identical until you read the line underneath. Requested by @jesshampshire (#459).
- Known regions can be left again on the Tanmatsu. The page was missing from the list the Back key walks, so it stayed on screen and everything opened behind it. Reported by @DenRalle (#449).
- On the T-Display P4 the GPS screen can be left after changing the displacement. Choosing a distance opened a second copy of the page over the live one, so Close did nothing. Reported by Leon P.
- The T-Display P4 no longer offers a lock screen. It had no way in, no way out and an empty settings page, so it was a promise the board could not keep. Reported by @Piguyraspberry (#451).
Wio Tracker L2
Enter on the on-screen keyboard runs the terminal command, the wake button is more responsive, and Memory detail matches the other full-screen pages. By @oumike (#466).
For testers
The selection cursor changed on every keyboard-driven board, so if something is awkward to navigate to, that is the thing to report. On a long list, check whether the cursor stays visible on the last entry.
Your saved settings carry a new entry this build. Nothing needs doing, but if a setting looks wrong after updating, please say so rather than working around it.
Still open and not fixed here: side-loading Lua apps from the SD card on the T-Display P4, where the app list only reads internal storage (#471); the "your own apps" page in the store closing on its own (#471); and no UI size option on the T-Deck (#472).