• v3066 0ef6b96fe1

    Release v3066 Stable

    dean released this 2026-10-06 11:25:36 -05:00 | 33 commits to main since this release

    📅 Originally published on GitHub: Tue, 06 Oct 2026 16:44:43 GMT
    🏷️ Git tag created: Tue, 06 Oct 2026 16:25:36 GMT

    Automated release from CI pipeline

    Changes:
    docs: focus animation on RuView sensing and spatial awareness

    Docker Image:
    ghcr.io/ruvnet/RuView:2d5472372f638928219d938029dfca4f86e9700f

    Downloads
  • v3065 0ef6b96fe1

    Release v3065 Stable

    dean released this 2026-10-06 11:25:36 -05:00 | 33 commits to main since this release

    📅 Originally published on GitHub: Tue, 06 Oct 2026 16:40:22 GMT
    🏷️ Git tag created: Tue, 06 Oct 2026 16:25:36 GMT

    Automated release from CI pipeline

    Changes:
    docs: add ruOS animation below RuView header

    Docker Image:
    ghcr.io/ruvnet/RuView:efdf97ecc1cc0aea73ea7de6b9efad18520a4e24

    Downloads
  • v3064 0ef6b96fe1

    Release v3064 Stable

    dean released this 2026-10-06 11:25:36 -05:00 | 33 commits to main since this release

    📅 Originally published on GitHub: Tue, 06 Oct 2026 16:37:55 GMT
    🏷️ Git tag created: Tue, 06 Oct 2026 16:25:36 GMT

    Automated release from CI pipeline

    Changes:
    docs: upload Ruflo-powered ruOS desktop animation

    Docker Image:
    ghcr.io/ruvnet/RuView:46d80ffc3a6a1159337534f876a5bcc398f27610

    Downloads
  • v3067 0ef6b96fe1

    Release v3067 Stable

    dean released this 2026-10-06 11:25:36 -05:00 | 33 commits to main since this release

    📅 Originally published on GitHub: Tue, 06 Oct 2026 16:45:19 GMT
    🏷️ Git tag created: Tue, 06 Oct 2026 16:25:36 GMT

    Automated release from CI pipeline

    Changes:
    docs: describe RuView-focused README animation

    Docker Image:
    ghcr.io/ruvnet/RuView:0ef6b96fe15e30b4a086992e47e18081a0ba37ce

    Downloads
  • v3060 0b15c0ebc9

    dean released this 2026-10-05 15:52:42 -05:00 | 37 commits to main since this release

    📅 Originally published on GitHub: Mon, 05 Oct 2026 22:25:06 GMT
    🏷️ Git tag created: Mon, 05 Oct 2026 20:52:42 GMT

    What's new, in plain language

    This release folds in a large batch of fixes and improvements contributed by @aepod (Mathew): 38 pull requests, reviewed together, tested together, and shipped as one. Most of it makes RuView more honest about what it is actually doing and safer by default.

    If you run the sensing server

    • It no longer shows "connected" when nothing is connected. The status page waits for a real frame from a device. If frames stop, it says so, and /api/v1/sensing/latest reports stale after 10 seconds instead of showing the last reading forever.
    • Real numbers instead of placeholders. Frame rate and the number of connected WebSocket viewers are now measured, not fixed values.
    • A node that is not there no longer counts as one person.
    • Privacy mode now covers everything. --privacy-mode removes heart rate, breathing rate and pose from the web API, WebSocket and saved recordings, not just MQTT. (Presence, motion and person count are still shown. States that are derived from vitals, such as "someone sleeping", still pass through.)
    • Safer startup. If you open the server to your network without an API token, it now refuses to start instead of silently exposing it.
    • Recordings and models stay in --data-dir. Previously some went to a hard-coded folder.
    • Environment switches are friendlier. RUVIEW_UDP_INSECURE_LAN=1, yes or on all work, not only true.
    • Fewer wrongly dropped frames. The server now locks onto the most common frame shape. This is a partial fix: if one node alternates between two frame sizes, a large share of its frames can still be dropped. Tracked in the follow-up issue.

    If you use Docker or a Mac

    • The Docker image makes clear when it can and cannot receive ESP32 data, instead of failing silently.
    • On macOS, a redacted Wi-Fi link is now handled without inventing a network name.
    • Breaking change: --source macos, --source linux and --source windows are no longer accepted and now exit with an error. Use auto, esp32, wifi, mediatek, qualcomm, realtek or simulated.

    If you set up ESP32 nodes

    • Your Wi-Fi password is kept private. It is no longer shown on the command line or in --state output, and saved settings are readable only by you. (On Windows these file protections do not apply.)
    • Settings follow the board, not the USB port. Swapping boards on the same port no longer applies the wrong node ID.
    • --dry-run and a failed --reset no longer overwrite your saved settings.
    • Safer firmware updates. A new over-the-air image is only confirmed once the node has reached the network and sent CSI. If not, the node rolls back. Note this means "it came up and talked", not "it is working well".

    New hardware support: MediaTek routers

    Early support for reading Wi-Fi channel data from MediaTek MT7981 routers (such as the WN586X3), with a setup guide. This is experimental: it has been tested against one real capture, and the activity score it produces is a labelled rough guess, not a measurement of people.

    Home Assistant and MQTT

    • Home Assistant now only gets entities that actually receive data (15 per node).
    • Device IDs are stable across restarts.
    • Heads-up: installs that already ran the older version keep six old entities until you delete them in Home Assistant.

    Training and labelling (for developers)

    • Training now uses your real recordings, per node. If it ever has to fall back to live data, the result is marked degraded instead of quietly looking successful.
    • New radar-based auto-labelling tools. Labels from radar are tagged as unverified, not ground truth.
    • A node self-survey that checks your configured node positions (it never changes them), and a new way to export what RuView "sees" in a room.
    • A plain bug fix: the signal "decay" no longer changed depending on how often it ran.

    Small but useful

    • scripts/prove.sh now says INCOMPLETE instead of PASS when it skipped part of the proof.
    • The dashboard asks for your API token instead of retrying forever.
    • A weak 41.5%-accuracy sample model was removed from the repository, so it can no longer load automatically on startup.

    What is not in this release

    • MR60 radar detection change (#2142) is held until it is checked against a real MR60BHA2 radar.
    • MacWifi.app (#2106) is still a draft.

    How much to trust the numbers

    We label evidence in this project. For this release:

    • The test suites pass on the combined code, and CI is green. That is MEASURED.
    • Hardware results quoted in the individual pull requests (for example one node going from 17.6% to 88.5% of frames used) come from the contributor's own live runs and have not been independently reproduced. Treat them as CLAIMED.
    • WiFi sensing is not camera-grade. Nothing here changes that.

    Credit

    Thank you to @aepod for the 38 pull requests and the unusually careful issue write-ups behind them.

    Full details, conflict notes and review findings: PR #2163. Remaining work and open questions: issue #2165.

    Downloads
  • v3037 7c8aeacea2

    Release v3037 Stable

    dean released this 2026-10-04 08:07:58 -05:00 | 129 commits to main since this release

    📅 Originally published on GitHub: Sun, 04 Oct 2026 13:30:52 GMT
    🏷️ Git tag created: Sun, 04 Oct 2026 13:07:58 GMT

    Automated release from CI pipeline

    Changes:
    Merge pull request #2147 from ruvnet/codex/calibrated-vitals-empty-20261004

    fix(sensing): gate vital outputs on fresh calibrated occupancy

    Docker Image:
    ghcr.io/ruvnet/RuView:7c8aeacea2ad30972070196eb7d8e7200506b742

    Downloads
  • dean released this 2026-10-01 19:53:26 -05:00 | 131 commits to main since this release

    📅 Originally published on GitHub: Fri, 02 Oct 2026 00:53:39 GMT
    🏷️ Git tag created: Fri, 02 Oct 2026 00:53:26 GMT

    RuView npm toolkit 0.9.1: watch your sensors live inside Claude Code

    npx @ruvnet/ruview@0.9.1 doctor      # what works on this machine, and how to fix what doesn't
    

    What's new

    See your sensors live in Claude Code. The package now includes ruview-live, a Claude Code mod. Type /ruview and a pane opens next to the conversation. It refreshes by itself and has three views:

    Key View What you see
    1 Overview The Wi-Fi sensing nodes streaming to your computer (frames per second, packet loss, signal strength) and an optional 60 GHz radar kit (presence, distance, heart and breathing rates)
    2 CSI waterfall The Wi-Fi signal itself: the strength of every subcarrier over time, in colour, scrolling as frames arrive
    3 Radar A top-down range fan with an animated ping out to the measured distance, plus heart, breathing and distance charts

    Switch views with the keys while the pane has the keyboard, or with /ruview overview, /ruview waterfall and /ruview radar at any time.

    New: ruview esp32 --spectrum. It adds the latest per-subcarrier amplitude frames for each node to a capture. This is what feeds the waterfall, and you can use it from scripts too.

    Also in this line (0.8–0.9):

    • a console widget for ChatGPT and other MCP apps;
    • an authenticated HTTP option for the MCP server;
    • reading ESPHome 60 GHz radar kits over Wi-Fi;
    • a friendlier terminal display;
    • the ruview umbrella command, covering the toolkit, Homecore and the compute kernel (in the repo; see Upgrading).

    Honest by design

    • The waterfall says MEASURED (real frames received on your machine) or SYNTHETIC (simulator frames), taken from the packets themselves.
    • Radar heart and breathing values are labelled device-reported, not validated. Values outside normal resting ranges are flagged.
    • The radar kit reports distance, not direction, and the view says so.
    • If a node goes quiet, its old picture is removed, not kept on screen as "live".
    • The pane only reads. It never flashes, provisions or changes a device.

    Tested on real hardware (MEASURED)

    • ESP32-C6 running RuView firmware v0.7.0: streamed 7–18 CSI frames per second to the host. The waterfall showed the occupied Wi-Fi band and the unused edge subcarriers. Reproduce: npx @ruvnet/ruview@0.9.1 esp32 --seconds 4 --spectrum --json.
    • Seeed MR60BHA2 60 GHz radar kit over ESPHome: presence, distance, and device-reported vitals.
    • Tests: 193 unit tests, 91 security tests, and 4 Claude Code engine tests pass. The mod passes claude plugin validate.

    Try the live pane

    npx @ruvnet/ruview@0.9.1 mod                  # prints where the mod is and how to load it
    claude --plugin-dir "<path printed above>"
    

    Mods are early access in Claude Code. If /ruview is missing, start Claude Code with CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1.

    Upgrading

    • No runtime dependencies, as before. The unpacked size ceiling rises from 384 KiB to 448 KiB for the new views.
    • The harness command is ruview-harness. The ruview umbrella package (one ruview command) is in the repo under harness/ruview-umbrella, but it isn't on npm yet: the unscoped ruview name is waiting on an npm name request.

    Details: issue #2074 · pull requests #2062 and #2073 · design records ADR-377 (the mod) and ADR-378 (the waterfall and radar views).

    Downloads
  • v2975 03a897938f

    Release v2975 Stable

    dean released this 2026-10-01 19:53:26 -05:00 | 131 commits to main since this release

    📅 Originally published on GitHub: Fri, 02 Oct 2026 01:17:17 GMT
    🏷️ Git tag created: Fri, 02 Oct 2026 00:53:26 GMT

    Automated release from CI pipeline

    Changes:
    Merge pull request #2062 from ruvnet/claude/ruview-npm-package-9uc5x3

    feat(npm): RuView npm toolkit @ruvnet/ruview 0.9.1 — kernel, SDK, flashing, device access, MCP Apps, live Claude Code views (ADR-368..378)

    Docker Image:
    ghcr.io/ruvnet/RuView:03a897938f65c1215d4612e9a7d800645d27d869

    Downloads
  • v2940 b90b592d4f

    Release v2940 Stable

    dean released this 2026-09-30 09:20:41 -05:00 | 158 commits to main since this release

    📅 Originally published on GitHub: Wed, 30 Sep 2026 14:53:17 GMT
    🏷️ Git tag created: Wed, 30 Sep 2026 14:20:41 GMT

    Automated release from CI pipeline

    Changes:
    fix(vitals): reject respiratory peaks and cap filtered confidence (#2061)

    Docker Image:
    ghcr.io/ruvnet/RuView:b90b592d4f08c5c47d47f8c5d4d822b9fb3cbe0a

    Downloads
  • v2938 e1fbbede61

    Release v2938 Stable

    dean released this 2026-09-30 08:25:20 -05:00 | 159 commits to main since this release

    📅 Originally published on GitHub: Wed, 30 Sep 2026 13:43:04 GMT
    🏷️ Git tag created: Wed, 30 Sep 2026 13:25:20 GMT

    Automated release from CI pipeline

    Changes:
    fix(sensing): exclude stale nodes from room occupancy (#2060)

    Docker Image:
    ghcr.io/ruvnet/RuView:e1fbbede61b70ac335e3a885cb0ece6863e9da95

    Downloads