Commit Graph
29 Commits
Author SHA1 Message Date
mikecarper 9ce2a076eb Include and qualify Meshtext in RAK4631 Full Companion
Port Meshtext settings to verified atomic nRF52 storage and use the existing radio RNG and hardware entropy. Keep the ExtraFS boundary, GPS, contacts, channel count and 8 KiB stack unchanged; omit unused library data to fit the image. Require linked codec and Companion transport evidence and build the real RAK Full profile in CI. Add configuration and storage-failure regression coverage.
2026-10-12 22:39:00 -07:00
mikecarper 55e4f47338 Service ESP received advert cache writes between loop passes 2026-10-04 08:20:28 -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 80f37d4374 Harden nRF52 filesystem recovery and flash writes 2026-09-22 15:17:39 -07:00
mikecarper 3ce499a700 Fix nRF52 flash completion and preserve recoverable ExtraFS 2026-09-22 09:29:05 -07:00
mikecarper ab18216718 Consolidate companion components 2026-09-17 13:41:39 -07:00
mikecarper 24b1b1167f Fix storage recovery and deferred runtime state
Recover usable ESP32 preferences and channels before permitting replacement; keep identity and ACL persistence transactional and complete.

Preserve MQTT commit boundaries, restore OTA identity and policy after deferred allocation, retain radio gain retries, and reject invalid flood limits. Add production-path fault regressions and CI coverage.
2026-09-15 16:46:17 -07:00
mikecarper b4315dabdb Harden storage transactions and deferred radio settings 2026-09-15 16:01:46 -07:00
mikecarper 016a1ed2ea Fix OTA recovery, radio2 replies, and preference persistence
Keep each deferred OTA response tied to the request's radio profile and generation. Separate requests from different radio sessions, discard stale queued responses, and retain the existing companion and infrastructure reply policies.

Reject staged captures with invalid file framing before adopting their state. Recover fixed internal-flash trailer bytes after interrupted checkpoints and handle small ESP32 delta trailers that share metadata sectors. Fail closed when install preflight cannot read a valid header, so hardware and automatic-update policy checks cannot be skipped.

Replace Companion preferences through verified file transactions and quarantine writes after incomplete loads on all platforms. Initialize serializer runtime fields before preferences snapshots copy them.

Add production-code fault regressions to CI for deferred routing, store recovery, install preflight, and preferences persistence. Validation: 1,510 native tests, 60 host checks, and six firmware targets across ESP32, nRF52, STM32, and RP2040.
2026-09-15 10:45:04 -07:00
mikecarper 39c3f7b25c Harden radio recovery, OTA reconnects, and companion settings
Reject radio changes when receive mode cannot resume and restore the previous physical profile and power policy. Preserve selected folder OTA captures across disconnects and recoverable host I/O failures, while keeping corruption failures distinct. Validate OTA staging input before arithmetic or buffer writes and revoke published data before edits.

Commit companion channels through verified file replacement on ESP32, RP2040, and STM32, and quarantine incomplete startup reads. Recheck the last management connection during delayed wireless changes and prevent conflicting Bluetooth shutdowns. Detect complete OTA implementation sources rather than the shared inflater when configuring release builds.

Add fault-injection regressions and CI coverage for these paths, and document folder capture reconnect behavior.

Validation: 1,510 native tests; 55 host integration checks; build profile regressions; ESP32, nRF52, STM32, and RP2040 firmware builds.
2026-09-15 10:02:23 -07:00
mikecarper 846282adf4 Use native display resolution and adaptive typography 2026-09-08 16:02:16 -07:00
mikecarper be41d9dd79 Cache Full Companion paths and shared secrets to recover RAM 2026-09-08 12:21:30 -07:00
mikecarper a8cf4fd12f Fix USB radio stalls and add durable replay timestamp recovery 2026-09-03 23:58:32 -07:00
mikecarper dea2ce495f Automatically recover internal Companion ExtraFS on boot 2026-09-03 15:15:23 -07:00
mikecarper 66894f9958 Harden nRF52 contact and settings persistence 2026-09-02 17:32:43 -07:00
mikecarper 610a88e8d5 Fix nRF52 contact persistence and ExtraFS recovery 2026-09-02 11:41:38 -07:00
mikecarper 3cd9c84893 Fix Companion NodePrefs ODR conflict 2026-08-12 15:42:50 -07:00
mikecarper bda0722ad8 Harden nRF52 storage and hardware recovery 2026-07-21 00:01:01 -07:00
Scott Powell d9df8307ca * first draft 2026-06-01 16:49:31 +10:00
taco e6e1b810f8 add DataStore::deleteBlobByKey() 2026-02-01 00:02:29 +11:00
taco 3d83556829 refactor: use _getContactsChannelsFS() instead of ifdefs 2025-09-06 14:15:40 +10:00
taco 2b24c575c7 support dual filsystems on nrf52
store identity and prefs in UserData and contacts, channels and adv_blobs in ExtraData
2025-09-06 14:15:40 +10:00
Scott Powell a7c959631f * companion: added Datastore methods: getStorageUsedKb(), getStorageTotalKb()
* companion: CMD_GET_BATTERY now changed to CMD_GET_BATT_AND_STORAGE
2025-06-20 16:47:59 +10:00
liamcottle a22c176d45 add rm command to remove file 2025-06-07 15:44:36 +12:00
liamcottle 0f601752e4 implement ls and cat commands for rescue mode 2025-06-07 15:23:55 +12:00
Scott Powell 9c833486bf * DataStore, advert blob record format change 2025-06-06 21:35:54 +10:00
Scott Powell dd808ee6c7 * new nRF52 impl for advert blobs 2025-06-06 19:50:51 +10:00
Scott Powell 6e0b505a2a * companion: refactor of all filesystem access to new DataStore module 2025-06-06 15:30:35 +10:00