Changes
- Fixed the remaining Reading Stats regression in
1.5.0.1/1.5.0.2: const ArduinoJson documents were checked through mutable object/array types, so valid format-v6 main files, internal backups, and manual or weekly imports could all be rejected as non-objects and appear empty. - Existing
/.crosspoint/reading_stats.json,/.crosspoint/reading_stats.json.bak, and/exports/stats_backup_YYYY-MM-DDfiles load again without conversion; the persistence guard from1.5.0.2continues to prevent rejected data from being overwritten. - Added a checked FAT32 copy fallback when a verified JSON temporary file cannot be renamed into place, retaining the temporary recovery file if promotion still fails, plus a release check that prevents mutable ArduinoJson guards from returning to the const stats loader.