Skip to content

Release 0.9.4

piggei edited this page Oct 3, 2026 · 2 revisions

Release 0.9.4

Release: 0.9.4
Build: 0.9.4
Status: stable release

0.9.4 is the hardware-qualified stable release for the current native-S3 media and Automation/persistence line. An independent pre-release audit identified two Automation/persistence defects; both are corrected in the final release while the qualified native-S3 media policies remain unchanged.

Automation closure

  • Schedule quiet-period publication is blocked while a following Program multipart transfer is still active.
  • Alarm media and NVS metadata replacement are transactional, including checked NVS persistence, rollback and safe empty-state convergence on unrecoverable recovery failure.
  • Boot recovery clears unrecoverable Alarm metadata/media mismatches.
  • Alarm and Schedule clock fields are range-validated.
  • Schedule replacement staging is acquired before replacement flags are published.

Waveshare qualification

The Waveshare ESP32-S3-RGB-Matrix policy remains: 2 MiB transient GIF stage maximum, 4 MiB reserve, 1 MiB persistent source cache, 512 KiB per entry, 12 metadata entries and one-item / approximately 250 ms look-ahead. Native 64x64 plus logical 16x16 and 32x32 automatic scaling are hardware-qualified.

Final hardware smoke passed after reboot: one Alarm and a two-activity Schedule reloaded from persistence, and the persisted Alarm subsequently fired successfully. Carousel/GIF staging/cache/prefetch, Matrix Auto Rotation, AudioReactive and the external Buzzer service also remained operational.

MatrixPortal qualification

The Adafruit MatrixPortal ESP32-S3 policy remains: 256 KiB transient stage maximum, 1 MiB reserve, 384 KiB persistent source cache, 256 KiB per entry, 8 metadata entries and one-item / approximately 250 ms look-ahead. The seven-GIF qualification corpus fit entirely in the cache and passed staging, cache, prefetch, invalidation/eviction and PSRAM-invariant checks.

Compatibility

  • Native-S3 WLED target: 17.0.0-devV5.
  • Classic ESP32 documented baseline: WLED 16.0.1.
  • BLE wire protocol unchanged from the previous stable line.
  • Optional sound remains delegated to the standalone WLED Buzzer Usermod.
  • Compatibility BLE mode remains unauthenticated by design, matching the observed original device/app exchange.

Deferred work

Progressive Carousel/Preset item pipelining, explicit Schedule end-of-list/session semantics, versioned Automation persistence, stronger boot CRC validation, fully transactional Carousel bank replacement and the remaining audit hardening items are deferred to post-0.9.4 development.

Clone this wiki locally