Commit Graph
5372 Commits
Author SHA1 Message Date
mikecarper b2900dfabc Record physical browser OTA qualification and remaining console limits 2026-10-05 12:25:30 -07:00
mikecarper 54d204b418 Keep OTA headers aligned with the checked-out vendored source 2026-10-05 11:56:00 -07:00
mikecarper 47f4581056 Complete browser OTA responses before reboot and allow HTTP restarts 2026-10-05 11:52:24 -07:00
mikecarper 8e449136ca Restore ordinary WiFi protocols for browser OTA hotspots 2026-10-05 11:23:01 -07:00
mikecarper 46fc8e5211 Require physical web console and browser OTA release checks 2026-10-05 11:19:14 -07:00
mikecarper 865f7dd669 Keep automatic ESP-NOW retries paused during browser OTA 2026-10-05 11:06:30 -07:00
mikecarper 189e580767 Restore configured ESP-NOW bridge after browser OTA stops 2026-10-05 10:47:37 -07:00
mikecarper f349d1d416 Preserve healthy OTA access points and drain stopping uploaders safely 2026-10-05 10:44:50 -07:00
mikecarper 3333095718 Merge branch 'keymindCascade' into fix/web-console-1.17.1.9 2026-10-05 10:40:13 -07:00
mikecarper 47135e081c Make ESP32 OTA startup handle WiFi and WebConfig automatically
Report the upload address and required network, honor AP switches on an existing uploader, and keep delayed WebConfig cleanup from disabling OTA WiFi. Preserve actionable startup errors and account for OTA in wireless state controls.

Exercise the production OTA lifecycle and stock website console, including power-saving idle sessions, in host regression tests.
2026-10-05 10:31:43 -07:00
mikecarper 51723c053d Add WiFi OTA lifecycle regression coverage 2026-10-05 09:47:11 -07:00
mikecarper 22e1e405f4 Qualify ESP-NOW RAM and Wio Mini release capacity 2026-10-05 07:18:22 -07:00
mikecarper ef98be919a Preserve download-only Mesh America hardware cards 2026-10-05 05:34:08 -07:00
mikecarper e2543c012a Support pinned Arduino 3 filesystem buffer checks 2026-10-05 05:33:09 -07:00
mikecarper f6c911da23 Preserve flood policies across qualified RAM capacity changes 2026-10-05 03:33:44 -07:00
mikecarper 0a9a3e93c7 Avoid Companion request tag collisions after login 2026-10-05 01:47:05 -07:00
mikecarper 01c5cc2836 Qualify 1.17.1.9 memory limits and exact release asset routing 2026-10-05 01:14:02 -07:00
mikecarper 3ed1c5a26e Migrate ESP32 native USB roles to bounded hardware CDC
Switch eight S3 board defaults and 78 remaining TinyUSB recipes to hardware Serial/JTAG while preserving UART and other platforms. Restore retained S3 PHY ownership after a TinyUSB OTA restart and prepare KISS queues before enabling the driver.

Add real recipe resolution, Companion/KISS transport sanitizer coverage, and RF lifecycle reset regressions to CI. Native tests pass 1765/1765; SDK, transport, recipe and USB watchdog checks pass. Board and role cross-compilation and physical OTA qualification continue.
2026-10-04 23:36:54 -07:00
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