Skip to content

v0.16.1 — review fixes: pump interlock, schedule race, DP126, key masking, card offline state

Choose a tag to compare

@Hovborg Hovborg released this 01 Jul 22:24

[0.16.1] - 2026-07-02

Fixes from a full adversarially-verified code review (28 findings; the
correctness/safety ones land here).

Fixed

  • Pump auto mode now keys on chlorine production (DP103), not master power
    (DP104)
    , and keeps the pump running for 1 hour after production stops
    (after-run flush per the manual) instead of cutting it immediately. With
    master power deliberately left on 24/7, the old logic would have run the
    pump constantly.
  • Schedule edits no longer overwrite each other: writes are serialized and
    the just-written slots are published optimistically, so a second edit inside
    the cloud's settle window no longer builds on the stale blob and silently
    undoes the first edit.
  • Pump mesh status (DP126) polarity: the wire value is inverted
    (1 = link down); the binary sensor now reports proper connectivity
    semantics (on = connected) with the connectivity device class.
  • Self-clean cycle select now offers the full documented range: the legal
    8 h setting was missing, and a device set to 8 h showed an empty select.
  • Card: no more false green "OK" — when the chlorinator's entities are
    unavailable (device offline) the status pill now shows a grey "Offline"
    instead of a reassuring OK (this hid a real 4-day outage).
  • Stale card bundle: the built frontend JS is regenerated as part of the
    release again (0.16.0 shipped a 0.15.0 bundle).

Security

  • The Tuya local key is now masked (password field) in the manual
    salt/pump setup, reconfigure and reauth forms, and stored secrets
    (local_key / access_secret) are no longer embedded as suggested values
    in reconfigure forms sent to the frontend.