Repository navigation
Releases
Releases · alexhopeoconnor/DeviceFramework
DeviceFramework v2.9.1
DeviceFramework v2.9.1
- Keep the library profile hook limited to validation and private header
generation; it no longer attempts to mutate ESPOTA upload flags from a
cloned library-builder environment. - Document the project-level, host-only uploader boundary and add a regression
check that proves profile compilation cannot modify uploader flags.
DeviceFramework v2.9.0
DeviceFramework v2.9.0
- Add
beforeSetup(callback, expectedCustomParameterCount)as an advisory
startup allocation hint. It reserves exact registry storage before EEPROM
emulation allocates its buffer, so constrained sketches can avoid an
unnecessary 8-to-16 entry expansion while retaining safe fallback growth. - Add direct
const char*parameter lookup and typed-read APIs, and make the
existing typedStringreads operate on the stored value rather than a
temporaryStringcopy. - Release the temporary outer WiFiManager parameter-pointer array after its
entries have been handed to WiFiManager, while retaining the registry-owned
parameter objects for the portal lifetime. - Add registry occupancy/capacity diagnostics and ESP8266 regression coverage
for exact capacity hints, fallback growth, direct reads, and portal pointer
ownership.
DeviceFramework v2.8.4
DeviceFramework v2.8.4
- Pin WiFiManager 3.2.5, which completes portal HTTP firmware responses before
restarting and makes ESP8266 portal writes safe in ESPAsyncWebServer's SYS
callback. - Keep DeviceFramework's mDNS responder explicitly deferred while heap
headroom is insufficient, with one useful diagnostic instead of repeated
noise. ESP8266 UDP OTA remains available by IP while hostname resolution is
intentionally deferred. - Document the maintained ESP8266/ESP32 PlatformIO baseline, OTA partition
layout, and reproducible board-free and real-hardware test-harness commands.
DeviceFramework v2.8.3
DeviceFramework v2.8.3
- Pin WiFiManager 3.2.4 so profile-backed provisioning through the framework
web portal waits for a real station address instead of taking the legacy
empty-SSID success path. - Add Docker-contained browser evidence for the integrated WiFiManager portal,
DeviceFramework web UI, and Home Assistant native device page, while keeping
real-board Wi-Fi, MQTT, and browser checks available through one explicit
local hardware command. - Make the release gate resolve each first-party dependency from its exact
published tag, and ignore both plain and machine-suffixed local PlatformIO
overrides.
DeviceFramework v2.8.2
DeviceFramework v2.8.2
- Publish the tested stack of WiFiManager 3.2.3, DFTE 1.2.1, and ArduinoHA
3.2.1, so an application pins one DeviceFramework release rather than each
dependency separately. - Restructure the reader-facing framework, configuration, web UI, operations,
and development documentation around practical starting points and the
maintained-library boundary. - Add one interruptible board-free release runner, while making web-asset
checking, local test locks, and Home Assistant harness cleanup safe and
explicit during cancellation. - Make the version/release tools derive and validate the compatibility-table
row fromlibrary.json, preventing package metadata from drifting from the
documented tested stack.
DeviceFramework v2.8.1
DeviceFramework v2.8.1
- Pin the published ArduinoHA 3.2.0 release, including bounded direct MQTT discovery writes, lower peak discovery-serialization heap use, and fail-safe recovery after an interrupted discovery stream.
- Extend the local HA hardware test harness with one retained stack, session-private credentials/build settings, immutable per-target builds, and Docker-contained USB flash workers so ESP8266 and ESP32 boards can run in parallel without sharing PlatformIO mutation.
- Keep physical browser review deterministic: retained visual sessions use the pinned HA snapshot, run Playwright in Docker, compare the dashboard screenshot baseline, toggle the real device entity, and verify the MQTT/HA return state.
- Document cleanup, dependency boundaries, existing-LAN/no-sudo operation, and the optional managed-AP path; no local test credentials or generated runtime state are committed.
DeviceFramework v2.8.0
DeviceFramework v2.8.0
- Strengthen intentional-reset and web-recovery handling: preserve pending reset provenance, begin a fresh physical-reset sequence after a framework-requested restart, and assert the ESP8266 RTC layout that stores the reset record.
- Correct the protected-output example so its safety timeout also applies when its activation timestamp is zero.
- Add reproducible Docker-contained Home Assistant/MQTT integration coverage, including a hardware harness for ESP8266 and ESP32, an optional isolated USB-Wi-Fi access-point route, HA/MQTT restart recovery, and a pinned Playwright visual contract that exercises an actual HA control round trip.
- Serialize local PlatformIO and HA-harness work to prevent shared package, generated-header, build-tree, and broker races during concurrent developer runs.
- Update the tested build stack to PlatformIO 6.2.0, Arduino-ESP32 3.3.11, WiFiManager 3.2.2, ArduinoJson 7.4.3, ESPAsyncWebServer 3.12.0, and AsyncTCP 3.5.0; refresh GitHub Actions to their v7 major releases.
DeviceFramework v2.7.0
DeviceFramework v2.7.0
- Add a precise configuration lifecycle contract: defaults, transactional storage, optional profiles, runtime edits, and schema migration each have one clear ownership boundary.
- Add revisioned reconcile-profile fixtures, direct migration/reconciliation coverage, and a real two-upload hardware regression on ESP8266 and ESP32.
- Defer MQTT and mDNS activity until a usable station connection exists, so a portal-only device does not block on broker resolution.
- Stream DFC4 payload decoding directly from EEPROM, removing the transient full-payload heap allocation; strengthen corrupted/foreign-record handling.
- Restore the shared
default1development password after a factory reset, pin WiFiManager 3.2.1 and DFTE 1.2.0, and document organised local profile/test-input workflows.
DeviceFramework v2.6.0
DeviceFramework v2.6.0
- Add a platform-aware
DeviceFrameworkWebResourceLimitspolicy, configured before setup, for bounded streamed responses, WebSerial capacity, memory headroom, and admission behavior. - Serve built-in status and logo responses from fixed framework-owned slots, while bounding the remaining streamed page work instead of allowing an unbounded set of active responses.
- Replace WebSerial's dynamic client view and extraction
Stringallocations with fixed client records and direct circular-buffer slices; overloads close with WebSocket code 1013 and diagnostic log data is dropped before device work is threatened. - Refine existing web status polling and serial-tab lifecycle handling to avoid overlapping requests, stale error noise, and unnecessary diagnostic connections.
- Depend on DFTE 1.2.0 and document the measured resource policy, observability counters, configuration contract, and regression coverage.
DeviceFramework v2.5.1
DeviceFramework v2.5.1
- Correct explicit
reconcileprofiles so a newly applied profile revision updates its supplied shared device password alongside Wi-Fi and parameters. - Preserve the active password when a reconcile profile omits
device_password; bootstrap and corrupt-record recovery behaviour remains unchanged. - Strengthen the connected-device regression to require a reconcile deployment to reject its superseded bootstrap password.