Skip to content

Version 3.3.0

Latest

Choose a tag to compare

@mairas mairas released this 11 Apr 08:53
· 23 commits to main since this release
919d469

New Features

  • Transport-agnostic networking layer — decouples networking from WiFi, enabling Ethernet and other transports (#940) — @dirkwa
  • ESP32-P4 support — ESP-IDF build environment, Ethernet provisioner, and Bluedroid PoC example (#942) — @dirkwa
  • Signal K delta context grouping — group delta messages by context for more efficient communication (#866)
  • WebSocket reconnect with exponential backoff — replaces fixed reconnect interval (#931)
  • PUT metadata support — add supportsPut to metadata (#939) — @joelkoz

Security Hardening

  • Store admin password as HA1 hash instead of plaintext
  • CSRF protection on destructive HTTP endpoints
  • Config payload size limit to prevent memory exhaustion
  • Redact auth token in debug logs
  • Cap nonce list size and received_updates queue to prevent OOM
  • Fix nonce count initialization and tolerance window

Bug Fixes

  • Concurrency: Fix data races in DigitalInputChange, SemaphoreValue, SafeQueue (single-core ESP32), request_map_, received_updates
  • Memory safety: Fix use-after-free in WS restart, double-free in SSL detection, dangling pointers in OTA password and admin credentials, VLA → heap allocation, memory leaks in CurveInterpolator and HTTP config handler
  • Transforms: Fix correctness bugs in Frequency, VoltageDivider (div by zero), Hysteresis, TimeCounter, MovingAverage
  • WebSocket: Finite send timeouts, handle send failures on closed socket (#860@joelkoz), ignore control frames, clear stale polling href on 404 (#945@dirkwa)
  • System: Static semaphore/mutex allocation, cancel event loop callbacks on destruction, fix Observable move constructor, strong reference in connect_to(shared_ptr)
  • Networking: Backward compatibility typedefs for WiFiStateProducer and Networking, set Ethernet hostname in correct event, guard Network.h behind Arduino 3.x check — @dirkwa
  • Connect without token when server security is disabled (#852@dirkwa)
  • Fix PersistingObservableValue math operators (#938@joelkoz)
  • Do not specify "unit" for bool types to avoid KIP breakage (#939@joelkoz)
  • Fix deprecated volatile increment operator warnings (#854@dirkwa)
  • Fix UUID version 4 bits, ODR violations, LED pattern index bounds

Other

  • CI: Test compilation matrix, pull_request event triggers
  • Frontend correctness and type safety fixes
  • Replace deprecated AnalogInput with RepeatSensor in examples (#853@dirkwa)

Contributors

Thanks to @dirkwa and @joelkoz for their contributions to this release!