v0.1.30-alpha
Pre-release
Pre-release
[0.1.30-alpha] - 2026-06-24
Added / 新增
- Added support for the T-Echo Lite keyboard kit, including the nRF52 build target, e-paper mono UI adaptation, physical keypad input with EN/123/CN modes, T9-style Chinese candidate input, device I/O settings, 10px Fusion Pixel font support, and TrailMate logo sleep page / 新增 T-Echo Lite 键盘套件支持,包括 nRF52 构建目标、电子纸 mono UI 适配、实体键盘 EN/123/CN 输入、九宫格中文候选输入、设备 I/O 设置、10px Fusion Pixel 字库支持,以及 TrailMate logo 息屏页面
- Added nRF52 MeshCore discover entry points and protocol-aware chat send eligibility, so MC/MT channels and contacts can be browsed across protocol modes while sends stay limited to the active protocol / 新增 nRF52 MeshCore Discover 入口与协议感知的聊天发送资格控制,使 MC/MT 频道和联系人可跨协议查看,但发送仍限制在当前活动协议内
- Added issue #33 support for firmware-provided Emoji input/display candidates and issue #61 support for firmware-provided Symbol candidates, replacing the earlier extension-pack-only route with built-in candidate sets for constrained devices / 针对 issue #33 新增固件内置 Emoji 输入/显示候选支持,并针对 issue #61 新增固件内置 Symbol 候选支持,用内置候选集替代此前仅依赖扩展包的路线,适配受限设备
- Added issue #57 Pager-only main-menu keyboard backlight control, including a bottom Help hint and Help-modal shortcut documentation for adjusting keyboard backlight from the Pager main menu / 针对 issue #57 新增仅限 Pager 的主菜单键盘背光控制,包括底部 Help 提示,以及在 Pager 主菜单 Help 弹窗中说明调节键盘背光的快捷键
- Added the European Cyrillic Extended language bundle with Russian locale coverage, Cyrillic external font coverage, and a Russian Cyrillic keyboard IME; the package remains installable through Extensions with locale, font, and IME metadata in the Pages pack catalog / 新增欧洲西里尔扩展语言包,包含俄语 locale 覆盖、西里尔外部字体覆盖和俄语西里尔键盘输入法;该包仍通过 Extensions 安装,并在 Pages 包目录中保留语言、字体和输入法 metadata
- Added Walkie monitor mode controls and top-bar modulation/listen indicators, including LoRa/FSK modulation badges and a persistent monitor state surfaced outside the Walkie page / 新增对讲机守听模式控制与顶部栏调制/守听状态指示,包括 LoRa/FSK 调制标记,并在对讲机页面之外展示持续守听状态
Changed / 变更
- Moved the protocol runtime closer to the 0.1.30 architecture target by routing MeshCore/Meshtastic UI actions, discover, text send, node actions, position sharing, traceroute/reply handling, and protocol effects through shared runtime/facade boundaries / 按 0.1.30 架构目标继续收敛协议 runtime,将 MeshCore/Meshtastic 的 UI 动作、discover、文本发送、节点动作、位置共享、traceroute/reply 处理和协议 effect 统一路由到共享 runtime/facade 边界
- Reworked ESP shared SPI and storage ownership around a single SdFat/SdFs runtime, retaining the legacy
/chat/index.binplus/chat/*.logchat layout while removing the new/chat_messages.binbypass and ArduinoSD.h/FS.hstorage backend paths / 围绕单一 SdFat/SdFs runtime 重做 ESP shared SPI 与存储所有权,保留旧的/chat/index.bin+/chat/*.log聊天布局,同时移除新的/chat_messages.bin旁路和 ArduinoSD.h/FS.h存储后端路径 - Retired the unused T-LoRa Pager NFC runtime, build dependencies, board facts, power path, and shared-SPI CS participation, because NFC has no active product feature and was verified to interfere with reliable high-speed SD startup on the shared SPI bus / 移除未使用的 T-LoRa Pager NFC runtime、构建依赖、板级事实、电源路径和 shared SPI CS 参与;NFC 当前没有 active 产品功能,并经实机验证会干扰 shared SPI 上高速 SD 启动稳定性
- Refined localization, IME, and language-pack handling for the 0.1.30 UI surface, including external CJK font-pack loading, manual language-load busy overlays, settings/team copy, and keyboard layout descriptor decoupling / 调整 0.1.30 UI 表面的本地化、输入法和语言包处理,包括外部 CJK 字体包加载、语言加载 busy overlay、设置/Team 文案,以及键盘布局描述符解耦
- Updated Team, Contacts, and Nearby presentation to prefer short names and last-seen age semantics instead of online/offline labels where the protocol does not provide a reliable online state / 更新 Team、Contacts 与 Nearby 展示逻辑,在协议没有可靠在线状态时优先展示短名和 last-seen 时间语义,不再使用误导性的 online/offline 标签
- Reworked Pager Walkie layout and input focus behavior so monitor controls no longer trap the rotary encoder as a volume-only control / 调整 Pager 对讲机布局和输入焦点行为,使守听控制不再让滚轮被音量控件单独吞掉
- Updated GitHub Pages release copy for the 0.1.30-alpha publishing lane, keeping firmware download metadata generated by the Release/Pages workflows instead of hand-editing asset URLs / 更新 GitHub Pages 的 0.1.30-alpha 发布展示文案,同时保持固件下载 metadata 由 Release/Pages workflow 生成,不手工维护资产 URL
- Reduced internal DRAM pressure by storing built-in Symbol/Emoji binfont data in flash rodata and lowering the localized font binding pool after verifying the active fallback chain / 通过将内置 Symbol/Emoji binfont 数据放入 flash rodata,并在验证 active fallback 链后降低本地化字体绑定池,减少内部 DRAM 压力
Fixed / 修复
- Fixed issue #58 by allowing failed MT/MC chat bubbles to be tapped for retry, reusing the existing failed-message resend path without adding extra chat-screen controls / 修复 issue #58:失败的 MT/MC 聊天气泡现在可点击重试,复用现有失败消息重发路径,不额外增加聊天页按钮
- Fixed issue #59 by burning down stale ESP map/SD/UI bypasses, bounding shared SPI display waits, moving blocking SD work behind runtime/storage boundaries, and validating the repaired T-LoRa Pager SD startup on real hardware / 修复 issue #59:清理陈旧的 ESP map/SD/UI 旁路,限制 shared SPI 显示等待,将阻塞 SD 工作收敛到 runtime/storage 边界,并在实机上验证修复后的 T-LoRa Pager SD 启动
- Fixed issue #60 by implementing MeshCore V2 multibyte path handling so multibyte MeshCore paths no longer break route encoding/decoding on supported runtimes / 修复 issue #60:实现 MeshCore V2 多字节路径处理,使支持的 runtime 不再因 MeshCore 多字节路径破坏路由编解码
- Fixed Symbol and Emoji candidate-page header overlap by replacing the flex-wrap candidate grid with explicit row/column placement and giving the full header width to the operation hint / 修复 Symbol 与 Emoji 候选页顶部帮助栏遮挡候选行的问题:将候选 grid 从 flex-wrap 改为显式行列布局,并把头部空间完整交给操作提示
- Fixed ESP map tile regressions by isolating tile IO from the UI loop, hardening tile identity and decoder cache handling, decoding satellite JPEG tiles from memory, and improving tile backpressure recovery without reintroducing UI stalls / 修复 ESP 地图瓦片回归:隔离瓦片 IO 与 UI loop,加固瓦片 identity 与解码缓存处理,改为内存解码卫星 JPEG 瓦片,并改善瓦片背压恢复而不重新引入 UI 卡死
- Fixed startup and SD persistence regressions so boot UI appears before slow storage work, CJK language packs load from the SD pack path, chat/contact/node/team persistence selects the SD backend when SD is available, and SD diagnostics report mount/read failures with actionable error codes / 修复启动与 SD 持久化回归:boot UI 在慢存储任务前出现,CJK 语言包从 SD pack 路径加载,chat/contact/node/team 在 SD 可用时选择 SD backend,并让 SD 诊断输出可定位的 mount/read 错误码
- Fixed send-result feedback regressions by routing chat delivery notices through the event-driven feedback runtime, including ESP and nRF environments / 修复发送结果反馈回归:通过事件驱动的 feedback runtime 路由聊天发送成功/失败轻提示,覆盖 ESP 与 nRF 环境
- Fixed random stale GPS/location handling by rejecting stale fixes before they can be shown as current map positions / 修复随机陈旧 GPS/位置显示问题,在旧 fix 被当作当前位置展示前拒绝它们
Removed / 移除
- Removed legacy presentation adapter include surfaces, Linux fallback UI paths, obsolete ESP GPS map page implementation, stale map tile cache lifetime code, and the legacy chat delivery bridge after their runtime replacements became active / 移除 legacy presentation adapter include 面、Linux fallback UI 路径、旧 ESP GPS map 页面实现、陈旧 map tile cache 生命周期代码,以及已被 runtime 替代的旧 chat delivery bridge
- Removed Arduino SD /
FS.h/Fileaudio and storage bypasses from active ESP storage paths, keeping SD access onSdRuntimeFile/SdRuntimeDirand the shared SPI lock / 从 active ESP 存储路径移除 Arduino SD /FS.h/File音频与存储旁路,使 SD 访问保持在SdRuntimeFile/SdRuntimeDir和 shared SPI lock 之下
What's Changed
- Prepare 0.1.30-alpha release by @vicliu624 in #63
Full Changelog: v0.1.29-alpha...v0.1.30-alpha