Commit Graph
206 Commits
Author SHA1 Message Date
mikecarper 4d446c2cd0 Target signed fleet commands by region and GPS radius 2026-10-09 01:32:12 -07:00
mikecarper 5979280156 Support signed fleet radio schedules and clock updates 2026-10-08 23:27:38 -07:00
mikecarper 39394a255a Add signed private fleet controls for filtering and secondary radio
Enroll a private channel and publisher public key on repeaters and room servers. Local Companion fleet sends sign targeted or whole-fleet commands, with expiry, durable replay protection, and a restricted command allowlist. Preserve exact transmitted-reply barriers for secondary-radio changes, bound validation and replies, and qualify crypto, persistence, transport scope, role permissions, and compact-profile exclusions with regression tests.
2026-10-08 16:45:19 -07:00
mikecarper d0cffc46eb Fix conditional C++ extraction in web console tests
Preserve mutually exclusive preprocessor branches when extracting production C++ for the browser and HWCDC fixtures. Ignore braces in comments, literals and macro definitions, reject mismatched branch joins, and cover the actual repeater command pump with regression tests. Firmware behavior is unchanged.

Validated 93 extractor, official web console, setup GUI and HWCDC checks plus downstream workflow and real PlatformIO metadata checks.
2026-10-08 15:10:51 -07:00
mikecarper 4b3e419eb0 Reduce shared RAM usage without lowering firmware capacities
Specialize repeater ACL session state, compact recent and flood records, stream Merkle proofs, and release cold OTA buffers safely. Preserve saved formats, stack sizes, table capacities, and OTA source limits. Account for lazy buffers when active and add compatibility, ARM alignment, allocation failure, and queued-response tests.

Validated six representative board/role builds, 1736 native test cases, sanitizer fixtures, and strict documentation. Document the preexisting Wio-E5 Mini flash overflow separately.
2026-10-08 14:41:16 -07:00
mikecarper 76ddc06e56 Add opt-in combined RAK4631 Ethernet test image
Keep Full sensors, UART2, adaptive OTA storage and the 8 KiB loop stack. Arbitrate shared SPI and OTA workspace ownership, move network waits into a worker, and use bounded queued TCP operations. Add reproducible test configs, RAM checks and regression coverage. Validated the Full build, UF2 layout and 29 sanitizer runtime scenarios.
2026-10-08 13:53:31 -07:00
mikecarper e3c7f5efa3 Publish 1.17.1.9 USA Cascade picker and Mesh America catalogs
Point both stable providers and runtime controls to the validated v1.17.1.9-halo-keymind-cascade-dev-88c85108 family. Record completed package validation while retaining hardware coverage limitations. Give all documentation source pages their exact hosted links and mount the telemetry form only in the browser. Verify current combined Full and nRF52 Full/Reduced catalog fixtures.
2026-10-07 13:56:17 -07:00
mikecarper 9444c949c5 Preserve enabled RX gain from compact 1.14.1 preferences 2026-10-07 05:22:54 -07:00
mikecarper df4cbb75eb fix(esp32): defer station maintenance while an AP owns WiFi
Starting or restarting MQTT during browser OTA could remove the active AP by forcing STA mode. Defer shared MQTT startup and recovery, and Companion WiFi startup, pending credential reloads and saved-SSID retries, until the live SDK AP releases the driver. Preserve the setup owner's deliberate credential handoff and cooperative stop acknowledgement.

Validated 91 source host tests, including 20 new AP ownership cases and nine reverted controls under ASan/UBSan. Hardware and firmware build qualification remain separate; the Arduino mode snapshot is not atomic.
2026-10-07 02:44:18 -07:00
mikecarper 8c7d7d8839 Keep ESP32 access points compatible with LR transports
Protect standard access points from the shared ESP-IDF LR flag, defer incompatible raw ESP-NOW starts, and select RAM storage before LR writes. Track successful LR owners so setup and OTA access points reject a conflicting running transport before changing WiFi.

Run actual production policies, transport lifecycle methods, and WebConfig teardown branches against a shared-LR SDK model with runtime negative controls; include the regression in unit CI.
2026-10-07 02:07:06 -07:00
mikecarper 526af2a82b Keep WiFi test recovery retrying until the original network returns 2026-10-06 21:11:38 -07:00
mikecarper dad32f099f Prepare Linux native Web Serial tests after pyserial 2026-10-06 20:20:31 -07:00
mikecarper d4b7217a4b Fix MQTT startup after ESP32 WebConfig provisioning 2026-10-06 19:28:10 -07:00
mikecarper e4c3ab1ca5 Run DNS restoration and diagnostics regressions in CI 2026-10-06 13:11:15 -07:00
mikecarper 8da6b8518d Test repeater hidden discovery and observer compatibility 2026-10-06 13:02:20 -07:00
mikecarper d0859f925d Fix ESP32 Full idle radio teardown and compact AP startup 2026-10-06 11:46:10 -07:00
mikecarper 613d9d7c43 Add persistent T-Beam charge voltage controls and report Mesh Solar limits 2026-10-06 10:56:32 -07:00
mikecarper 8b1e846b09 Cover WiFi scan fixes across every ESP32 recipe 2026-10-06 09:58:40 -07:00
mikecarper 58f5d7f794 Bound telemetry replies and preserve Sensor send retries 2026-10-06 09:56:00 -07:00
mikecarper 7babdbc518 Fix Room and Sensor requests and add G3 Sensor builds
Bound ACL replies for encrypted routes, authorize Sensor ACL access using the actual Admin role, and preserve request retries after failed queue admission. Validate stored paths for replies, while keeping Room keep-alives direct-only.

Add both G3 RF-slot Sensor profiles, suppress battery alarms on unavailable measurements, and remove the unsupported Sensor WebConfig capability. Add executable regression coverage and CI checks.
2026-10-06 09:20:05 -07:00
mikecarper f9d1e80aee Preserve qualified release artifacts across resumed builds 2026-10-06 09:19:02 -07:00
mikecarper 526a3d1aa4 Retry saved WebConfig WiFi when the MQTT worker is absent 2026-10-05 22:10:36 -07:00
mikecarper 6765100c3a Retain independent RS232 in Full MQTT repeaters 2026-10-05 18:21:42 -07:00
mikecarper 292834c9b1 Install crypto dependency for OTA unit tests 2026-10-05 17:54:31 -07:00
mikecarper 69d9ac84bc Include runtime ESP-NOW in Full ESP32 repeaters 2026-10-05 17:33:02 -07:00
mikecarper 6cd1289c8b Combine MKE S3 repeater bridge modes at runtime 2026-10-05 17:12:10 -07:00
mikecarper 0e0faa33a4 Unify Tower repeater builds on SD-primary OTA storage
Keep the deployed SD target and layout, select qualified internal delta storage when no card is usable, and retain exact SD bootloader-update gates. Add storage, capability, transfer, recipe, and release-selection regression coverage.

Also preserve mandatory runtime packet logging in canonical XIAO images when verbose build debugging is disabled, fixing the four stopped release-matrix qualification failures.
2026-10-05 16:38:30 -07:00
mikecarper 94aab3d474 Check boot filesystem lifetime and ordinary ESP32 build inclusion 2026-10-05 14:12:59 -07:00
mikecarper 47f10c0735 Run stock setup GUI and ESP32 startup recovery checks in CI 2026-10-05 14:09:01 -07:00
mikecarper d2c8bf12fe Keep ESP32 USB startup responsive during optional GPS discovery 2026-10-05 13:31:28 -07:00
mikecarper 30464b022d Guard startup resets in the pinned Arduino 3.1.3 HWCDC driver 2026-10-05 13:08:55 -07:00
mikecarper 4b95a288ca Capture HWCDC startup resets in the pinned Arduino 3.3.11 driver 2026-10-05 12:59:37 -07:00
mikecarper 459d2a8cef Preserve the first HWCDC console session after flashing 2026-10-05 12:42:58 -07:00
mikecarper 47f4581056 Complete browser OTA responses before reboot and allow HTTP restarts 2026-10-05 11:52:24 -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 f6c911da23 Preserve flood policies across qualified RAM capacity changes 2026-10-05 03:33:44 -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 1ec9234d3c Test hardware CDC capacity and stalled-host writes in CI 2026-10-04 21:22:51 -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 1d96725e73 Test radio and Access Control against pinned official app code 2026-10-04 14:47:10 -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 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 9a3774ad04 Merge observer OTA channel switching into keymindCascade 2026-10-04 00:26:46 -07:00
mikecarper 2e84512ba4 Retain and isolate delayed Companion results under backpressure 2026-10-03 23:22:34 -07:00