Commit Graph
1639 Commits
Author SHA1 Message Date
mikecarper 3bb7c7bdd8 Merge upstream dev while preserving local GPS and USB recovery 2026-10-06 12:56:19 -07:00
mikecarper 219e936ef8 Preserve requested ESP-NOW across manual setup and master restore 2026-10-06 11:46:10 -07:00
mikecarper 97f16dedd0 Fix ESP32 Full idle radio teardown and compact AP startup 2026-10-06 11:46:10 -07:00
mikecarper 1adf0c6d01 Scope charger controls to T-Beam and Mesh Solar flash budgets 2026-10-06 11:22:03 -07:00
mikecarper c97dbd791a Add persistent T-Beam charge voltage controls and report Mesh Solar limits 2026-10-06 10:56:32 -07:00
mikecarper 19379eb9b8 Use C6L native USB and recover diagnostics-only Companion sessions 2026-10-06 10:14:59 -07:00
mikecarper df5e591319 Bound telemetry replies and preserve Sensor send retries 2026-10-06 09:56:00 -07:00
mikecarper ba6e48b5ce 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 95913c5301 Retry saved WebConfig WiFi when the MQTT worker is absent 2026-10-05 22:10:36 -07:00
mikecarper 1d0ae06800 Keep the console responsive during MQTT shutdown 2026-10-05 19:05:58 -07:00
mikecarper 51d74a200e Retain independent RS232 in Full MQTT repeaters 2026-10-05 18:21:42 -07:00
mikecarper 5f10e7d601 Include runtime ESP-NOW in Full ESP32 repeaters 2026-10-05 17:33:02 -07:00
mikecarper 7ef67c49f5 Combine MKE S3 repeater bridge modes at runtime 2026-10-05 17:12:10 -07:00
mikecarper 0b9a80d7ed Avoid repeated missing SPIFFS scans during ESP32 startup 2026-10-05 14:12:44 -07:00
mikecarper 7821329851 Keep OTA headers aligned with the checked-out vendored source 2026-10-05 11:56:00 -07:00
mikecarper 0529a461f2 Keep automatic ESP-NOW retries paused during browser OTA 2026-10-05 11:06:30 -07:00
mikecarper c38ba5f8d0 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 19d02c0dfa Preserve flood policies across qualified RAM capacity changes 2026-10-05 03:33:44 -07:00
mikecarper 982f96ca96 Avoid Companion request tag collisions after login 2026-10-05 01:47:05 -07:00
mikecarper 835c7a8e6e 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 e4420519a4 Fit Access Control replies to encrypted packet route budgets 2026-10-04 14:24:03 -07:00
mikecarper 9268c57f8c Support stock serial MQTT bridges on Full Companion 2026-10-04 14:14:53 -07:00
mikecarper 9c43efb0bc Coalesce ESP background contact I/O and defer backup cleanup 2026-10-04 11:50:12 -07:00
mikecarper 15bdb7fc4d Batch ESP background contact CRC checks without growing scratch storage 2026-10-04 09:27:54 -07:00
mikecarper 55e4f47338 Service ESP received advert cache writes between loop passes 2026-10-04 08:20:28 -07:00
mikecarper 0a3187ac30 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 4f114e914b 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 a71b99fd62 Service cached contact persistence between companion loop passes 2026-10-04 03:39:27 -07:00
mikecarper 1e03eb3056 Retain oversized native USB commands until they can be rejected 2026-10-04 02:53:04 -07:00
mikecarper 67408ffd13 Support reader commands through local Bluetooth and USB CLI 2026-10-04 02:16:04 -07:00
mikecarper 638e8cf3b7 Keep BLE contact sync from blocking other companion transports 2026-10-04 02:11:18 -07:00
mikecarper c316e9fb3c Reduce notification settings stack usage without shared scratch storage 2026-10-04 02:07:26 -07:00
mikecarper 63f4642252 Merge observer OTA channel switching into keymindCascade 2026-10-04 00:26:46 -07:00
mikecarper c3d3c4e294 Retain and isolate delayed Companion results under backpressure 2026-10-03 23:22:34 -07:00
mikecarper 46df653dbc Share bounded STM32 Companion preference wire metadata 2026-10-03 23:16:37 -07:00
mikecarper 54e5b0b996 Bound STM32 Companion preference image writes 2026-10-03 22:41:45 -07:00
mikecarper 59e761262d Copy only persisted Companion preference values during loading 2026-10-03 22:16:31 -07:00
mikecarper 2817e180ec Separate GPS UART ownership and collapse shared Companion ports 2026-10-03 21:42:54 -07:00
mikecarper 9693c87002 Ignore inactive discovery tags without clearing other requests 2026-10-03 21:28:40 -07:00
mikecarper 399464ea37 Use bounded frame transmission for Companion hardware UART 2026-10-03 21:23:14 -07:00
mikecarper ea938e8e84 Preserve ACK ownership across contact relocation and retirement 2026-10-03 21:10:49 -07:00
Scott Powell f19733e478 * don't respond to DISCOVER requests if node has adverts turned off. (isHiddenNode()) 2026-10-04 15:02:00 +11:00
mikecarper 7945d5bf5a Retain Companion ACK notifications during host backpressure 2026-10-03 20:23:50 -07:00
mikecarper 4837265648 Preserve USB mOTA ownership across deadlines and logging handoffs 2026-10-03 19:01:22 -07:00
mikecarper d9088f9e86 Preserve telemetry preferences and routes across storage failures 2026-10-03 18:34:12 -07:00
mikecarper eeb25a8b5f Merge USB session safety and preserve GPS preference compatibility 2026-10-03 16:12:32 -07:00
mikecarper 7803d4fb07 Add saved repeater trace exception while repeating is disabled 2026-10-03 15:48:44 -07:00
agessaman baf01a5c16 Merge branch 'feat/ota-branch-switch' into merge/ota-branch-into-observer-firmware-dev
# Conflicts:
#	examples/simple_repeater/MyMesh.cpp
2026-10-03 15:47:01 -07:00
mikecarper 65512661c3 Fix USB logging session safety and add hourly GPS sync interval 2026-10-03 15:43:35 -07:00
mikecarper 9b82c74275 Merge origin/keymindCascade USB reconnect fixes 2026-10-03 15:37:49 -07:00