Skip to content

Release v2235

Latest

Choose a tag to compare

@github-actions github-actions released this 11 Aug 23:59
de27336

What's in this release

This release is a batch of bug fixes from a review of the 10 most recent user-reported
issues, plus a follow-up that finishes wiring together the "trust layer" preview from the
last major release — closing the gap where the pieces existed and were tested, but
weren't actually connected to each other yet.

Bugs fixed

  • The UI could falsely claim a real ESP32 sensor was connected when it wasn't.
    A background check that asks the server "is this real hardware or a simulation?" was
    sending that request without the required login token. When the check failed for that
    reason, the UI defaulted to the most confident answer — "yes, it's live hardware" —
    instead of the honest "I don't know, showing simulated data." Now the check sends the
    token properly, so it gets a real answer instead of guessing wrong.

  • With more than one sensor in a room, the "is someone present" reading would flicker
    on and off dozens of times a second.
    The system was supposed to combine what all the
    sensors see into one confident answer, but a leftover shortcut meant the top-line
    reading was actually just "whatever the most recently arrived sensor said" — so if two
    sensors disagreed, the displayed answer flipped every time a new packet arrived from
    either one. Fixed by always using the properly combined answer.

  • In a Home Assistant smart-home setup with multiple sensors, every sensor's
    "present"/"not present" entity showed the exact same value
    — even though the sensors
    were in different rooms and genuinely saw different things. The code was looking for a
    piece of data under the wrong internal name, so it silently fell back to a single
    shared value for every sensor instead of each sensor's own reading. This is a subtle,
    interesting bug: there was already an automated test meant to catch exactly this kind
    of mistake, but the test itself used the same wrong internal name — so it always
    passed even though the real code was broken. Both the real bug and the flawed test
    are now fixed.

  • A demo page could silently show fake data as if it were live, if the page happened
    to be served from a slightly different network port than expected (a common situation
    when the usual port is already busy). The page would try to connect to the wrong
    address, fail quietly, and keep showing simulated numbers with no warning. It now
    figures out the right address automatically, and — more importantly — an earlier fix
    already made sure the page won't visually claim to be "live" unless a real data frame
    actually arrives, so even a wrong guess here can no longer mislead anyone.

  • On a fresh install with no trained model loaded, the pose-tracking dots on screen
    could be invisible
    even though the system had real coordinates for them. A confidence
    score was landing exactly on the cutoff value the display uses to decide "should I draw
    this or not," and ties lost. Nudged the score just past that line so it always draws.

  • A security setting for encrypting the connection to a smart-home message broker
    (MQTT) was accepted but silently ignored.
    If you pointed the app at your own
    certificate for a self-signed/home-network broker, it would still only trust
    public internet certificate authorities and fail to connect — with no indication that
    your setting had no effect. It's now actually applied, and if the certificate file
    can't be read for some reason, the log now says so clearly instead of just failing
    later with a confusing error.

  • A frozen sensor could keep reporting "I'm online and working" to Home Assistant
    forever
    , even after it had stopped sending any real data — because the
    "still alive" heartbeat and the actual data stream weren't checked against each other.
    A stuck sensor now correctly flips to "unavailable" within about 10 seconds of going
    quiet, instead of silently showing a stale reading as if it were current.

The "trust layer" is now actually wired together

The previous release introduced building blocks for a system that can say "here's my
answer, and proof it's trustworthy right now" instead of quietly guessing — but as
disclosed at the time, those building blocks weren't yet connected to each other. This
release connects them: the piece that detects "conditions have changed, I'm not
confident anymore" now has a real, working bridge into the piece that checks whether a
certificate of trust is still valid, which feeds into the piece that decides whether an
action is allowed. A test now proves the full chain works end-to-end with a real signed
certificate — not just three separate pieces each tested on their own.

Still not done: this trust chain still isn't automatically running inside the live
sensor server yet — it's a correctly-wired, tested toolkit a developer can use, not
something that watches your live sensors on its own yet. That remains a bigger,
separate project.

Also fixed

  • A published pre-trained model file can't be verified with the standard, official
    tool because of a small formatting mistake in how it was saved — flagged with the
    exact byte-level fix needed, and the outdated documentation claiming it works was
    corrected.
  • A structural check that can catch a broken "presence detector" AI model before it
    ships (added last release) is now actually run automatically whenever related code
    changes, so that specific safety net can't silently break without anyone noticing.

Verification

  • Full automated test suite: 4,391 tests passed, 0 failed.
  • Honesty note: the multi-sensor fixes above were verified with automated tests, not
    a live multi-sensor test rig — no real ESP32 hardware was reachable during this work
    session (it wasn't physically connected/available at the time).

Docker image

docker pull ghcr.io/ruvnet/RuView:de27336fa1db971d4689fd2db19610e8a7966dee