Phase 4 Release-Proven Architecture
Phase 4 turns the reset architecture into a release-confidence system. The web UI, backup format, firmware entity names, web endpoints, and Home Assistant names remain unchanged.
What is now release-proven
- Browser smoke coverage exercises first setup, existing-device settings, photo source modes, date filtering, backup export/import, rejected import behavior, firmware update states, logs, and a mobile-width render check.
- Compatibility fixtures now cover every exported backup group: connection, photos, frequency, firmware updates, clock, and screen.
- Compatibility checks keep backup JSON at version 1 and verify that all product-owned backup fields still map to valid device endpoints.
- Firmware generation checks now verify generated field markers stay in safe entity-field sections, not handwritten lambdas, scripts, actions, or LVGL layout blocks.
- The release-readiness command runs the normal local gate and reports whether the repository is clean before publishing. Firmware releases can use the compile-aware variant so ESPHome factory builds are not missed.
Release checklist
Before publishing a release:
- Run
npm run check:release-ready-with-compilebefore firmware releases. - For non-firmware checks where speed matters, run
npm run check:release-ready. - Confirm generated web assets, generated firmware field sections, docs, compatibility fixtures, and release helpers are current.
What remains future work
Phase 4 does not add product features. Offline storage, VPN support, portrait-specific layouts, onscreen settings, and broader full-device testing remain future phases.
