Commit Graph
36 Commits
Author SHA1 Message Date
liu weikai 3ca345b6fa Keep Team rosters synchronized through shared background presence 2026-11-11 16:04:37 +08:00
liu weikai 1d001f0f7a Enable native Linux Team pairing and reliable RF application data 2026-11-11 11:04:14 +08:00
liu weikai ec1a354e5d feat(linux): add optional full CJK and color emoji font package 2026-11-10 12:45:16 +08:00
liu weikai aba8c142c8 fix(ui): complete Zero keyboard navigation and safe page shutdown 2026-11-09 04:23:46 +08:00
liu weikai 196a295b34 fix(ui): compact route controls and classify walkie readiness 2026-11-08 22:38:35 +08:00
liu weikai b5b0a2597b feat: prepare 1.1.0 Linux device release and mesh reliability fixes 2026-11-08 20:59:12 +08:00
liu weikai 8bc50ffc22 fix: repair MC and MT node discovery and peer key propagation
Schedule Linux self announcements and retain full MeshCore discover keys.
Align adapter and worker PKI readiness, converge node metadata with public-key
identities, and preserve projected node IDs across persistence and restart.

Avoid routing-prefix self collisions and use local receive time for Nearby
freshness on embedded MC paths. Start MT NodeInfo reply suppression only after
successful transmission.

Add paired-radio discovery/direct-message, directory migration and worker
regressions with English audit and validation notes.
2026-11-08 13:53:15 +08:00
Trail Mate Dev 4732374d04 feat: add receiver views and contextual OFDM help 2026-11-03 11:03:51 +08:00
Trail Mate Dev 5fe456ac52 feat: connect OFDM subcarrier learning views to coherent symbols
Add full-carrier resource grids, selected raw/equalized/channel/reference phasors, exact phase linkage, orthogonality/CFO/CP models and capacity explanations. Preserve source and generation identity, compact CM0 geometry and receiver defaults. Use bounded float32 carrier chunks to retain reception throughput; cover native, synthetic, replay and ARM UI flows.
2026-11-03 02:25:46 +08:00
Trail Mate Dev 074273c4cb feat: add native OFDM learning workbench
Expose signal-chain controls, mathematical previews, actual phase forecasts and residuals, channel and FEC diagnostics, IQ recording/replay, and synthetic OFDM experiments. Preserve qualified CM0 defaults and compact FFT/NEON decoding, batch diagnostics for real-time reception, and package verified backend sources.
2026-11-02 21:43:49 +08:00
Trail Mate Dev ef88a4ca63 fix: keep capture GPIO handles inside locked transport storage
Replace Linux HAL's separately allocated map nodes with bounded owned
storage while preserving its count/find/index/iteration/clear interface.
BUSY polling now reads handles retained by the transport object's memory
lock instead of depending on the capture worker's allocator arena.

Revert broad anonymous-map admission, which exceeded the device's existing
48-MiB admission budget. Keep main-heap/runtime/stack admission bounded.
Verify an owner allocated on the main thread and initialized on a worker
has locked handle storage, plus lookup, replacement, capacity and reuse.

Validation: focused capture-memory/handle regression passed; clang-format
14 and staged diff checks passed. GitNexus reports Linux HAL class impact
as medium (six direct dependencies); its broad pinMode graph is critical,
so that function implementation and its callers remain unchanged.
2026-11-02 09:53:11 +08:00
Trail Mate Dev f64509de02 fix: include worker allocator arenas in capture memory admission
GPIO initialization occurs on the capture worker, whose allocator arena is
a private anonymous mapping rather than the main process heap. Include
readable private writable anonymous mappings in the existing bounded
admission, while retaining the current-stack window and 48-MiB ceiling.

Run the map-node residency regression inside a real worker thread. This
fails even with main-heap locking and passes with anonymous arena locking.

Validation: worker-thread capture memory regression passed; clang-format14
and staged diff checks passed. GitNexus change analysis was run but this
inline class is absent from the index; direct source diff remains limited
to capture memory admission and its regression.
2026-11-02 09:46:31 +08:00
Trail Mate Dev 883e312a55 fix: lock heap-backed GPIO state before 1seg DMA capture
Include the process heap in the bounded capture memory admission. Locking
the radio object alone does not retain separately allocated GPIO map nodes
that are read during BUSY polling. A failing transfer recorded a minor
page fault during a 1099-us BUSY wait.

Add a regression that checks a real std::map node's locked VMA flags. It
fails with the old admission and passes with heap admission. Preserve the
48-MiB cap and fail-closed behavior. Live RF endurance still needs validation.

Validation: 31 1seg tests passed; ARM application/helper build succeeded;
clang-format 14 and git diff checks passed. GitNexus impact/change analysis
was attempted; the inline memory class is not indexed, so its graph result
does not cover this change. Direct source review limits the diff to memory
admission and its regression.
2026-11-02 09:43:22 +08:00
Trail Mate Dev ff556e38c0 feat: add 1seg reception tuning and FIFO timing visualization
Expose sample rate, SPI clock and receiver gain in the TV page, persist the
selection, and restart capture and decoding with matching per-generation
parameters. Use 450 kpair/s, 8.7 MHz and gain 9 as the current test baseline.

Present ideal FIFO fill/drain curves beside measured reception counters,
separate preview settings from active settings, and keep the fixed 320x240
video beside programme information. Document that capture timing failures
remain unresolved and that SPI bulk transfers already use DMA.

Validation: 31 1seg tests; actual LVGL page regression with offline IQ and
synthetic metadata, parameter application and reopening persistence; ARM
application/helper compilation; clang-format 14; UI boundary, root artifact
and ESP stack hygiene guards; staged GitNexus change analysis.
2026-11-02 03:34:42 +08:00
Trail Mate Dev b10cbf316b fix: stabilize CM0 1seg reception and repair CI regressions
Keep IQ capture isolated from decoder startup and rendering, bound transport
backpressure, validate DMA batches before publication, and expose playback
telemetry. Preserve radio restoration and add capture, transport, media and
SDL regression coverage. Document user-accepted CM0 and Sony reception and
the limits of the one-shot kernel experiment.

Repair stale preview TileContext initialization, missing simulator link
sources and Cardputer SDL dependencies. Align menu and radio-log contracts
with current implementations, keep AutoInterface port admission covered,
refresh source inventories, and apply the CI clang-format 14 rules.

Validation: 45 Agenda tests, 30 1seg tests, 8 LR2021 IQ tests, 17 native config
interop tests, ESP stack hygiene, platform/root guards, source inventories,
clang-format 14, git diff --check, and staged GitNexus detect_changes.
2026-11-01 09:39:20 +08:00
liu weikai 05d75d6617 feat: integrate LR2021 FM and CM0 1seg TV with radio UI fixes 2026-10-31 21:24:34 +08:00
Trail Mate Dev 6e613e382e Add CM0 Linux support and share device services across platforms
Compose the CM0 fullscreen application and standard Debian package, align the
Cardputer Zero shell, and share protocol, configuration, audio and storage
services with embedded targets through existing platform seams.

Add the paginated on-device TMAP creator using Center's published producer,
private workspace recovery and direct keyboard shortcuts. Preserve unfinished
management work behind its existing opt-in capability.

Include native, ARM and shared-core regression fixtures, integration records,
packaging helpers and dependency/license updates. Keep local build trees,
device credentials, produced packages and validation logs outside version control.

Validation before integration: ESP stack hygiene, Reticulum scope guard, staged
whitespace checks and GitNexus scope audit. Prior device/build evidence and
remaining hardware/package boundaries are recorded in the acceptance documents.
2026-10-29 10:29:29 +08:00
liu weikai 8eeccc7b6b Prepare 0.1.48-alpha: optimize SD transports and repair map lifecycle 2026-09-20 18:00:31 +08:00
Trail Mate Dev 22e4561590 fix(ci): restore Linux and Cardputer release checks 2026-08-14 15:41:00 +08:00
Trail Mate Dev dceaf58e28 refactor(config): remove deprecated mutable config access 2026-07-29 13:58:48 +08:00
Trail Mate Dev ef529a2255 refactor: consolidate storage maintenance ownership 2026-07-28 19:26:40 +08:00
Trail Mate Dev bab0dcceb3 refactor app config persistence ownership 2026-07-26 18:08:15 +08:00
liu weikai 32432ededf fix(runtime): unify network and direct messaging lifecycles 2026-07-23 23:49:47 +08:00
liu weikai f2ff45283d Refactor Reticulum runtime ownership boundaries
Add Reticulum runtime budget, announce scheduling, deferred discovery, RX telemetry, and adapter scratch owners.

Route notification feedback through a platform notification runtime, keep product calls on Sideband LXST, and classify Reticulum network projections.

Unify LoRa TX budget handling across protocol actions, ACK retry, app sends, and MQTT downlink relay; document frozen runtime ownership rules and add smoke coverage.
2026-07-19 22:41:51 +08:00
liu weikai 9d2e5d1a2e Refactor Reticulum runtime and delivery state
Split LXMF runtime ownership into focused peer, path, link, propagation, and delivery helpers while keeping the adapter as the coordination layer.

Make chat delivery refs and send-result events protocol-aware across Reticulum, Meshtastic, and MeshCore, including Sent/Delivered/Failed semantics, UI badges, retry lookup, and store persistence.

Fix Meshtastic MQTT private replies to publish encrypted direct packets and cover the new delivery behavior with smoke tests.
2026-07-18 16:31:35 +08:00
liu weikai 14d277e2c4 feat(reticulum): complete Sideband client runtime 2026-07-16 23:17:50 +08:00
liu weikai 8ebc1b67ac Improve chat history and Wi-Fi runtime UX
Add paged chat conversation storage and presentation, preserve MQTT ingress labels, and improve conversation bubble alignment/contrast.

Introduce a unified TopBar power presenter with debounced battery status updates.

Expand Wi-Fi runtime profile handling, settings backup coverage, and Reticulum directory support.
2026-07-10 13:52:00 +08:00
liu weikai ed65a90a05 Add Reticulum product mode
Add Reticulum as a first-class product protocol with LXMF delivery over LoRa and Wi-Fi TCP gateway carriers, SD-backed groups, identity/settings UI, Team appdata support, and conformance guardrails.

Remove the user-facing PC Link surface and keep RNode/LXMF as internal Reticulum implementation details.
2026-07-07 22:55:06 +08:00
liu weikai 3c6b05cb65 fix(ble): decode mqtt map report identities 2026-06-28 14:16:39 +08:00
liu weikai d7b486eb17 Burn down map tile cache lifetime legacy 2026-06-12 02:15:52 +08:00
Trail Mate Dev 71c443910e feat(cardputerzero): adapt Cardputer Zero 2026-06-08 22:59:07 +08:00
Trail Mate Dev 99f37635ce feat(cardputerzero): record SX1262 pinout facts 2026-06-02 11:04:46 +08:00
Trail Mate Dev 7e40b55923 Refactor team runtime 2026-05-30 15:01:59 +08:00
vicliu 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
vicliu 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
vicliu 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