Commit Graph
679 Commits
Author SHA1 Message Date
mikecarper c5fe8a0edd Commit WiFi OTA only after the complete upload request 2026-10-06 17:14:48 -07:00
mikecarper 70bf4bdfeb Preserve multipart OTA MD5 after Update initialization
Arduino-ESP32 2.0.17 UpdateClass::begin() clears _target_md5 before
initializing the digest builder (Updater.cpp:123-126). The installed pinned
framework package is 3.20017.241212+sha.dcc1105b. Setting the multipart
digest before begin therefore skipped the final comparison in end(),
which only compares a nonempty _target_md5 (Updater.cpp:303-308).

Set the supplied MD5 after Update.begin succeeds. If the digest is rejected,
abort the begun update, release upload admission, and return HTTP 400 before
assigning an owner or extending its receive timeout.

Model the pinned begin-clears-digest behavior in the host fixture using
independent digest vectors. Verify malformed and mismatched digests, actual
byte corruption, disconnect cleanup, and later valid admission. Negative
controls restore the original ordering and remove abort/busy cleanup.

Validation: python3 -B test/test_async_web_lifecycle.py -v passed 4/4,
including C++ ASan/UBSan execution and negative controls. No PlatformIO or
hardware validation was run in this worktree.
2026-10-06 14:42:20 -07:00
mikecarper be2ab346b0 Terminate DNS diagnostics after partial address conversion 2026-10-06 13:18:38 -07:00
mikecarper 52c70994d8 Preserve valid DNS leases and cover bounded diagnostics 2026-10-06 13:11:15 -07:00
mikecarper 0724e2efa3 Test repeater hidden discovery and observer compatibility 2026-10-06 13:02:20 -07:00
mikecarper 825eb592f7 test: extract USB sleep helper for official web console 2026-10-06 12:26:36 -07:00
mikecarper 1ecceeb686 test: verify canonical Full matrix grouping 2026-10-06 12:07:53 -07:00
mikecarper 6978b354cc Merge remote-tracking branch 'origin/keymindCascade' into keymindCascade 2026-10-06 11:59:54 -07:00
mikecarper 9c54621b63 Merge remote-tracking branch 'origin/keymindCascade' into keymindCascade 2026-10-06 11:58:31 -07:00
mikecarper 99ec3a9bbf test: qualify Full fixtures for local release staging 2026-10-06 11:57:21 -07:00
mikecarper f8e04f090b test: resolve inherited C6L USB console flags 2026-10-06 11:51:39 -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 5a7c07a6ce Use real Mesh Solar hardware in resume regression fixture 2026-10-06 11:30:49 -07:00
mikecarper d6ec787ba7 Honor explicit resume for ordinary firmware builds 2026-10-06 11:29:52 -07:00
mikecarper 77f0842830 Keep T-Beam 1W outside programmable charger support 2026-10-06 11:23:03 -07:00
mikecarper 1adf0c6d01 Scope charger controls to T-Beam and Mesh Solar flash budgets 2026-10-06 11:22:03 -07:00
mikecarper 79167af8e6 Update GPS request fixture for bounded LPP replies 2026-10-06 11:21:56 -07:00
mikecarper a5f4158b36 Clarify charger battery ratings and keep host checks portable 2026-10-06 11:05:05 -07:00
mikecarper ad2bc929d6 Cover every T-Beam charger boot read failure 2026-10-06 10:57:33 -07:00
mikecarper f5cda7337c Merge branch 'codex/charge-voltage-controls' into keymindCascade 2026-10-06 10:56:32 -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 9202fc2a96 Simplify firmware selection and canonical build menus 2026-10-06 10:46:11 -07:00
mikecarper 08bf174ea3 Merge branch 'keymindCascade' of github.com:mikecarper/MeshCore into keymindCascade 2026-10-06 10:23:28 -07:00
mikecarper 19379eb9b8 Use C6L native USB and recover diagnostics-only Companion sessions 2026-10-06 10:14:59 -07:00
mikecarper db42a998f8 Publish Full-only ESP32 node releases and separate migration tools 2026-10-06 10:14:54 -07:00
mikecarper 5990b4c5fd Keep telemetry permission fixtures aligned with production prefs 2026-10-06 10:11:41 -07:00
mikecarper 7581fa3abd Cover WiFi scan fixes across every ESP32 recipe 2026-10-06 09:58:40 -07:00
mikecarper df5e591319 Bound telemetry replies and preserve Sensor send retries 2026-10-06 09:56:00 -07:00
mikecarper 2ad479ce0e Merge branch 'keymindCascade' of github.com:mikecarper/MeshCore into keymindCascade 2026-10-06 09:43:16 -07:00
mikecarper 2ee62b9814 Fix V4 setup AP startup and pre-AP network scans 2026-10-06 09:40:28 -07:00
mikecarper 24a223314c Identify failed resume qualification gates safely 2026-10-06 09:29:48 -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 3baa169fc6 Preserve qualified release artifacts across resumed builds 2026-10-06 09:19:02 -07:00
mikecarper ebf2f0823e Wake Heltec V4 buttons from power-saving sleep 2026-10-05 23:51:26 -07:00
mikecarper 95913c5301 Retry saved WebConfig WiFi when the MQTT worker is absent 2026-10-05 22:10:36 -07:00
mikecarper d2983762bc Keep admitted WiFi OTA uploads alive through receive gaps 2026-10-05 21:45:06 -07:00
mikecarper e971beabc5 Avoid reset pulses when serial test collectors reopen UART bridges 2026-10-05 20:44:17 -07:00
mikecarper 757f15fcb6 Preserve raw UART console input while power saving is enabled 2026-10-05 20:11:10 -07:00
mikecarper 77f8416bb6 Verify asynchronous MQTT controls in wireless regressions 2026-10-05 19:33:49 -07:00
mikecarper 8842b86a46 Keep bridge admission fixtures aligned with cooperative shutdown 2026-10-05 19:18:03 -07:00
mikecarper 1d0ae06800 Keep the console responsive during MQTT shutdown 2026-10-05 19:05:58 -07:00
mikecarper 1db09f41ac Add channel-nine-only notification builder preset 2026-10-05 18:41:27 -07:00
mikecarper 46e6bb7b71 Document channel-nine-only notification example 2026-10-05 18:33:56 -07:00
mikecarper 8af0511f54 Preserve separate TLora Full transports within RAM budget 2026-10-05 18:33:34 -07:00
mikecarper 51d74a200e Retain independent RS232 in Full MQTT repeaters 2026-10-05 18:21:42 -07:00
mikecarper bec874f917 Keep independent bridge choices in firmware picker 2026-10-05 17:54:31 -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 30fe0d617b 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