# This file contains the list of changes across different versions ## Unreleased ## 1.1.0 - 2026-09-24 **Highlights:** Safer teardown and Talk signaling, role-aware Gateway sessions, refreshed surface URLs, and reliable room-node builds. - Keep Talk SDP credentials on the direct offer endpoint by refusing HTTP redirects, and fail before sending if request headers or body cannot be configured. Thanks @SebTardif for reporting the redirect risk. (#32) - Preserve teardown when queued disconnect or connect-failure completions run during destruction, preventing reconnect admission on a shutting-down node. Thanks @SebTardif. (#60) - Keep file parent creation inside the path when the storage root disappears, and allow side-effect-free write preflight beneath existing roots. Thanks @SebTardif for reporting the parent-walk overflow. (#31) - Add role-keyed sessions, explicit device-token auth, operator scope advertisement, Gateway events, and correlated asynchronous RPCs for voice-room clients. - Advertise gateway protocol `minProtocol 3` / `maxProtocol 4`. Current gateways strip plugin-owned capabilities (for example `canvas`) and withhold `pluginSurfaceUrls` from legacy v3-only node sessions. - Capture `hello-ok` plugin surface URLs and expose `esp_openclaw_node_dup_plugin_surface_url()` for application URL resolution. - Add `esp_openclaw_node_store_plugin_surface_url()` so applications can adopt refreshed capability-scoped surface URLs (for example from a `plugin.surface.refresh` RPC) into the component's canonical store. - Add authoritative Gateway URI inspection and bound assembled inbound WebSocket messages to 2 MiB by default. - Cancel room Talk on authoritative operator loss or exact Gateway session closure, and drain prepared-call callbacks before WebRTC teardown without changing public configuration layouts. - Require Gateway-owned realtime control for room Talk and fail visibly before peer creation when the Gateway contract is unavailable. - Keep directory pagination from repeating entries after unreadable file metadata is skipped. - Keep room-node Canvas builds working with LVGL 9.6 by using its private-header umbrella instead of a moved internal header. - Restore fresh Tab5 builds by pinning ESP Video to the 2.4.1 source required by the qualified CSI compatibility patch. - Allow the Tab5 camera compatibility patch to discover standalone source trees across filesystem boundaries while still rejecting invalid Git metadata. - Boost Tab5 and Waveshare playback with bounded PCM gain and tone compensation, preserve positional audio-port initializers, and bind room Talk calls to the configured agent. (#33) - Update ESP-IDF component dependencies and the CI checkout action while preserving the vendored WebRTC stack and Tab5 firmware compatibility pins. - Point component manifest `url`/`repository` at the repo's new home under the `openclaw` GitHub org. Qualification: host checks and all five CI firmware builds passed. No hardware flashing, on-device Unity execution, live Gateway pairing/reconnect, acoustic wake/Talk, display/Canvas, camera/DMA, SD-card removal, or C6 coprocessor qualification was performed for this release. ## v1.0.0 - Initial public release of the `esp-openclaw-node` ESP-IDF component.