56 Commits
Author SHA1 Message Date
liu weikai c1b00d0d69 Harden mesh protocol memory ownership 2026-07-02 22:50:59 +08:00
liu weikai 80ede31f48 Harden Meshtastic bridge memory ownership 2026-07-02 19:03:44 +08:00
liu weikai 81a1f8b693 fix(p4): wire runtime data services 2026-07-01 12:28:30 +08:00
liu weikai e8b7b95c80 Fix nRF BLE owner apply policy 2026-06-29 00:53:09 +08:00
liu weikai 3c6b05cb65 fix(ble): decode mqtt map report identities 2026-06-28 14:16:39 +08:00
liu weikai 666c12d6a1 fix(meshcore): align LR1121 pager discovery 2026-06-27 23:04:08 +08:00
liu weikai 8c41ff6288 Add nRF preserve-settings cache clear action 2026-06-27 22:16:44 +08:00
liu weikai 1198217ece Tighten nRF52 persistence cleanup 2026-06-27 19:53:17 +08:00
liu weikai 7dcb90032d Implement MeshCore V2 multibyte paths 2026-06-20 16:56:53 +08:00
liu weikai b2e6c56c63 fix(chat): enforce protocol send eligibility 2026-06-15 21:25:56 +08:00
liu weikai f989ad4255 Fix chat resend to reuse failed messages 2026-06-14 21:52:47 +08:00
liu weikai f9cca04adb Avoid persisting volatile node updates 2026-06-14 20:41:00 +08:00
liu weikai 72690272b5 fix(protocol): respond to empty traceroute requests 2026-06-14 17:44:15 +08:00
liu weikai bd1b92b31e refactor(protocol): route uconsole waypoint sharing through runtime 2026-06-14 08:25:35 +08:00
liu weikai f0d37d7d68 refactor(protocol): share meshcore direct secret core 2026-06-14 05:13:27 +08:00
liu weikai dc02926848 refactor(protocol): share meshtastic position availability 2026-06-14 04:37:33 +08:00
liu weikai c832093fc8 refactor(protocol): share meshtastic position payload core 2026-06-14 03:59:57 +08:00
liu weikai 7faee24728 refactor(protocol): share meshtastic nodeinfo builder 2026-06-14 03:44:47 +08:00
liu weikai af1b3194d3 refactor(protocol): introduce shared protocol runtime 2026-06-14 02:45:00 +08:00
liu weikai fc10b53a56 Burn down chat delivery legacy bridge 2026-06-12 14:03:47 +08:00
Trail Mate Dev 71c443910e feat(cardputerzero): adapt Cardputer Zero 2026-06-08 22:59:07 +08:00
Trail Mate Dev 13852e693b fix(meshcore): restore discovery and send diagnostics (#49 #50 #51)
Preserve protocol-specific send/discovery failures through the router and ChatService, restore MeshCore group fallback key handling, classify signed adverts/discovery responses on ESP/nRF52, and enable target logs plus smoke coverage so the next failure has actionable detail.
2026-06-02 04:47:37 +08:00
Trail Mate Dev 7e40b55923 Refactor team runtime 2026-05-30 15:01:59 +08:00
vicliuandGitHub bf7068b02b 0.1.26-alpha release
* refactor: render chat rows from presentation state

* Fix Meshtastic channel sync and add MeshCore CN preset

* Add granular chat notification settings

* Add SD settings backup and restore

* Prepare 0.1.26-alpha release

---------

Co-authored-by: vicliu624 <vicliu@outlook.com>
2026-05-19 16:04:42 +08:00
vicliuandGitHub adf33068d7 v0.1.25-alpha (#30)
* Add uConsole GTK shell with SQLite map cache

* Improve uConsole GTK overview dashboard

* Detect uConsole hardware endpoints

* Add uConsole hardware binding and map fallback

* Improve uConsole settings and map UI

* feat: adapt uConsole Linux shell

* docs: document GPS settings and T-Deck UART noise

* style: apply clang-format

* site: update 0.1.25 release highlights

---------

Co-authored-by: vicliu624 <vicliu@outlook.com>
2026-05-12 01:24:04 +08:00
vicliuandGitHub 71f10ae6d0 Feature/cardputer zero (#27)
* fix(tdeck): improve display startup and brightness handling

* fix(energy-sweep): use instant RSSI and only lock LoRa while scanning

* feat(cardputer-zero): add linux shells and M5 SDK baseline

* feat(cardputer-zero): add linux runtime baseline and shell ui simulator

* feat(cardputer-zero): unify linux shell boot and polish simulator

* docs(cardputer-zero): define final-shape adaptation spec

* feat(cardputer-zero): integrate shared linux runtimes and pages

* fix(linux-sim): mount repo root in dev container

* Fix GPS runtime semantics and transport init

Add a GPS specification and align platform runtimes around explicit GPS enable, power, receiver configuration, and external NMEA export semantics.

Keep internal NMEA parsing independent from external export settings, stop treating gps_mode as an enable flag, and update phone/UI config paths to use gps_enabled.

Decouple board-level GPS transport readiness from UBX receiver probing on T-Deck, T-Deck Pro, and T-LoRa Pager, and let boards own UART teardown.

Verified with pio run -e tdeck, pio run -e tlora_pager_sx1262, pio run -e gat562_mesh_evb_pro, and pio run -e tdeck_pro_a7682e.

* Add Russian localization pack

Add an installable European Cyrillic Extended locale bundle with Russian translations, Cyrillic font metadata, and package catalog entry.

Credit polarikus for the Russian translations based on the polarikus/trail-mate localization PR.

* Prepare 0.1.23-alpha release

* Fix T-Watch Morse release build

* Format CI-checked sources

* Fix Cardputer Linux CI dependencies

* Fix WSL validation smoke target build

* Prepare 0.1.24-alpha release

* fix: unblock Cardputer Zero Linux CI
2026-05-09 14:03:49 +08:00
liu weikai c4e300a57f feat(ui): converge shared map viewport and localization contracts 2026-04-22 22:10:45 +08:00
liu weikai a022d4af8b Tighten node persistence storage flow 2026-04-21 22:24:58 +08:00
vicliuandGitHub b2229138ed Tdeck (#24)
* fix(tracker): apply localized labels on tracker page

* feat: add runtime locale packs and font fallback

* release: prepare 0.1.19-alpha
2026-04-21 03:19:05 +08:00
liu weikai 11477efe02 Expand LXMF transport for app data and propagation
- add shared LXMF wire codecs for app-data payloads, link requests/responses, resource advertisements, and propagation batches
- implement ESP LXMF app-data send/receive, active link sessions, resource chunking, propagation announces, and verified envelope delivery
- propagate want_response through team and hostlink flows, track team members for unicast fan-out when broadcast app-data is unavailable, and publish node position updates from team position events
- advertise broadcast app-data support on MeshCore/Meshtastic adapters and replace fixed-size Reticulum token buffers with dynamic storage
2026-04-17 13:15:04 +08:00
liu weikai d636eb6398 WIP: rescue misbranched LXMF and RNode work 2026-04-17 10:03:08 +08:00
liu weikai 766c640dc8 Apply CI formatting fixes 2026-04-14 21:30:44 +08:00
liu weikai 32b3dd630c Fix GAT562 protocol switching and MeshCore BLE settings 2026-04-14 21:18:02 +08:00
liu weikai f9eb0714d7 Format files to match CI style 2026-04-13 16:26:12 +08:00
liu weikai 3201f6a394 Fix Meshtastic nodeinfo persistence 2026-04-13 13:14:28 +08:00
liu weikai 5a61bab5d0 Harden Meshtastic BLE receive path 2026-04-13 12:57:19 +08:00
liu weikai 210dcfd592 fix sync node info 2026-04-12 19:50:40 +08:00
liu weikai 5a4fed59e1 fix reset time 2026-04-12 18:06:27 +08:00
liu weikai 768f71a49e Revert Meshtastic BLE hardening changes
Revert b9e20b2662 because it causes app-side configuration reads to hang on GAT562.

This restores the previous Meshtastic BLE timing/notification behavior and also drops the cross-target compatibility adjustments that came with that commit.
2026-04-12 15:23:48 +08:00
liu weikai b9e20b2662 Harden Meshtastic BLE flow and cross-target builds
Adjust the Meshtastic BLE transport timing on nRF52, retain pending FROMNUM notifications, and defer local admin/self replies to reduce request/response races during Android settings flows.

Also make the shared chat/UI code compile across non-nRF targets by gating RTOS and Arduino-only helpers and by updating the team page layout to the current page profile fields.

Note: this does not resolve the gat562 Meshtastic Android settings progress bar issue yet; the BLE/admin response path is improved and instrumented, but the root cause of the stuck loading state remains unresolved.
2026-04-12 14:04:18 +08:00
liu weikai 7bc9c18cc3 fix: gat562 settings 2026-04-11 15:24:50 +08:00
liu weikai 379fce15c1 Refactor GAT562 runtime and stabilize Meshtastic BLE
Refactor the GAT562 board runtime by extracting dedicated GPS and input runtime components and routing config application through a focused runtime apply service.

Narrow the nRF52 BLE manager dependencies, rework the Meshtastic BLE transport to better match the Android client handshake, and harden the FromRadio/FromNum flow with improved staging, read pacing, diagnostics, and stack-safe config snapshot generation.

Also repair repository text encoding issues in docs and UI comments, and add Meshtastic BLE timing documentation to capture the expected Android/firmware interaction model for future debugging.
2026-04-10 10:03:22 +08:00
liu weikai e0076d707b Align Meshtastic phone sync and chat UI refresh 2026-03-27 22:32:51 +08:00
liu weikai df76526b5d perf: reduce chat list and message handling latency 2026-03-27 17:35:47 +08:00
liu weikai 988827a3bc chore: checkpoint current chat and contacts changes 2026-03-27 17:22:27 +08:00
liu weikai 86e07c0d7f Add APRS asset, expand System controls, and harden GAT562 self-position persistence
Bundle the current workspace changes into a single checkpoint covering the in-progress shared UI, settings, and GAT562 runtime work.

What this includes:

- add the APRS asset source and image resource currently used by the shared UI asset set

- extend the shared System/settings flow so vibration and screen brightness can be surfaced through the device runtime and settings UI plumbing

- update the mono 128x64 runtime and the GAT562 platform bindings so the new settings controls are available in the GAT562 experience

- wire the ESP runtime/startup helpers needed to support the same device-runtime settings path on the ESP side

- persist the GAT562 self GPS position into the node store during core service updates so a device that already obtained a fix can retain its own last known position across reboot

- add an explicit node-store flush interface and implement it in both the nRF52 and ESP Meshtastic node-store backends so critical self-position updates can be forced to persistent storage immediately instead of waiting for the normal debounce window

- keep the existing debounced persistence behavior for ordinary node-store churn while allowing targeted immediate flushes for data that would otherwise be easy to lose during restart or power loss
2026-03-26 21:30:54 +08:00
liu weikai 317a49fd69 Persist node positions across restarts 2026-03-24 14:17:56 +08:00
liu weikai 7a804b6453 Include node position in Meshtastic phone info 2026-03-24 09:20:48 +08:00
liu weikai b0dd2f8707 Fix deferred config persistence on gat562 BLE 2026-03-24 00:26:56 +08:00
liu weikai 15e31a73c5 Refine mono UI node and chat interactions 2026-03-24 00:02:20 +08:00