Commit Graph
5470 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 3ede9b2155 Regenerate WebConfig assets for DNS diagnostics 2026-10-06 13:12:08 -07:00
mikecarper 5d5941fc4d Run DNS restoration and diagnostics regressions in CI 2026-10-06 13:11:15 -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 7d0984cc90 Merge observer DNS diagnostics and complete resolver restoration 2026-10-06 12:58:28 -07:00
mikecarper 771e86741c Merge IoT power updates while retaining configured role defaults
Keep the current runtime RXPS preference layout, configurable role defaults, board FEM policy, and persisted radio overrides. Power saving and Companion Balanced RXPS already match the incoming policy; the retired fixed Companion helper has been replaced by runtime controls.
2026-10-06 12:57:30 -07:00
mikecarper 3bb7c7bdd8 Merge upstream dev while preserving local GPS and USB recovery 2026-10-06 12:56:19 -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 20a75af1fa Record ESP32 power and AP regression qualification 2026-10-06 11:59:32 -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
Kevin Le 78e134b2ba Only kept enabled, level and preamble for RXPS defaults 2026-10-06 20:33:33 +07:00
mikecarper 8d31b3932d Record user-confirmed V4 button screen wake 2026-10-06 00:12:21 -07:00
mikecarper 3a7d273d49 Record updated V4 build and native console qualification 2026-10-06 00:06:30 -07:00
mikecarper ebf2f0823e Wake Heltec V4 buttons from power-saving sleep 2026-10-05 23:51:26 -07:00
mikecarper c88885a315 Record qualified G2 OTA transitions and power-saving idle checks 2026-10-05 22:30:30 -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 8fe83ebc29 Document raw-UART console limits during power saving 2026-10-05 19:47:00 -07:00