Trail Mate · Releases
from GitHub · updated 2026-07-0420 releases
v0.1.37-alpha # Pre-release 16 days ago · 2026-07-04 10:34 UTC
[0.1.37-alpha] - 2026-07-04
Changed / 变更
- Reworked the Settings Date/Time dialog into a bounded six-column datetime picker for year, month, day, hour, minute, and second, replacing free text input with scroll-only selection, explicit keyboard focus traversal, and automatic day-range clamping. / 将 Settings 的日期时间弹窗重做为有界六列 datetime picker(年、月、日、时、分、秒),用滚动选择替代自由文本输入,补上明确的键盘焦点移动顺序,并自动收口当月合法日期范围。
Fixed / 修复
- Fixed Shutdown confirmation dialog CJK rendering by routing translated labels through the shared localized font fallback instead of forcing the ASCII Montserrat font. / 修复 Shutdown 确认弹窗的中文显示:翻译文本改走共享 localized font fallback,不再强制使用只覆盖 ASCII 的 Montserrat 字体。
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.36-alpha...v0.1.37-alpha
v0.1.36-alpha # Pre-release 17 days ago · 2026-07-04 09:04 UTC
[0.1.36-alpha] - 2026-07-04
Changed / 变更
- Restricted offline map tile layers to PNG tiles and removed the stale JPEG tile path so map source cache and documentation follow one supported tile format. / 将离线地图瓦片图层收口为 PNG 瓦片,并移除陈旧的 JPEG 瓦片路径,使地图源缓存与文档遵循单一受支持格式。
- Updated Pager shutdown and battery handling with an explicit power-off confirmation flow, translated shutdown notices, and more stable board ADC sampling for battery reporting. / 更新 Pager 关机与电量处理:新增明确的关机确认流程、补齐关机提示翻译,并改进板级 ADC 采样以提升电量显示稳定性。
- Made shared two-pane side filter panels vertically scrollable by default so Settings, Extensions, Contacts, Chat, and similar left-filter layouts remain reachable on small screens. / 将共享两栏布局的左侧 filter 面板默认改为可垂直滚动,使 Settings、Extensions、Contacts、Chat 等小屏左侧分类入口不会被底部遮住。
- Updated the promotional poster to show both supported Pager and T-Deck devices with the current Trail Mate UI instead of misleading generated hardware or screens. / 更新宣传海报,同时展示受支持的 Pager 与 T-Deck 设备,并使用当前 Trail Mate 界面,避免生成式硬件外观或伪界面误导用户。
Fixed / 修复
- Fixed Pager power-off failure handling so USB-connected or PMU-unavailable shutdown attempts show an explicit failure notice instead of falling back to BOOT-only deep sleep. / 修复 Pager 关机失败处理:USB 已连接或 PMU 不可用时显示明确失败提示,不再回退到只能由 BOOT 唤醒的 deep sleep。
- Fixed a Pager shutdown build regression caused by the board library depending on the UI i18n header. / 修复 Pager shutdown 构建回归:移除 board 库对 UI i18n 头文件的错误依赖。
- Fixed system notification font fallback and UTF-8 truncation so translated notifications and runtime notices can render CJK text without missing glyphs or split UTF-8 characters. / 修复系统 notification 的字体 fallback 与 UTF-8 裁剪,使翻译后的通知和运行时提示能正确显示中文等 CJK 文本,不再因缺字或截断字符产生乱码。
- Fixed the Pager BOOT long-press interaction so deep sleep starts as soon as the hold threshold is reached instead of waiting for button release. / 修复 Pager BOOT 长按交互:达到长按阈值后立即进入 deep sleep,不再等到松开按键才触发。
What's Changed
- 0.1.36-alpha by @vicliu624 in https://github.com/vicliu624/trail-mate/pull/72
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.35-alpha...v0.1.36-alpha
v0.1.35-alpha # Pre-release 17 days ago · 2026-07-04 00:40 UTC
[0.1.35-alpha] - 2026-07-03
Added / 新增
- Added a Meshtastic memory model specification covering stable BLE
FromRadioslots, bounded queues, priority backpressure, MQTT downlink ownership, and hot-path allocation rules across nRF52, ESP32, and Linux. / 新增 Meshtastic 内存模型规格,覆盖稳定 BLEFromRadio发布槽、有界队列、优先级背压、MQTT 下行所有权,以及 nRF52、ESP32、Linux 共享的热路径分配规则。
Changed / 变更
- Reworked Meshtastic BLE/MQTT bridge ownership around fixed published slots, fixed retransmit/pending tables, and shared backpressure rules so high-traffic BLE, MQTT, NodeInfo, and status flows no longer depend on unbounded dynamic containers. / 围绕固定发布槽、固定 retransmit/pending 表和共享背压规则重做 Meshtastic BLE/MQTT 桥接所有权,使高流量 BLE、MQTT、NodeInfo 与状态流不再依赖无界动态容器。
- Updated GitHub Pages device copy for the 0.1.35-alpha nRF52 stabilization lane while keeping firmware download metadata generated by the Release/Pages workflows. / 更新 GitHub Pages 中 0.1.35-alpha nRF52 稳定化发布线的设备说明,同时继续保持固件下载 metadata 由 Release/Pages workflow 生成。
Fixed / 修复
- Stabilized nRF52 Meshtastic BLE connection and reconnect behavior by aligning
FromRadionotify/read liveness, stale-consume recovery, disconnect handling, and phone-visible session state with the app protocol flow. / 稳定 nRF52 Meshtastic BLE 连接与重连行为,使FromRadio通知/读取活性、陈旧消费恢复、断开处理和手机端可见会话状态与 App 协议流程对齐。 - Restored nRF52 MQTT proxy and downlink behavior under the new memory model, keeping MQTT incoming/outgoing traffic, node metadata projection, and LoRa downlink policy functional under bounded pressure. / 在新的内存模型下恢复 nRF52 MQTT proxy 与下行行为,使 MQTT 收发、节点元数据投影和 LoRa 下行策略在有界压力下保持可用。
- Fixed T-Echo Lite GPS memory-corruption exposure by moving GPS/input runtime ownership out of runtime heap and removing transient peer-key vector allocation from the hot PKI/NodeInfo persistence path. / 修复 T-Echo Lite GPS 内存损坏暴露点:将 GPS/input runtime 所有权移出运行期 heap,并从 PKI/NodeInfo 持久化热路径移除临时 peer-key vector 分配。
- Fixed resource-pack font loading so package update/reinstall paths refresh installed Chinese font resources correctly after pack operations. / 修复资源包字体加载,使包更新/重装后已安装中文字体资源能正确刷新。
What's Changed
- Fix ble by @vicliu624 in https://github.com/vicliu624/trail-mate/pull/70
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.34-alpha...v0.1.35-alpha
- Added a Meshtastic memory model specification covering stable BLE
v0.1.34-alpha # Pre-release 22 days ago · 2026-06-29 08:11 UTC
[0.1.34-alpha] - 2026-06-29
Fixed / 修复
- Fixed the T-LoRa Pager LR1121 MeshCore node advert receive path by allowing RadioLib payload-present CRC mismatch reads to continue into the shared protocol parser instead of being dropped at the ESP radio task boundary. / 修复 T-LoRa Pager LR1121 的 MeshCore 节点 advert 接收路径:RadioLib 已读出 payload 但返回 CRC mismatch 时,不再在 ESP radio task 边界直接丢包,而是继续交给共享协议解析器判断。
- Restored the T-Echo Lite pager notification tone path with the shared ADPCM notification asset so message receive alerts can produce the expected audio feedback. / 使用共享 ADPCM 通知音资源恢复 T-Echo Lite 的 Pager 通知音路径,使收到消息时可以产生预期的声音反馈。
- Added LoRa receive state/IRQ diagnostics and first-failing-step logging for Pager LoRa radio configuration, making LR1121/SX1262 radio setup and receive anomalies visible in field logs. / 新增 LoRa 接收状态/IRQ 诊断,以及 Pager LoRa radio 配置首个失败步骤日志,使 LR1121/SX1262 的无线配置与接收异常能在现场日志中定位。
Changed / 变更
- Updated the GitHub Pages LR1121 install copy for the 0.1.34-alpha publishing lane while keeping firmware download metadata generated by the Release/Pages workflows. / 更新 GitHub Pages 中 LR1121 的 0.1.34-alpha 安装说明,同时继续保持固件下载 metadata 由 Release/Pages workflow 生成。
What's Changed
- Fix ble by @vicliu624 in https://github.com/vicliu624/trail-mate/pull/68
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.32-alpha...v0.1.34-alpha
v0.1.33-alpha # Pre-release 23 days ago · 2026-06-28 06:24 UTC
[0.1.33-alpha] - 2026-06-28
Fixed / 修复
- Fixed Meshtastic Android/iOS peer identity projection for MQTT map-report nodes by decoding
MAP_REPORT_APPthrough the shared node metadata path, preserving public-key state correctly, and preventing map reports from being retransmitted as normal LoRa downlink packets. / 修复 Meshtastic Android/iOS 中 MQTT 地图上报节点的对方身份展示:通过共享节点元数据路径解析MAP_REPORT_APP,正确保留公钥状态,并防止地图上报被当成普通 LoRa 下行包转发。 - Fixed route/track file loading so GPX and KML files are parsed through bounded streaming readers, including KML
<coordinates>token parsing and active route overlay loading fromroute_path. / 修复路线/轨迹文件加载:GPX 与 KML 均通过有界流式读取解析,包括 KML<coordinates>token 流式解析,以及从route_path加载活动路线 overlay。
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.32-alpha...v0.1.33-alpha
- Fixed Meshtastic Android/iOS peer identity projection for MQTT map-report nodes by decoding
v0.1.32-alpha # Pre-release 23 days ago · 2026-06-28 05:37 UTC
[0.1.32-alpha] - 2026-06-27
Added / 新增
- Added verified UF2 manual-flash release artifacts for both nRF52840 manual targets,
gat562_mesh_evb_proandt-echo-lite, checking the UF2 family ID0xADA52840while keeping.hexand.zipoutputs as fallback/diagnostic assets alongside the existing ESP32 firmware targets. / 为两个 nRF52840 手动刷写目标gat562_mesh_evb_pro与t-echo-lite新增经过校验的 UF2 发布产物,检查 UF2 family ID0xADA52840,同时保留.hex与.zip作为备用和诊断产物,并随既有 ESP32 固件目标一起发布。 - Added the T-Echo-Lite-KeyShield target to the project site device list so pre-release users can identify the matching manual firmware package from the latest GitHub Release. / 将 T-Echo-Lite-KeyShield 目标加入项目站设备列表,使预发布用户能从最新 GitHub Release 中识别匹配的手动刷写固件包。
Fixed / 修复
- Fixed the T-LoRa Pager LR1121 MeshCore discovery/contact path from
459e8f52, aligning MeshCore path descriptor handling and Android app contact/adverts projection with the shared protocol rules. / 修复459e8f52中 T-LoRa Pager LR1121 MeshCore 发现/联系人路径,统一 MeshCore path descriptor 处理,并让 Android app 联系人/advert 投影遵循共享协议规则。 - Stabilized nRF52 local persistence for the pre-release by limiting node storage pressure, recovering UI settings writes when volatile cache files fill LittleFS, and adding a Settings action that clears local node/contact/message cache while preserving device and radio settings. / 为本次预发布稳定 nRF52 本地持久化:限制节点存储压力,在易失缓存文件占满 LittleFS 时恢复 UI 设置写入,并新增 Settings 动作,在保留设备与无线设置的同时清理本地节点、联系人和消息缓存。
- Tightened the nRF52 Meshtastic BLE path for iOS by aligning fromRadio notification timing, restart state, and stale-consume recovery with the app protocol sequence. / 收紧 nRF52 Meshtastic BLE 的 iOS 路径,使 fromRadio 通知时序、重启状态和陈旧消费恢复与 App 协议时序对齐。
What's Changed
- fix gpx track crash by @vicliu624 in https://github.com/vicliu624/trail-mate/pull/65
- Fix pager lr1121 by @vicliu624 in https://github.com/vicliu624/trail-mate/pull/66
- Prepare nRF52 BLE and UF2 prerelease by @vicliu624 in https://github.com/vicliu624/trail-mate/pull/67
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.30-alpha...v0.1.32-alpha
- Added verified UF2 manual-flash release artifacts for both nRF52840 manual targets,
v0.1.31-alpha # Pre-release 24 days ago · 2026-06-26 19:05 UTC
[0.1.31-alpha] - 2026-06-27
Fixed / 修复
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.30-alpha...v0.1.31-alpha
v0.1.30-alpha # Pre-release 26 days ago · 2026-06-24 14:24 UTC
[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 co …
v0.1.29-alpha # Pre-release 1 month ago · 2026-06-11 03:58 UTC
[0.1.29-alpha] - 2026-06-11
Added / 新增
- Added shared ESP32 SD diagnostics for issue #54: Debug Logs now mirror startup/runtime notes to
/trailmate/debug/debug.log, and ESP flash coredumps are exported to/trailmate/coredumps/core-*.elfon the next boot after a crash / 针对 issue #54 新增 ESP32 共享 SD 诊断:Debug Logs 会把启动/运行日志镜像到/trailmate/debug/debug.log,ESP flash coredump 会在崩溃后的下一次启动导出到/trailmate/coredumps/core-*.elf - Added a Cardputer Zero Linux Wayland APPLaunch Debian package route for version
0.1.29-alpha, including private app libdir layout, desktopX-Zero-Display=waylandmetadata, Wayland runtime dependencies, icon install rules, CI package build, Dockerlinux/arm64package validation, thelinux-cardputer-zero-debpreset, and an explicit fbdev/evdev debug fallback binary / 新增 Cardputer Zero Linux Wayland APPLaunch Debian 打包路径,版本为0.1.29-alpha,包括私有 app libdir 布局、桌面X-Zero-Display=wayland元数据、Wayland runtime 依赖、图标安装规则、CI 打包构建、Dockerlinux/arm64包验证、linux-cardputer-zero-debpreset,以及显式 fbdev/evdev 调试后备可执行文件
Changed / 变更
- Added M5Stack to the project acknowledgements for the Cardputer Zero hardware support that helped validate the Linux portable-device adaptation path / 在项目致谢中补充 M5Stack,感谢其为 Cardputer Zero 环境适配提供硬件支持,帮助验证 Linux 便携设备适配路径
- Verified issue #53 against the current Team persistence path: Team membership remains persisted across reboot/crash recovery unless the user explicitly leaves or clears the team / 针对 issue #53 验证当前 Team 持久化路径:除非用户明确离开或清除队伍,重启/崩溃恢复不会清空队伍成员状态
What's Changed
- Codex/cardputer zero by @vicliu624 in https://github.com/vicliu624/trail-mate/pull/56
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.28-alpha...v0.1.29-alpha
- Added shared ESP32 SD diagnostics for issue #54: Debug Logs now mirror startup/runtime notes to
v0.1.28-alpha # Pre-release 2 months ago · 2026-06-02 02:11 UTC
[0.1.28-alpha] - 2026-06-02
Changed / 变更
- Updated GitHub Pages and release audit material for the #43-#51 repair pass, keeping release assets generated by the Pages/Release workflows instead of hand-editing download metadata / 更新 GitHub Pages 和发布审计,记录 #43-#51 修复轮次;下载资产仍由 Release/Pages workflow 生成,不手工改 metadata
- Clarified the Web Flasher interface for the two T-LoRa Pager hardware variants so SX1262 and LR1121 users choose separate release targets and radio-specific install cards / 明确网页刷机界面中的 T-LoRa Pager SX1262 与 LR1121 双版本入口,避免用户把不同 radio 硬件刷成同一个目标
Fixed / 修复
- Fixed the MeshCore recovery path for issue #43 by splitting the broad failure into protocol-owned fixes for discovery, public group send, passive advert parsing, send diagnostics, and delivery status propagation; complete multi-channel MeshCore companion management remains outside this bug-fix slice / 针对 issue #43 修复 MeshCore discovery, Public group send, advert, diagnostics, delivery status; multi-channel companion 另行处理
- Fixed Meshtastic Custom channel configuration for issue #44 so phone-side primary channel rename, short
AQ==PSK handling, and manual LoRa settings update Meshtastic state instead of MeshCore aliases / 针对 issue #44 修复 Meshtastic Custom 主频道,AQ==PSK, manual LoRa settings - Fixed first-entry Chat and Contacts navigation for issue #46, including reachable Team filters, protocol-labelled MC/MT contact rows, bounded pager list labels, stable timestamps, and MeshCore incoming bubbles that no longer render as Me / 针对 issue #46 修复 Chat/Contacts 首次进入导航, MC/MT 标签, Pager 列表布局, MeshCore 收信显示
- Fixed the Pager tracker/map SD crash path for issue #47 by serializing tracker SD transactions with the shared SPI lock and recorder mutex, and by correcting the SD-ready timeout conversion / 针对 issue #47 修复 Tracker SD 事务的 shared SPI lock/mutex 保护和 SD-ready timeout
- Fixed Pager map view persistence for issue #48 so zoom, center, pan, and follow mode survive leaving and re-entering the Map screen / 针对 issue #48 保留 Pager 地图 zoom, 中心, pan, follow mode
- Fixed MeshCore Discover actions for issue #49 by sending the compatible zero-hop local
DISCOVER_REQ, surfacing detailed send failures, restarting and synchronizing shared RX state after direct TX, keeping a scan RX guard window, and deferring adverts that could collide with discover responses / 针对 issue #49 修复 zero-hopDISCOVER_REQ, 详细失败, direct TX 后重启并同步 shared RX state, scan guard, advert 延后 - Fixed MeshCore public group send for issue #50 by falling back to the MeshCore public PSK when no group channel key is configured, while still reporting malformed configured keys explicitly / 针对 issue #50 未配置 group key 时回退 MeshCore public PSK, 并明确错误 key
- Fixed MeshCore Nearby naming for issue #51 by parsing signed advert appdata for name, node type, and location, and by giving discover responses stable MC placeholders until real advert or node-info names arrive / 针对 issue #51 解析 signed advert appdata 的 name/type/location, 并提供 MC placeholder
What's Changed
- Prepare 0.1.28-alpha fixes (#43-#51) by @vicliu624 in https://github.com/vicliu624/trail-mate/pull/52
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.27-alpha...v0.1.28-alpha
v0.1.27-alpha # Pre-release 2 months ago · 2026-05-30 17:34 UTC
[0.1.27-alpha] - 2026-05-30
Added / 新增
- Added the T-LoRa Pager LR1121 build and release path for issue #40, including the CI build target, web flasher target, RF switch setup, and TCXO bring-up / 针对 issue #40 新增 T-LoRa Pager LR1121 构建与发布路径,包括 CI 构建目标、网页刷机目标、RF switch 配置与 TCXO 启动
Changed / 变更
- Updated GitHub Pages device/install metadata so the LR1121 Pager appears as its own release target, while CI continues to validate
tlora_pager_lr1121alongside the existing targets / 更新 GitHub Pages 设备与安装信息,使 LR1121 Pager 作为独立发布目标展示,同时 CI 继续与既有目标一起验证tlora_pager_lr1121
Fixed / 修复
- Fixed Team mode on T-LoRa Pager for issue #35 by finishing the Team runtime refactor and restoring the Team chat receive/send path / 针对 issue #35 完成 Team runtime 重构并恢复 Team 聊天收发路径,修复 T-LoRa Pager 上的 Team 模式
- Fixed daylight-saving time handling for issue #38 so displayed local time follows DST rules correctly / 针对 issue #38 修复夏令时处理,使本地时间显示正确遵循 DST 规则
- Fixed spotty T-Deck battery reporting for issue #39 by smoothing the battery estimate path / 针对 issue #39 修复 T-Deck 电量状态不稳定的问题,收敛电量估算路径
- Fixed 64 GB SD card support for issue #42 by adding SDXC/exFAT-capable storage and routing map, Team, GPS, Settings, contact, node, route, tracker, and SSTV persistence through the shared SD runtime / 针对 issue #42 支持 64 GB SD 卡,新增 SDXC/exFAT 存储能力,并让地图、Team、GPS、Settings、联系人、节点、路线、轨迹与 SSTV 持久化统一走共享 SD runtime
What's Changed
- Prepare 0.1.27-alpha fixes by @vicliu624 in https://github.com/vicliu624/trail-mate/pull/45
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.26-alpha...v0.1.27-alpha
v0.1.26-alpha # Pre-release 2 months ago · 2026-05-19 08:28 UTC
[0.1.26-alpha] - 2026-05-19
Added / 新增
- Treated the cross-platform UI/runtime ownership work from this branch as one architecture-refactor feature, consolidating presentation models, UX packs, composition roots, runtime ownership boundaries, legacy-source burn-down guardrails, target metadata, and uConsole/GAT562 build ownership behind the post-refactor product architecture / 将本分支中的跨平台 UI/runtime ownership 工作作为一个架构重构 feature 归档,统一收敛 presentation model、UX pack、composition root、runtime ownership 边界、legacy source 清理护栏、target metadata,以及 uConsole/GAT562 构建所有权
- Added SD-card-only settings backup and restore under Settings > Advanced for issue #32, covering app/radio/chat/channel/GPS/map/privacy/APRS/UI settings without falling back to internal NVS when no SD card is present / 针对 issue #32 在 Settings > Advanced 中新增仅使用 SD 卡的设置备份与还原,覆盖 app、无线、聊天、频道、GPS、地图、隐私、APRS 与 UI 设置;未插入 SD 卡时不会回退到内部 NVS
Changed / 变更
- Chat notification settings for issue #34 are now split into message alert enablement and contact alert scope, so users can separately control whether messages make sound and whether contact discovery alerts are disabled, contacts-only, or all alerts / 针对 issue #34 将 Chat 提醒设置细分为消息提醒开关与联系人提醒范围,使用户可以分别控制消息是否提示,以及联系人发现提示为不提示、仅联系人或全部提示
- Locale bundles are updated to package version 1.1.1 for the 0.1.26-alpha UI surface, adding localized strings for the new chat alert controls and SD settings backup/restore prompts, status text, and confirmation modal / 语言包随 0.1.26-alpha UI 表面更新到 1.1.1,补齐新的聊天提醒控制,以及 SD 设置备份/还原提示、状态文本和确认弹窗的本地化
Fixed / 修复
- Fixed Meshtastic channel sync behavior and added the MeshCore CN preset at 495.200 MHz, including channel response handling that avoids leaving the phone app stuck at 100% while preserving the device-side secondary-channel state / 修复 Meshtastic 频道同步行为并新增 495.200 MHz 的 MeshCore CN 预设,包括频道响应处理,避免手机 app 在 100% 进度处卡住,同时保持设备端 secondary channel 状态一致
What's Changed
- v0.1.25-alpha by @vicliu624 in https://github.com/vicliu624/trail-mate/pull/30
- Fix/uconsole by @vicliu624 in https://github.com/vicliu624/trail-mate/pull/36
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.24-alpha...v0.1.26-alpha
v0.1.25-alpha # Pre-release 2 months ago · 2026-05-11 17:45 UTC
[0.1.25-alpha] - 2026-05-11
Added / 新增
- Added GPS receiver bring-up controls under Settings, including receiver baud, probe window, receiver profile, RXM/GNSS/NMEA init policy, and a non-blocking diagnostics view that reports transport, traffic, fix, satellite, and polling state / 新增 Settings 中的 GPS 接收机启动控制,包含接收机波特率、探测窗口、接收机 profile、RXM/GNSS/NMEA 初始化策略,以及非阻塞诊断视图,用于报告传输、流量、定位、卫星与轮询状态
- Added shared GPS diagnostics and receiver-init runtime surfaces across ESP Arduino, ESP-IDF, Linux, and UI bindings so Settings and board runtimes can observe the same GPS health model / 新增跨 ESP Arduino、ESP-IDF、Linux 与 UI 绑定的共享 GPS 诊断和接收机初始化 runtime 表面,使 Settings 与板级运行时能够观察同一套 GPS 健康模型
- Added Linux uConsole chat workspace smoke coverage and richer node detail views, including nearby-node conversations, radio metadata, position details, and a compact node-centered map preview / 新增 Linux uConsole 聊天工作区 smoke 覆盖与更丰富的节点详情视图,包括附近节点会话、无线元数据、位置详情和以节点为中心的紧凑地图预览
- Added a repository text-encoding integrity specification to make valid UTF-8 preservation an explicit engineering requirement for source, docs, packaging metadata, and generated text assets / 新增仓库文本编码完整性规格,将保持有效 UTF-8 明确列为源码、文档、打包元数据与生成文本资源的工程要求
- Added GPS Settings and ordinary T-Deck GPS UART/LoRa TX noise guides under
docs/devices/, covering recommended receiver profiles, diagnostics interpretation, self-check procedures, TX-power correlation evidence, and hardware mitigation steps / 新增docs/devices/下的 GPS 设置指南与普通 T-Deck GPS UART/LoRa TX 噪声说明,覆盖推荐接收机 profile、诊断解读、自检流程、TX power 相关证据与硬件缓解步骤
Changed / 变更
- T-Deck GPS startup now follows a runtime-owned GPS path: board boot no longer performs early GPS initialization, Auto baud preserves the 0.1.23-compatible 38400 baseline, and manual baud selections still run UART probes for diagnostics / T-Deck GPS 启动现在改为运行时拥有的 GPS 路径:板级 boot 不再提前初始化 GPS,Auto 波特率保持兼容 0.1.23 的 38400 基线,手动波特率仍会执行 UART 探测用于诊断
- T-Deck default GPS Auto profile now restores the 0.1.23-style active RXM/GNSS/NMEA configuration path, while explicit passive or legacy receiver profiles can still skip those configuration writes / T-Deck 默认 GPS Auto profile 现恢复 0.1.23 风格的主动 RXM/GNSS/NMEA 配置路径,同时显式 passive 或 legacy 接收机 profile 仍可跳过这些配置写入
- GPS task logging now reports rolling UART traffic, post-config stream recovery, and health summaries without printing raw mutex pointer addresses that confuse PlatformIO's ESP32 exception decoder / GPS task 日志现在报告滚动 UART 流量、配置后数据流恢复与健康摘要,并避免打印会误导 PlatformIO ESP32 exception decoder 的原始 mutex 指针地址
- uConsole map overlays now expose richer node telemetry, MQTT visibility behavior, selectable node bubbles, last-seen ages, radio stats, altitude, and node-centered snapshots that can be reused by chat node detail panels / uConsole 地图覆盖层现在展示更丰富的节点遥测、MQTT 可见性行为、可选择节点气泡、最后出现时间、无线统计、高度,以及可被聊天节点详情面板复用的节点中心快照
Fixed / 修复
- Fixed the T-Deck GPS regression where current builds could report the GPS UART ready but never resume a steady NMEA stream under the default receiver-init policy / 修复 T-Deck GPS 回归:当前构建在默认接收机初始化策略下可能显示 GPS UART ready,但无法恢复稳定 NMEA 数据流
- Fixed GPS NMEA configuration coverage by enabling GSA alongside GGA/RMC/GSV for the internal receiver stream so skyplot and satellite diagnostics have the sentences they need / 修复 GPS NMEA 配置覆盖,内部接收机数据流现在会与 GGA/RMC/GSV 一起启用 GSA,使星图与卫星诊断获得所需语句
- Fixed GPS diagnostics blind spots by sampling initial NMEA sentences, capturing raw non-NMEA bytes before a valid stream appears, tracking recent character counts, and surfacing stalled-traffic states in UI diagnostics / 修复 GPS 诊断盲区,通过采样初始 NMEA 语句、在有效数据流出现前捕获原始非 NMEA 字节、跟踪近期字符数,并在 UI 诊断中暴露流量停滞状态
- Fixed T-Deck GPS noise handling by separating UART read counts from parser progress and filtering non-NMEA bursts before they can be mistaken for valid receiver traffic / 修复 T-Deck GPS 噪声处理,通过区分 UART 读取计数与 parser 进度,并在非 NMEA 突发噪声被误判为有效接收机流量前进行过滤
- Fixed Linux/uConsole node and map workspace gaps where nearby LoRa nodes, MQTT-hidden counts, packet log context, a …
v0.1.24-alpha # Pre-release 2 months ago · 2026-05-09 06:43 UTC
[0.1.24-alpha] - 2026-05-09
Added / 新增
- Added a formal locale-pack release specification covering package versioning,
min_firmware_version, archive layout, catalog generation, review/release gating, rollback behavior, and pre-release validation / 新增语言包发布规格,覆盖包版本、min_firmware_version、分发 archive、catalog 生成、review/release 闸门、回滚行为与发布前校验 - Added installable Arabic locale-pack assets with Noto Naskh Arabic font generation support and RTL metadata, kept in review status until native-language and input review are complete / 新增可安装阿语语言包资源,包含 Noto Naskh Arabic 字体生成支持与 RTL 元数据,并在母语与输入法审查完成前保持 review 状态
- Added locale-pack structural validation tooling for key completeness, duplicate keys, empty translations, placeholder consistency, release English fallback detection, dependency checks, and fake IME rejection / 新增语言包结构校验工具,检查 key 完整性、重复 key、空翻译、占位符一致性、release 英文兜底、依赖关系与假 IME
Changed / 变更
- Language packs are now versioned as 1.1.0 packages for the 0.1.24-alpha release, with
translation_statusmetadata carried intosite/data/packs.jsonso review packs can be cataloged without being selectable as runtime UI languages / 语言包现以 1.1.0 包随 0.1.24-alpha 发布,并把translation_status写入site/data/packs.json,使 review 包可被 catalog 收录但不会成为运行时可选 UI 语言 - Simplified Chinese remains the only release locale with the real built-in Pinyin IME; Traditional Chinese (Taiwan), Arabic, Russian, European Latin, Japanese, and Korean packs are cataloged as display-only review bundles / 简体中文仍是唯一带真实内建拼音输入法的 release locale;台湾繁中、阿语、俄语、欧洲拉丁语、日语与韩语包以 display-only review bundle 形式进入目录
- The GitHub Pages language-pack section now surfaces review/release status and package metadata so users can see language-pack maturity and update availability more clearly / GitHub Pages 语言包区域现在展示 review/release 状态与包元数据,让用户更清楚地看到语言包成熟度与更新可见性
- Localization and IME specifications now explicitly distinguish locale, region, script, font coverage, release quality, and real input backends, including the rule that Taiwan Traditional Chinese must not default to Pinyin / 本地化与输入法规格现明确区分 locale、地区、脚本、字体覆盖、发布质量与真实输入后端,并写明台湾繁中不得默认使用拼音
Fixed / 修复
- Filled missing and English-fallback entries across non-English locale
strings.tsvfiles while keeping non-native-reviewed packages gated asreviewinstead of pretending they are release quality / 补齐非英语语言包中缺失或英文兜底的strings.tsv条目,同时将未完成母语审校的包保持在review闸门内,避免伪装为 release 质量 - Removed fake IME manifests and locale
ime_packdependencies for scripts without implemented runtime input engines, preventing Settings from exposing unusable input methods / 移除尚无真实运行时输入引擎的假 IME manifest 与 localeime_pack依赖,避免 Settings 暴露不可用输入法 - Runtime locale discovery now skips non-release
translation_statusvalues, preserving English fallback and preventing incomplete review packs from entering the normal language picker / 运行时 locale 发现现在会跳过非 release 的translation_status,保留英文兜底并防止未完成 review 包进入普通语言选择器
What's Changed
- Feature/cardputer zero by @vicliu624 in https://github.com/vicliu624/trail-mate/pull/27
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.22-alpha...v0.1.24-alpha
- Added a formal locale-pack release specification covering package versioning,
v0.1.23-alpha # Pre-release 3 months ago · 2026-04-30 18:58 UTC
[0.1.23-alpha] - 2026-05-01
Added / 新增
- Cardputer Zero and Linux simulator foundations, including shared Linux runtime wiring, shell boot paths, simulator pages, and an adaptation specification for the final device shape / 新增 Cardputer Zero 与 Linux 模拟器基础能力,包括共享 Linux runtime 接线、Shell 启动路径、模拟器页面,以及面向最终设备形态的适配规格
- An installable Russian locale bundle with a Cyrillic external font pack, package catalog metadata, and attribution for @polarikus' contributed translations / 新增可安装俄语语言包,包含 Cyrillic 外部字体包、包目录元数据,并注明 @polarikus 对俄语翻译的贡献
- A GPS runtime specification under
docs/specs/, defining user enable intent, receiver mode, satellite mask, power policy, internal NMEA, external NMEA export, transport readiness, and observation state as separate concepts / 新增docs/specs/下的 GPS runtime 规格,将用户启用意图、接收机模式、卫星系统选择、电源策略、内部 NMEA、外部 NMEA 导出、传输就绪与观测状态明确拆分
Changed / 变更
- GPS configuration semantics are now unified across ESP Arduino, ESP-IDF, Linux, nRF52/GAT562, phone bridge, and UI settings:
gps_enabledis the enable flag, whilegps_mode,gps_sat_mask,gps_strategy, and external NMEA export keep their own meanings / GPS 配置语义现已在 ESP Arduino、ESP-IDF、Linux、nRF52/GAT562、手机桥接与 UI 设置中统一:gps_enabled是启用开关,而gps_mode、gps_sat_mask、gps_strategy与外部 NMEA 导出各自保持独立含义 - Board-level GPS startup now treats UART transport readiness separately from UBX receiver probing on T-Deck, T-Deck Pro, and T-LoRa Pager, with each board owning the correct UART teardown path / T-Deck、T-Deck Pro 与 T-LoRa Pager 的板级 GPS 启动现已将 UART 传输就绪与 UBX 接收机探测拆开,并由各板型自己负责正确的 UART 关闭路径
- The Linux simulator/dev-container path now mounts and exposes the repository root more consistently, making shared runtime work easier to exercise from the Linux shell / Linux 模拟器与 dev-container 路径现更一致地挂载并暴露仓库根目录,使共享 runtime 工作更容易在 Linux Shell 中验证
Fixed / 修复
- Fixed the T-Watch S3 release build for watch Morse input by passing board-owned PDM microphone pins through build-time definitions / 修复 T-Watch S3 发布构建中 watch Morse 输入缺少板级 PDM 麦克风 pin 定义导致的编译失败
- Fixed the GPS no-lock regression where internal receiver NMEA could be disabled by external export/privacy-style settings, leaving maps and skyplot without parsed GPS data even when GPS was enabled / 修复 GPS 无法锁定的回归:内部接收机 NMEA 可能被外部导出或旧 privacy 风格设置关闭,导致即使 GPS 已启用,地图与星图也拿不到可解析数据
- Fixed startup cases where T-Deck GPS was reported as failed because a short UBX identity probe timed out, preventing the runtime from continuously reading NMEA while the receiver warmed up / 修复 T-Deck 启动阶段因短时间 UBX identity 探测超时而把 GPS 判定失败的问题,使 runtime 能在接收机预热期间持续读取 NMEA
- Fixed T-Deck display startup and brightness handling, reducing early backlight/display initialization regressions on that board family / 修复 T-Deck 显示启动与亮度处理,降低该板型早期背光与屏幕初始化回归
- Fixed Energy Sweep sampling so it uses instant RSSI and only owns the LoRa lock while scanning, avoiding stale measurements and unnecessary radio contention outside active sweeps / 修复 Energy Sweep 采样逻辑,改用 instant RSSI,并只在扫描期间持有 LoRa 锁,避免陈旧测量值和非扫描阶段的无线资源争用
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.22-alpha...v0.1.23-alpha
v0.1.22-alpha # Pre-release 3 months ago · 2026-04-22 14:17 UTC
[0.1.22-alpha] - 2026-04-22
Added / 新增
- A shared map viewport component plus UI/UX specs for firmware visual style, Node Info page behavior, and map-layer popup semantics, so map-backed screens now share one explicit contract instead of parallel page-local implementations / 新增共享地图视口组件,以及固件视觉风格、节点详情页行为与地图图层弹窗语义等 UI/UX 规格,使地图相关界面不再继续各自平行实现,而是共享同一套明确契约
- Formal localization and locale-pack specifications in Chinese, covering runtime responsibilities, install layout, package/version boundaries, and the evolution rules between firmware and language packs / 新增中文版本地化总规格与语言包规格,明确运行时职责、安装布局、包与版本边界,以及固件与语言包之间的演进约束
Changed / 变更
- The Node Info page was rebuilt around the shared map viewport, with bottom-center layer switching, node-centered zoom semantics, draggable map browsing, right-aligned link readouts, and a content-bounded translucent backdrop for readability over live map tiles / 节点详情页现已围绕共享地图视口重构,支持底部居中的图层切换、以目标节点为锚点的缩放语义、可拖动地图浏览、右对齐链路读数,以及仅包裹读数内容的半透明可读性底板
- Shared SPI bus ownership is now modeled explicitly as shared_spi_lock, with naming, guard usage, and supporting guidance aligned across display, map tiles, track recording, SSTV, and USB mass-storage paths / 共享 SPI 总线所有权现已显式建模为 shared_spi_lock,并在显示、地图瓦片、轨迹记录、SSTV 与 USB 大容量存储路径中统一命名、guard 用法与配套说明
- Shared localization/runtime surfaces were refined further across settings, contacts, GPS, and package/runtime plumbing, and the Simplified Chinese language pack was updated to cover the new map-layer and UI copy / 设置、联系人、GPS 与语言包运行时等共享本地化路径进一步收敛,同时补齐简体中文语言包对新地图图层与界面文案的覆盖
Fixed / 修复
- Fixed Node Info regressions where tiles could fail to render, map dragging/layer switching diverged from the main map page, and right-side readouts became hard to read or inconsistent over map imagery / 修复节点详情页中瓦片可能不渲染、地图拖动与图层切换语义偏离主地图页,以及右侧读数叠在地图图像上时难以辨认或表现不一致的问题
- Fixed shared-SPI contention during USB mass-storage activity by locking SD access and pausing radio tasks while the USB MSC backend owns the storage path, reducing display corruption and tear-like artifacts on ESP boards / 修复 USB 大容量存储期间的共享 SPI 争用问题,在 USB MSC 后端占用存储路径时为 SD 访问加锁并暂停无线任务,降低 ESP 板卡上的显示损坏与类似撕裂现象
- Fixed supporting protocol/runtime helper paths so node detail, map-layer UI, and localization-driven surfaces behave more predictably across mixed protocol and device states / 修复若干协议与运行时 helper 的支撑路径,使节点详情、地图图层界面与本地化驱动的共享界面在混合协议和设备状态下表现更稳定且更可解释
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.21-alpha...v0.1.22-alpha
v0.1.21-alpha # Pre-release 3 months ago · 2026-04-21 08:51 UTC
[0.1.21-alpha] - 2026-04-21
Changed / 变更
- Extensions app surfaces now participate fully in the shared localization pipeline, covering the menu label/description, top bar title, package list/detail headings, and install/uninstall status copy across the supported language packs / Extensions 相关界面现已完整接入共享本地化链路,覆盖菜单名称与描述、顶部标题、语言包列表/详情标题,以及安装/卸载状态文案,并同步补齐各已支持语言包的词条
- Pager home footer layout now uses a split alignment model, keeping node ID anchored on the left while RAM and PSRAM usage stay grouped on the right, with the app description lifted above the footer to preserve readability / Pager 主界面底栏现改为分离对齐布局,节点 ID 固定左对齐,RAM 与 PSRAM 使用情况固定右对齐,同时将应用描述抬升到底栏上方,避免被遮挡
Fixed / 修复
- Fixed localized menu refresh paths that were still using raw text updates, which left the Extensions icon label and focused description untranslated after language changes / 修复菜单本地化刷新路径中仍使用 raw text 更新的问题,解决切换语言后 Extensions 图标标签与焦点描述未正确翻译的问题
- Fixed untranslated and inconsistent copy throughout the Extensions runtime, including compatibility badges, package action states, Wi-Fi status text, and package install/uninstall progress notifications / 修复 Extensions 运行时中多处未本地化或不一致的文案,包括兼容性标记、包操作状态、Wi-Fi 状态文字,以及安装/卸载过程通知
- Fixed pager footer overlap where the bottom bar could cover icon descriptions, especially on the focused-card layout / 修复 pager 焦点卡片布局下底栏遮挡应用描述的问题
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.20-alpha...v0.1.21-alpha
v0.1.20-alpha # Pre-release 3 months ago · 2026-04-21 06:48 UTC
[0.1.20-alpha] - 2026-04-21
Added / 新增
- On-device firmware update controls under Settings > Advanced, including update check/install actions, progress overlays, and release metadata sourced from GitHub Pages / 新增 Settings > Advanced 中的设备侧固件更新能力,包含检查更新、安装更新、进度遮罩,以及来自 GitHub Pages 的发布元数据
- Pages/release packaging now publishes OTA-ready binaries, Web Flasher images, and language-pack assets together so the project site can drive both browser flashing and in-device updates / 新增 Pages/Release 打包链路,同时发布 OTA 二进制、Web Flasher 镜像与语言包资源,使项目站点既能浏览器刷机也能驱动设备内更新
- Flash-backed language-pack storage on ESP, allowing installed locale/font packages to load from internal flash without depending on SD card presence / 新增 ESP 上基于内部 Flash 的语言包存储,使已安装 locale/font 包可直接从内部 Flash 加载,不再依赖 SD 卡存在
Changed / 变更
- Startup flow now surfaces UI earlier, shows boot progress/log feedback, and keeps long-running locale/package operations behind a shared busy overlay that blocks input and suppresses sleep while work is active / 启动流程现会更早显示 UI,并提供 boot 进度/日志反馈;耗时的语言包与资源操作也会通过统一 busy overlay 承载,在进行中阻止输入并抑制息屏
- Firmware version reporting now prefers the injected Trail Mate version from the build pipeline instead of exposing the raw ESP-IDF app version, and CI validates OTA slot size before publishing artifacts / 固件版本展示现优先使用构建流水线注入的 Trail Mate 版本号,而不是直接暴露 ESP-IDF app version;CI 也会在发布前校验 OTA 分区大小
- Chinese locale/font handling was reworked around tiered packs, IME availability controls, and flash-first discovery so startup and runtime font loads are faster and more predictable / 中文 locale/font 处理围绕分层字体包、输入法启用控制与 flash-first 发现机制进行了重构,使启动与运行时字体加载更快且更可控
Fixed / 修复
- Fixed low-memory Wi-Fi bring-up for settings/package/update flows by adding heap diagnostics, BLE pause-and-retry fallback, and lighter initialization settings when needed / 修复设置页、语言包下载与固件更新流程中 Wi-Fi 在低内存条件下难以启动的问题,通过增加 heap 诊断、BLE 暂停后重试,以及更轻量的初始化参数提升成功率
- Fixed incorrect esp-idf:v4.4.7 ... version strings in the UI, and kept update/version surfaces aligned with the actual firmware release being built / 修复界面中错误显示 esp-idf:v4.4.7 ... 作为版本号的问题,使更新与版本展示统一对齐到真实固件版本
- Fixed several UX regressions around locale install/load and multilingual input, including missing loading feedback, sleep during blocking tasks, and Chinese IME/candidate layout issues / 修复语言包安装/加载与多语言输入过程中的多项体验回退,包括缺少 loading 反馈、阻塞任务期间误触发息屏,以及中文输入法/候选栏布局问题
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.19-alpha...v0.1.20-alpha
v0.1.19-alpha # Pre-release 3 months ago · 2026-04-20 19:47 UTC
[0.1.19-alpha] - 2026-04-21
Added / 新增
- Installable multilingual language bundles delivered through the new Extensions flow, with initial external locale/font packages for European Latin Extended, Simplified Chinese, Traditional Chinese, Japanese, and Korean / 新增通过 Extensions 流程分发的可安装多语言包,首批提供 European Latin Extended、简体中文、繁体中文、日语与韩语等外部 locale/font 套件
- A Pages-side pack catalog and build pipeline that publishes SD-installable locale bundles from
packs/intosite/data/packs.jsonand packaged zip assets / 新增 Pages 侧语言包目录与构建流水线,可将packs/下的资源发布为site/data/packs.json与可安装 zip 包 - Shared Wi-Fi runtime support for the ESP targets, plus Extensions app entry points and top-bar/status exposure needed for on-device package downloads / 新增 ESP 目标共用的 Wi-Fi 运行时能力,以及为设备侧下载语言包准备的 Extensions 入口和顶部状态显示
Changed / 变更
- Localization is now pack-driven instead of being limited to a small built-in language set, with runtime locale/font/IME registration, SD discovery, and memory-profile-aware gating for constrained devices / 本地化体系现已从少量内建语言收敛为 pack 驱动模式,支持运行时 locale/font/IME 注册、SD 扫描,以及面向受限设备的内存画像门控
- GitHub Pages now presents Trail Mate as a multilingual firmware project and surfaces the installable language-pack catalog alongside the existing firmware download path / GitHub Pages 现将 Trail Mate 明确展示为支持多语言的固件项目,并在原有固件下载路径之外呈现可安装语言包目录
- Meshtastic direct-message handling and send-status flow were unified around upstream PKI-style behavior, while outdated settings-side PKI toggle/plumbing was removed and Chat/Contacts compose handling now stays on one path / Meshtastic 私聊与发送状态流程现已围绕上游 PKI 语义统一收敛,移除过时的设置页 PKI toggle/plumbing,并让 Chat/Contacts 共用同一条 compose 发送路径
Fixed / 修复
- Fixed false
No responsesend results after valid Meshtastic acknowledgements or response packets had already arrived, so UI send state now follows the actual protocol outcome more closely / 修复在 Meshtastic 已收到有效 ACK 或响应包后界面仍错误显示No response的问题,使发送状态与真实协议结果更一致 - Fixed blind spots in Meshtastic diagnostics by logging decode, key verification, routing, and drop reasons more explicitly, making packet handling failures and dedup behavior easier to trace / 修复 Meshtastic 诊断日志盲区,现会更明确地记录 decode、key verification、routing 与 drop 原因,使包处理失败和 dedup 行为更易追踪
- Fixed Extensions/package-download reliability under tight internal-RAM conditions by steering large TLS allocations toward PSRAM and tightening Wi-Fi/runtime state reporting in the UI / 修复内存紧张条件下 Extensions/语言包下载的稳定性问题,通过将较大的 TLS 分配导向 PSRAM 并收紧 UI 中的 Wi-Fi/运行时状态显示,提高下载可靠性
What's Changed
- Tdeck by @vicliu624 in https://github.com/vicliu624/trail-mate/pull/24
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.18-alpha...v0.1.19-alpha
v0.1.18-alpha # Pre-release 3 months ago · 2026-04-20 08:07 UTC
[0.1.18-alpha] - 2026-04-20
Added / 新增
- A shared bottom air-status footer for Chat and Contacts, showing the active protocol, frequency, bandwidth, spreading factor, and coding rate without overloading the page header / 新增 Chat 与 Contacts 共用的底部空口状态栏,在不挤占页头的前提下显示当前协议、频率、带宽、扩频因子与编码率
- A System > Factory Reset action that clears persisted app/settings namespaces and local team state before rebooting the device / 新增 System > Factory Reset 恢复出厂设置动作,可在重启前清空持久化的应用/设置命名空间与本地团队状态
- Shared ESP settings-store diagnostics and storage-key alias handling, so persisted reads and writes are now traceable through one platform-level path on both Arduino and ESP-IDF / 新增共享 ESP settings-store 诊断日志与存储键别名处理,使 Arduino 与 ESP-IDF 两条线上的持久化读写都能通过同一平台层路径追踪
Changed / 变更
- ESP configuration persistence is now unified more cleanly around the shared settings-store and AppConfig flow, replacing scattered direct Preferences access for UI/system values such as language, BLE, timezone, and screen timeout / ESP 配置持久化现已更彻底地收口到共享 settings-store 与 AppConfig 流程,替代语言、BLE、时区、熄屏超时等 UI/System 值上分散的直接 Preferences 访问
- Menu and page terminology were tightened to shorter labels such as PC Link and USB Disk, while Contacts now keeps its top bar focused on the page title and moves air-interface details to the new footer / 菜单与页面命名进一步收敛为更短的 PC Link、USB Disk 等标签,同时 Contacts 页将页头收敛为页面标题,并把空口细节移到底部新状态栏
- Shared UI boot paths now reload the persisted display language before shell/menu construction, keeping startup presentation aligned with the saved language choice / 共享 UI 启动路径现会在构建 shell/menu 之前重新载入已保存的显示语言,使启动后的界面呈现与保存的语言选择保持一致
Fixed / 修复
- Fixed display-language persistence on ESP so the saved language now survives reboot and is applied correctly during startup instead of falling back to English / 修复 ESP 上显示语言重启后失效的问题,保存的语言现可在启动阶段正确恢复,而不会再回退到英文
- Fixed multiple Chinese-rendering issues across Settings, Chat, Sky Plot, and the top bar by replacing ambiguous full-width punctuation where needed, applying localized fonts more carefully, and forcing ASCII rendering for battery/status chrome text / 修复 Settings、Chat、Sky Plot 与顶部状态栏中的多处中文显示问题:在需要处改用 ASCII 标点、更谨慎地应用本地化字体,并对电池/状态栏文字强制使用 ASCII 渲染
- Fixed stale configuration fallbacks and dead state around legacy settings migration, region-reset cleanup, and needs_restart, reducing mismatch risk between runtime state, reset actions, and persisted storage / 修复旧配置迁移、region reset 清理与 needs_restart 周围遗留的兜底/死状态代码,降低运行时状态、恢复动作与持久化存储之间的不一致风险
Full Changelog: https://github.com/vicliu624/trail-mate/compare/v0.1.17-alpha...v0.1.18-alpha