Commit Graph
5744 Commits
Author SHA1 Message Date
mikecarper bd09019ada Sleep between noise-floor samples and reduce idle refreshes 2026-10-17 10:18:14 -07:00
mikecarper 190941e7b8 Enable contact caching for high-capacity nRF52 companions 2026-10-17 10:14:17 -07:00
mikecarper 5996b2e294 Reuse active Sensor tracker wake deadlines 2026-10-17 02:25:37 -07:00
mikecarper 9c50eb15e1 Fix nRF52 idle sleep event and CryptoCell handling 2026-10-17 02:22:26 -07:00
mikecarper e1a72ac147 Add on-demand power-saving diagnostics 2026-10-17 01:15:54 -07:00
mikecarper f9e145216f Preserve current Room downloads during QSPI rollout 2026-10-16 23:46:21 -07:00
mikecarper 71210f0a39 Consolidate onboard QSPI infrastructure build profiles 2026-10-16 23:42:10 -07:00
mikecarper bf07999e12 Retire internal-only SolarXiao Room release variants 2026-10-16 23:24:36 -07:00
mikecarper 1dc2d75ace Bound GPS UTC fields and accept variable time precision 2026-10-16 20:35:11 -07:00
mikecarper f5113a06ea Require fresh complete GPS observations before clock synchronization 2026-10-16 19:48:34 -07:00
mikecarper 059fb02e39 Preserve stalled USB recovery after a cancelled watchdog reboot
Restart the retry interval without treating queue cleanup as completed USB transmission. Cover cancellation journals, fresh recovery deadlines, real progress and rollover, with historical policy and runtime negative controls.
2026-10-16 19:25:15 -07:00
mikecarper 7a7485e34e Reject unsupported RXPS before changing suspended scan policy
Keep rejected power-saving requests from changing radio2's saved RX policy or timings. Exercise actual CLI, scan restoration and calibration sleep guards with semantic negative controls.
2026-10-16 19:17:22 -07:00
mikecarper bd79571769 Keep UI startup and rescue windows closed after observed expiry 2026-10-16 19:00:45 -07:00
mikecarper b9c103406d Retry nonblocking Ethernet operations in runtime regression fixture 2026-10-16 18:44:16 -07:00
mikecarper f8c2ebead6 Align USB sleep wake harness with sensor elapsed refresh anchors 2026-10-16 18:42:00 -07:00
mikecarper 394e3febc4 Retire expired tracker awake leases before foreground deferrals 2026-10-16 18:37:24 -07:00
mikecarper 09af5a886d Format infrastructure startup version labels without allocating 2026-10-16 18:27:08 -07:00
mikecarper 7acd76d095 Keep expired beacon RF-start guards retired across uptime rollover 2026-10-16 18:09:12 -07:00
mikecarper 6a5d7c3f47 Keep sensor UI polling and refresh working across uptime rollover 2026-10-16 17:56:45 -07:00
mikecarper 3f9ed8e68e Keep legacy UI version regression aligned with refresh initialization 2026-10-16 17:54:29 -07:00
mikecarper 192994771a Reuse outbound block storage for host-compressed OTA data 2026-10-16 17:33:13 -07:00
mikecarper 17f9cc2b82 Keep RGB Companion status timing working across rollover 2026-10-16 17:21:44 -07:00
mikecarper 5cbca5518a Keep Companion backlight button polling working across rollover 2026-10-16 17:04:33 -07:00
mikecarper b4dca53238 Keep monochrome Companion LED timing working across rollover 2026-10-16 16:54:08 -07:00
mikecarper aa1f7f0828 Keep Companion sensor polling running across timer rollover 2026-10-16 16:43:54 -07:00
mikecarper c8407e5109 Keep Companion UI deadlines working across rollover and long idle 2026-10-16 16:28:58 -07:00
mikecarper 1f80e1579b Keep RTTTL tones and queued speech running across timer rollover 2026-10-16 16:08:33 -07:00
mikecarper 26c788710d Drive every RGB LED channel for Companion notifications 2026-10-16 15:50:38 -07:00
mikecarper 9963d798e2 Preserve armed OTA handoffs when debug resume is requested 2026-10-16 15:43:32 -07:00
mikecarper 3056ef7a32 Reserve configured NOR pins from user GPIO control 2026-10-16 15:09:46 -07:00
mikecarper 6519a3b5b9 Preserve armed OTA handoffs by rejecting apply reentry 2026-10-16 15:00:23 -07:00
mikecarper 7b37218ec9 Report unverified USB watchdog saves without promising rollback 2026-10-16 13:57:14 -07:00
mikecarper ae2553a169 Report uncertain preference saves without promising rollback 2026-10-16 13:45:48 -07:00
mikecarper 766c09a9e3 Bound region name exports for small destinations 2026-10-16 12:54:36 -07:00
mikecarper 3a3323c4d5 Preserve durable region policy on failed replacement saves 2026-10-16 11:56:00 -07:00
mikecarper 17ab374220 Persist unchanged Companion channel route SETs before OK
Require a real raw-table save for same-value channel SETs. This repairs the false acknowledgement after successful constructor recovery of an older backup followed by a failed candidate write.

Keep resolved alias keys, raw AUTO policy and runtime generation untouched. Preserve GET and unchanged contact behavior, changed-policy validation and indeterminate-publication quarantine.

Cover real stale-backup creation, failure/retry, reboot and exact old-skip controls. Add actual alias/BaseChatMesh and raw app-key regression tests on all four backends. Verified 117 related host tests, 16 final caller rechecks, four firmware qualifications and linked nRF52 crypto checks.
2026-10-16 11:34:51 -07:00
mikecarper 80390b749b Fence Companion channel writes after uncertain publication
Latch only channel storage on Indeterminate writer outcomes, including failed transaction setup. Preserve ordinary failure retries, confirmed rollback, contacts and the live accepted channel keys.

Exercise actual CLI and binary callers with all four storage backends, reboot behavior and exact missing-latch negative controls. Share TX storage failure diagnostics to retain the strict Wio-E5 Mini flash gate.

Verified 103 related host tests, four platform firmware qualifications and linked nRF52 crypto/stack checks. A separate stale-backup constructor/no-op acknowledgement case remains under audit.
2026-10-16 11:22:36 -07:00
mikecarper 8370d28bb8 Keep channel faults from disabling healthy Companion contacts 2026-10-16 10:59:11 -07:00
mikecarper 85f37a7788 Confirm beacon file moves before acknowledging publication 2026-10-16 10:32:27 -07:00
mikecarper 63a2c5647f Fail closed after uncertain shared data route publication 2026-10-16 10:27:05 -07:00
mikecarper 26d43945df Include observed move recovery in the boot inventory fixture
Extract the production transaction move state and helper used by recovery. Check inventory invalidation, late rename errors, no-op success and unknown post-move metadata without replacing recovery policy.

Keep exact former rename-result behavior as a negative control for both misleading return directions.
2026-10-16 09:32:30 -07:00
mikecarper a799a9e46a Model owner-bound STM32 files in identity recovery tests
Provide InternalFS for the actual FileRead helper and forbid default File construction in the STM32 fixture. Verify empty and missing handles retain the requested owner and null owners use the safe fallback without I/O.

Retain existing identity transaction and migration authority checks.
2026-10-16 09:22:10 -07:00
mikecarper 1dad5b9b02 Exercise recovery-aware Companion reboot guards in tests
Extract the production contact flush, retry and UI shutdown helpers instead of leaving stale fixture-only methods. Keep rollover negative controls and cover volatile contacts, accepted dirty work, authoritative repair and rebuild failures.
2026-10-16 09:16:25 -07:00
mikecarper ebf6454cca Restart contact streams after storage recovery
Release cached path snapshots before resetting contacts while retaining the requesting transport and table revision for a complete stream restart. Keep explicit session cancellation unchanged and avoid copying uncached contact buffers.

Cover cached and uncached recovery, transport isolation, empty reloads, backpressure, and the former cancellation as a negative control.
2026-10-16 09:11:19 -07:00
mikecarper 7b2daaed9f Preserve accepted contacts after transient path read errors
Recheck cached immutable paths before resetting the live table after raw I/O failure. Keep accepted RAM mutations, current jobs and save deadlines when reads recover; stronger source or publication uncertainty still forces full recovery. Use the existing recovery byte and a fixed scratch buffer, with no cache allocation or eviction.

Cover full-cache transient recovery, persistent I/O and checksum failures, nRF unread-scope restoration, active ESP jobs, real uncertain publication and unchanged lazy deadlines with sanitizer tests and restored-reset negative controls.
2026-10-16 08:54:12 -07:00
mikecarper 6b92a1aea2 Model contact recovery in the radio sleep fixture
Compile the actual contact recovery flag and accessor in the sleep harness used by CI. Check that pending repair wakes the loop while a retained source flag alone does not. Retain all six temporary-radio, terminal and nRF52 lease variants and their original sleep assertions.
2026-10-16 08:52:44 -07:00
mikecarper fbd5c84ec4 Preserve contacts when source discovery is unknown
Do not classify legacy or page-name stat errors as unread payloads. Keep candidate contact files unchanged, retry source selection, and use bounded volatile operation if authority remains unknown. Cover legacy absence, downgrade leftovers, cleanup-time metadata recovery and persistent faults with actual-source sanitizer tests and restored-bug negative controls.
2026-10-16 08:38:26 -07:00
mikecarper 2311160a97 Recover unreadable contacts without stranding Companions
Verify fallback namespace moves before accepting publication or rollback. Reload readable contact images at a safe host boundary, discard only unreadable contact data after bounded retries, and permit volatile operation when storage cannot recover. Preserve unrelated stores and fail explicit durability requests truthfully.

Keep existing flash, RAM, OTA and capability limits by streaming nRF52 preferences through the validated wire table and sharing identical contact deadline resets. Add fault-injection, sanitizer, legacy-image parity and CLI lifecycle regressions.
2026-10-16 08:28:45 -07:00
mikecarper d7cd5686a1 Update reviewed USB inventory for new Full Companions 2026-10-16 08:19:01 -07:00
mikecarper 64473c95ea Add missing ESP32 Full Companion release targets
Provide canonical Full recipes for Waveshare S3 LR1121 and Wio Tracker L2 while retaining directly buildable USB and BLE compatibility recipes. Cover hardware inheritance, menu selection, and exact Full mappings in the release profile tests.
2026-10-16 07:35:44 -07:00