Commit Graph
542 Commits
Author SHA1 Message Date
mikecarper a3ad4e331d Treat public identity as a read-only CLI preference 2026-10-03 19:52:37 -07:00
mikecarper 38121b8730 Update USB startup fixture for retained mOTA responses 2026-10-03 19:45:06 -07:00
mikecarper 5317097cb7 Update CLI identity regression for captured reply routing 2026-10-03 19:39:58 -07:00
mikecarper f94313e9d7 Protect build cleanup from unsafe output paths 2026-10-03 19:31:10 -07:00
mikecarper 22360f4392 Share lossless voice prefixes across companion announcements 2026-10-03 19:11:15 -07:00
mikecarper df5d009d3c Preserve USB mOTA ownership across deadlines and logging handoffs 2026-10-03 19:01:22 -07:00
mikecarper 46eb98e54b Reject oversized USB frames and bound serial receive work 2026-10-03 18:55:23 -07:00
mikecarper 0cf1fcead9 Preserve telemetry preferences and routes across storage failures 2026-10-03 18:34:12 -07:00
mikecarper 645c8a1119 Reduce radio preamble validation overhead with equivalent math 2026-10-03 18:31:46 -07:00
mikecarper a619c78553 Validate management CLI captures and authenticated ACL snapshots 2026-10-03 18:29:12 -07:00
mikecarper df2145472b Fix management browser authentication and stale decode results 2026-10-03 18:27:49 -07:00
mikecarper 30b18beecd Harden management report persistence and CLI input handling 2026-10-03 18:26:26 -07:00
mikecarper ec0ebeb981 Fix radio profile reconfiguration transaction results 2026-10-03 18:25:22 -07:00
mikecarper 2a3b7e3d3e Keep USB watchdog snapshots coherent and fail-safe 2026-10-03 18:22:32 -07:00
mikecarper d3a0637cda Finalize USB watchdog management format as MGR2 2026-10-03 16:34:37 -07:00
mikecarper 24fcbf3247 Merge USB session safety and preserve GPS preference compatibility 2026-10-03 16:12:32 -07:00
mikecarper 1ddca12a41 Add saved repeater trace exception while repeating is disabled 2026-10-03 15:48:44 -07:00
mikecarper d454250cab Fix USB logging session safety and add hourly GPS sync interval 2026-10-03 15:43:35 -07:00
mikecarper 4bec31b4e1 Merge origin/keymindCascade USB reconnect fixes 2026-10-03 15:37:49 -07:00
mikecarper 6febd15ded Harden USB logging and persist watchdog events in management reports 2026-10-03 15:29:19 -07:00
mikecarper 91d533bfff Fix USB logging ownership, persistence, and reconnect safety 2026-10-03 14:45:57 -07:00
mikecarper c1a533572a Improve firmware tooling docs and OTA seeder startup checks 2026-10-03 03:12:24 -07:00
mikecarper 4ca66c2ebb Persist Companion Bluetooth on-off preference across reboots 2026-10-03 03:09:20 -07:00
mikecarper 8519638367 Add Zira spoken button confirmations and opt-in G726 speech tests 2026-10-03 03:03:02 -07:00
mikecarper 5833ac2f1f Add compressed self-serve OTA and resilient native USB sleep
Use a bounded uzlib-derived block encoder with the existing strict tinf decoder, qualify infrastructure roles, budget temporary RAM, and cache running-image metadata. Add self-serve CLI and policy, USB host-loss sleep grace, hardware test harnesses, regression tests, and CI coverage.
2026-10-03 01:14:23 -07:00
mikecarper 29de7820e5 Integrate upstream fixes and paired nRF52 sensor OTA release profiles 2026-10-02 17:52:12 -07:00
mikecarper 8a69e73226 Reduce nRF52 infrastructure flash usage without trimming sensors
Keep Companion and Terminal Chat profiles unchanged; retain full-sensor and reduced-sensor OTA builds. Add compact crypto and OTA names, qualified display asset compression, font license packaging, and scope regression tests.
2026-10-02 15:52:23 -07:00
mikecarper 1c61c070d4 Update button and reader fixtures for pairing wake API 2026-10-02 13:09:11 -07:00
mikecarper 202930de8f Fix Companion pairing PIN display and truthful identity startup 2026-10-02 12:42:26 -07:00
mikecarper a2854f8f43 Support 2+ path-hash width filters 2026-10-02 10:21:17 -07:00
mikecarper 52c163ad6f Add encoded path-hash width selectors to forwarding rules 2026-10-02 10:07:48 -07:00
mikecarper 8505361ebe Restore Companion boot display and default WiFi to opt-in 2026-10-01 23:19:48 -07:00
mikecarper a825307e4c Fix nRF52 Bluetooth DFU stack handoff 2026-10-01 16:15:59 -07:00
mikecarper 759c97477c Point logging sleep contract at archived release notes 2026-10-01 12:01:25 -07:00
mikecarper a688bce96d Check measured Full capacities without dropping Companion transports 2026-10-01 08:11:10 -07:00
mikecarper 5353a237a0 Verify picker disclosure of Indicator render memory tradeoffs 2026-10-01 07:54:34 -07:00
mikecarper 633e2ce832 Add opt-in nRF52 Bluetooth event diagnostics and USB capture 2026-10-01 02:19:45 -07:00
mikecarper 9fae922ea9 Run nRF52 BLE subscription and SoftDevice LTO regressions in CI 2026-10-01 01:01:11 -07:00
mikecarper a834882836 Keep Companion get radio compatible with upstream CSV 2026-09-30 23:48:47 -07:00
mikecarper 70e8c98567 Merge remote-tracking branch 'origin/keymindCascade' into keymindCascade 2026-09-30 23:38:05 -07:00
mikecarper fa9f7dd538 Add legacy RAK3401 OTA route and relay reboot recovery 2026-09-30 23:30:08 -07:00
mikecarper bb58b40d9c Persist Full Companion BLE subscriptions across reboot 2026-09-30 23:20:14 -07:00
mikecarper 72982fa55f Preserve SoftDevice memory side effects under nRF52 LTO 2026-09-30 23:01:37 -07:00
mikecarper b47e4c137e Fix official app WiFi commands and Full build qualification 2026-09-30 20:27:05 -07:00
mikecarper 0feffaa3ab Fix WebConfig bootstrap for legacy Android Chrome
Physical LG Android 5.1.1 testing found Chrome 43 could decode gzip but failed on the bootstrap's arrow syntax. Use ES5 functions and Promises while preserving retries, version refresh, and optional abort handling. Keep Google Zopfli gzip compression at 1,000 iterations.

Verified the flashed V4.3 through its WiFi link using the real Android browser: bootstrap and main page gzip responses completed, settings loaded at 910.525 MHz, and no JavaScript or transfer errors were reported. Add a loader syntax regression and document legacy browser support.
2026-09-30 19:20:12 -07:00
mikecarper 02b8935794 Merge PR #13 with gzip-only WebConfig assets
Keep the graceful final-ACK TCP close and optional FEM control guards from
pixitha's browser compatibility fixes. Replace Brotli negotiation and duplicate
page assets with one gzip representation compressed by Google Zopfli 0.4.3
using 1,000 iterations. Compress the bootstrap, captive success, compact OTA,
and static WiFi setup pages with the same validated build cache.

Honor gzip quality values and wildcard precedence. Validate compressed OTA
page evidence in the firmware capability gate, and add native and Python
regressions plus CI coverage. Remove the unused Brotli build dependency.

Validation: 54 native tests, 56 Python/browser checks, full V4.3 build and
verified application flash. Actual V4 WiFi responses matched the generated
gzip assets; 30 repeat downloads completed without reboot. Chromium loaded
the setup and settings pages without script or transfer errors. Physical
Android testing is pending because the Pi detects no phone over USB or mDNS.
2026-09-30 18:55:17 -07:00
mikecarper a19dcb3ded Merge IoTThinks PowerSaving-v17 into keymindCascade
Integrate PowerSaving-v17 through a27e78e4 (six new commits).
Use its 10-minute awake / 30-minute asleep companion GPS profile and
separate requested GPS state from receiver power in CLI diagnostics.
Include its nRF52 sensor debug-console settle delay and debug option.

Resolve overlapping GPS v2 changes using the current sensor callbacks,
which already implement live power-saving transitions, user-off control,
telemetry acquisition, wrap-safe sleep/wake timers and retained Airoha
RTC backup. Preserve preference persistence, telemetry cache/holds and
UART/shared-rail ownership safeguards across all four GPS drivers.

Add a compiled production GPS status regression test and run it in CI.
Validated 23 native GPS/power tests, preference and nRF52 pin contracts,
and firmware builds for T1000-E BLE Companion, MeshTracker X1 USB
Companion, Heltec Tracker Repeater, Mesh Solar Room and RAK4631 Sensor.
2026-09-30 15:51:07 -07:00
mikecarper 61c4767c50 Fix relayed OTA retries and add guarded legacy recovery
Use a bounded timed OTA forwarding cache while preserving echo, queue, TempRadio and forwarding-policy guards. Add opt-in manifest recovery for directly reachable legacy relays and interactive 125 kHz SF5/SF6/SF7 rehearsals, with regression tests and documentation.
2026-09-30 10:54:09 -07:00
mikecarper 65df2029df Preserve notification preview opening notes through audio startup 2026-09-30 08:56:12 -07:00
mikecarper 53f1ba9329 Fix notification preview audio playback and startup timing 2026-09-30 07:49:28 -07:00