This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
Affected surfaces
Summary
AI summaryUpdates Stats Enhancements, New Features, and Bug Fixes across a mixed release.
Full changelog
Plai v2.0
New Features
Emoji Support
Plai now renders Unicode emoji from PNG images stored on the SD card (/sdcard/emoji/u<HEX>.png). The last 10 emoji are cached in RAM for instant repeated rendering with zero SD card I/O. Ships with Google Noto Color Emoji pack (12×12). LovyanGFX patched to enable emoji rendering and properly skip Unicode modifier codepoints.
Neighbors
Exchange and view direct-neighbor information with any node in the mesh.
- Exchange neighbors — Press [B] on a node to send your direct neighbors and request theirs back via
NEIGHBORINFO_APP - Neighbors list — Press [Fn]+[B] to open the cached neighbor list for the selected node
- Navigation — Arrow keys, [PgUp]/[PgDown], [Fn]+[↑] Home / [Fn]+[↓] End
- Jump to node — [ENTER] selects a neighbor and focuses it in the node list
- Neighbor data stored per node on SD (
neighbors/<node_id>.dat); cleaned up when a node is deleted
Stats Enhancements
- CPU usage — Tasks tab now shows per-task CPU usage
- Broadcast countdown — Position and telemetry tabs display time remaining until next broadcast
- Layout improvements across all Stats tabs
Undelivered Packet Details
Hold [CTRL] in any chat view (DM or channel) to see error details for undelivered packets — quickly identify why a message failed.
Neighbor Info in Settings
Neighbor info exchange interval is now configurable from the Settings app.
Improvements
- Human-friendly datetime — Timestamps throughout the app now use a more readable format
- Cyrillic relay names — Small font updated to render Cyrillic characters, used in relay node display
- Channel preset names — Empty channel slots now show the modem preset name instead of a blank label
- Sound feedback — Audible confirmation when toggling favorites or ignored status on a node
- Monitor performance — Relay node info lookup uses an index for significantly faster packet list scrolling
- Heap optimization — Replaced static heap allocators with dynamic allocation, freeing memory for other tasks
- Storage refactor — Removed legacy conversation-count limit from initial testing; storage is now limited only by SD card size
- Packet sending refactor — Mesh packet sending consolidated into shared code for consistency and maintainability
- Node input refactor — Input handlers in the Nodes app cleaned up and streamlined
- Fn hint updated — Node list footer now shows accurate [Fn] key hints
Bug Fixes
- Frequency calculation — Fixed default-slot (slot 0) frequency calculation that could place the radio on the wrong channel
- Keyboard driver — Resolved TCA8418 driver issue that caused key events to stop registering
- DM scrolling — Fixed broken scroll behavior in the Direct Messages view
- Neighbor cleanup — Deleting a node now correctly removes its cached neighbor data
- Watchdog — Improved WDT feeding to prevent spurious resets during long operations
Upgrade Notes
Breaking changes to message history format. Channel and DM messages history will be cleared after update.
Copy emoji folder to SD card root for rendering emojis
Breaking Changes
- Breaking changes to message history format. Channel and DM messages history will be cleared after update.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About d4rkmen/plai](https:
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]