Commit Graph
5354 Commits
Author SHA1 Message Date
mikecarper 8a7fe7ff42 Keep hardware CDC packet log lines whole under congestion 2026-10-04 21:40:43 -07:00
mikecarper 1ec9234d3c Test hardware CDC capacity and stalled-host writes in CI 2026-10-04 21:22:51 -07:00
mikecarper 8bc3d2e476 Use bounded hardware CDC for the Full G2 repeater console 2026-10-04 21:11:18 -07:00
mikecarper fed810ff50 Cache verified nRF52 metadata for OTA status displays 2026-10-04 17:34:16 -07:00
mikecarper 0e25a1f15e Reduce ESP ACL save metadata opens while preserving verified recovery 2026-10-04 15:57:10 -07:00
mikecarper 3f1252af28 Update remote CLI identity fixture for ACL reply admission 2026-10-04 15:24:29 -07:00
mikecarper 3a016dd13b Fit padded ACL replies through the Companion frame envelope 2026-10-04 14:57:15 -07:00
mikecarper 1d96725e73 Test radio and Access Control against pinned official app code 2026-10-04 14:47:10 -07:00
mikecarper 6d0906ba7c Update USB lifecycle fixtures for stream mode and host deadlines 2026-10-04 14:39:38 -07:00
mikecarper aef967525a Include runtime USB endpoint selection in nRF52 fixture 2026-10-04 14:37:06 -07:00
mikecarper e3033b364e Keep Companion replies alive for the official app timeout window 2026-10-04 14:34:28 -07:00
mikecarper f515e19a7a Fit Access Control replies to encrypted packet route budgets 2026-10-04 14:24:03 -07:00
mikecarper eb80ebafbc Support stock serial MQTT bridges on Full Companion 2026-10-04 14:14:53 -07:00
mikecarper ea3fbcb277 Fix USB regression extraction across nested SDK guards
Inspect the complete exclusive TX kick and wrapper functions instead of stopping at the first nested endif. Retain the existing transport guards and verify the pinned SDK pending/kick hooks.

Validation: all 82 tests across the 19-script USB workflow step passed; independent review passed. Production firmware is unchanged.
2026-10-04 13:06:55 -07:00
mikecarper 265ed6ccc9 Fix watchdog test timing and run hardware regression fixtures in CI
Arm the test watchdog through initial loop service and assert both recovery boundaries. Update cooperative contact negative controls for the current background APIs and run the existing USB, contact persistence, and startup regressions in Actions.

Validation: 1762 native tests, 48 added-workflow fixture tests, and 18 related persistence/logging checks passed locally.
2026-10-04 12:53:37 -07:00
mikecarper a12f8605e5 Coalesce ESP background contact I/O and defer backup cleanup 2026-10-04 11:50:12 -07:00
mikecarper 450a639d05 Clarify ESP contact CRC stack fixture ABI scope 2026-10-04 10:43:46 -07:00
mikecarper 9a74cdfb3b Batch ESP background contact CRC checks without growing scratch storage 2026-10-04 09:27:54 -07:00
mikecarper f0da74c34b Service ESP received advert cache writes between loop passes 2026-10-04 08:20:28 -07:00
mikecarper 32ea186f9f Reduce ESP contact save backend work with bounded buffering 2026-10-04 08:20:28 -07:00
mikecarper e5dccbce9e Reject unhonored ESP filesystem buffer sizes before I/O 2026-10-04 08:20:16 -07:00
mikecarper 6955dad820 Preserve ESP native USB bytes across short FIFO writes
Backport the pinned Arduino 2.0.17 HWCDC suffix and interrupt handling into a build-local source copy. Preserve unsent bytes, serialize ISR and producer rearm, and include FIFO, suffix and active writers in transport cleanup proofs without changing the loop stack allocation.

Validate zero and short writes, producer races, quarantine and stale cleanup with sanitizer-backed native tests and negative controls. Keep other frameworks and USB modes on their existing drivers; update the watchdog file mock for the existing buffer API.
2026-10-04 06:49:31 -07:00
mikecarper 1f71840989 Stage ESP contact transaction startup between loop passes
Heltec V4 timing measured 2.19 seconds for recovery checks, temporary-file cleanup, open and buffer configuration combined in one lazy-save pass. Defer those startup operations across guarded companion loops while explicit durability callers still initialize synchronously.

Track ownership only after attempting to create the temporary file, preserve unowned stale files on early cancellation, and reject premature writes or commits. Cover startup faults, interruption, mutation, cache pressure and synchronous-construction negative controls with native sanitizer tests.
2026-10-04 05:27:09 -07:00
mikecarper 764eb496fb Bound ESP contact transaction file buffers between loop passes
Arduino defaults to 4 KiB stdio buffering, so small record writes and CRC
reads could still trigger large SPIFFS batches. Set the newly opened ESP
writer buffer to one 152-byte contact record and verifier buffer to 64
bytes before I/O. Fail closed if either setup fails; keep other platforms
unchanged.

Model backend buffering separately from logical File operations. Validate
mutation cancellation, durability, setup failures, and negative controls
which restore the hidden default writer or reader batching. Update API
seams in existing uncached, radio and telemetry fixtures.
2026-10-04 04:32:37 -07:00
mikecarper acfcfb6008 Keep ESP contact saves responsive on PSRAM boards
Extend the cooperative contact transaction to uncached ESP32 storage,
including the PSRAM policy used by the XIAO and V4. Preserve owned contact
copies, the 152-byte disk format, revision cancellation and synchronous
durability operations. Keep contact capacities unchanged.

Avoid SDK error logs when optional blob or transaction cleanup files are
absent, while preserving metadata and deletion failure handling.

Validate cached ESP/nRF and uncached PSRAM paths under ASan/UBSan,
including bounded writes, mutation cancellation, faults, recovery and
reboot readback. Update the existing uncached production fixture.
2026-10-04 04:01:40 -07:00
mikecarper 49a02f59d7 Service cached contact persistence between companion loop passes 2026-10-04 03:39:27 -07:00
mikecarper c62116f401 Share production USB input limits with the handoff fixture 2026-10-04 03:03:24 -07:00
mikecarper fbc1eae32e Retain oversized native USB commands until they can be rejected 2026-10-04 02:53:04 -07:00
mikecarper 8c164934bc Support reader commands through local Bluetooth and USB CLI 2026-10-04 02:16:04 -07:00
mikecarper dbcb400c74 Keep BLE contact sync from blocking other companion transports 2026-10-04 02:11:18 -07:00
mikecarper bd5b79c1cb Reduce notification settings stack usage without shared scratch storage 2026-10-04 02:07:26 -07:00
mikecarper 728b16c5d5 Start radio liveness watchdog when loop service begins 2026-10-04 02:05:32 -07:00
mikecarper d35145d59e Reduce SHA-512 stack usage with a rolling message schedule 2026-10-04 02:04:16 -07:00
mikecarper a1fa553ebe Fix hardware test serial controls and offline DM queue matching 2026-10-04 01:55:10 -07:00
mikecarper 43f7f75ac0 Fix nRF52 loop stack allocation under LTO 2026-10-04 01:54:01 -07:00
mikecarper 9a3774ad04 Merge observer OTA channel switching into keymindCascade 2026-10-04 00:26:46 -07:00
mikecarper eb37091c31 Merge latest PowerSaving-v17 BOOT button support 2026-10-03 23:56:38 -07:00
mikecarper 8b8a17d793 Document Companion Bluetooth pairing PIN CLI 2026-10-03 23:44:23 -07:00
mikecarper 2e84512ba4 Retain and isolate delayed Companion results under backpressure 2026-10-03 23:22:34 -07:00
mikecarper 94daaf7e40 Share bounded STM32 Companion preference wire metadata 2026-10-03 23:16:37 -07:00
mikecarper 51b7948887 Update preference snapshot CI contract for bounded value copies 2026-10-03 22:44:03 -07:00
mikecarper 68153718bf Bound STM32 Companion preference image writes 2026-10-03 22:41:45 -07:00
mikecarper 45e7c066ed Copy only persisted Companion preference values during loading 2026-10-03 22:16:31 -07:00
mikecarper facc066389 Separate GPS UART ownership and collapse shared Companion ports 2026-10-03 21:42:54 -07:00
mikecarper 2362ae2f02 Ignore inactive discovery tags without clearing other requests 2026-10-03 21:28:40 -07:00
mikecarper 2fa9a96cce Inspect received ACK route before clearing its header 2026-10-03 21:28:24 -07:00
mikecarper 6a90697868 Use bounded frame transmission for Companion hardware UART 2026-10-03 21:23:14 -07:00
mikecarper 64890dc83e Preserve ACK ownership across contact relocation and retirement 2026-10-03 21:10:49 -07:00
mikecarper 030f61f7a3 Align OTA profile prefix regression with frozen source identity 2026-10-03 20:51:14 -07:00
mikecarper c3009096b2 Bind resumed firmware packages to their effective build recipe 2026-10-03 20:48:49 -07:00