@ruvnet/ruview 0.7.0 gives CLI, MCP, and SDK access to RuView sensing hardware on the machine it is attached to, and to other machines over SSH. Devices (ADR-373, src/devices/): - ruview_devices_scan: pyserial port list classified by USB VID:PID (Espressif native USB, CP210x, CH34x, FTDI) into ESP32 / mmWave / RPLIDAR roles with the command that confirms each. - ruview_esp32_capture: receive-only UDP listener parsing ADR-018 CSI frames, vitals, and the other 0xC511000x packets per node: rate, sequence loss, RSSI, subcarriers, frequency, device vitals. - ruview_mmwave_read: MR60BHA2 (60 GHz) and LD2410 (24 GHz) parsers ported byte-for-byte from firmware mmwave_sensor.c; baud/frame auto-detect. - ruview_lidar_read: RPLIDAR SCAN over serial (start/stop, DTR best-effort) and the iPhone LiDAR relay as a WebSocket client (token only via RUVIEW_LIDAR_TOKEN; statistics only, never raw depth). - Dependency-free serial via a fixed pyserial pump (argv-only, bounded, hex output immune to secret redaction). Schema-level port pattern validation added to the policy validator. - All device tools require the new `device-access` MCP grant. Remote hosts (ADR-374, src/remote.js): - ~/.config/ruview/hosts.json (0600), CLI-only `hosts add`; strict name/target validation against ssh option and shell injection. - `ssh -o BatchMode=yes -o StrictHostKeyChecking=yes -- <target>` running a version-pinned `ruview call <tool> --read-only`, every token single-quoted; read-only enforced locally and remotely; no mutations, credentialed reads, or host hopping. MCP needs `remote-host` plus the remote tool's grant. Also: device-access skill, doctor `devices`/`remote` groups, SDK `devices.*`/`hosts.*` with types, generic `ruview call` verb, guidance capability, 320 KiB package budget, CI smoke expects 22 tools. Co-Authored-By: claude-flow <ruv@ruv.net> Claude-Session: https://claude.ai/code/session_015H55jmprfz4oHWXSFbX5rf
2.4 KiB
RuView harness — agent operating notes
You are operating RuView (WiFi-DensePose), a camera-free WiFi-CSI sensing system.
The one rule: prove everything
This project was accused of AI-slop; the fix is hard discipline. Before you quote ANY accuracy number:
- It must be tagged MEASURED (with a reproducer named), CLAIMED, or SYNTHETIC.
- Pose PCK is quoted only as a delta over the mean-pose baseline on a leakage-free held-out split; that baseline can otherwise make an unusable model look strong.
- Run
ruview_claim_checkon any report/PR/model-card. It flags untagged numbers and the project's retracted perfect-accuracy framing. - Firmware is "hardware-validated" only with a captured boot log on real silicon — never on a build-passes signal.
Tools
ruview_onboard, ruview_claim_check, ruview_verify, ruview_node_monitor,
ruview_calibrate, ruview_node_flash, ruview_guidance,
ruview_spaces_list, ruview_memory_search, ruview_kernel_selftest,
ruview_doctor, ruview_firmware_plan, ruview_firmware_ports,
ruview_train, ruview_train_plan, ruview_train_gate,
ruview_devices_scan, ruview_esp32_capture, ruview_mmwave_read,
ruview_lidar_read, ruview_host_list, ruview_host_run. Device tools need
the device-access MCP grant; remote hosts need remote-host. Start
unfamiliar work with
ruview_guidance; its
capability status, source paths, validation commands, and limitations are
navigation evidence, not authority. All tools fail closed. Mutating/hardware
tools (node_flash) require explicit confirmation and are Windows/ESP-IDF
gated.
ruview_spaces_list is an OAuth-only external read for the eight versioned
hierarchy/event/alert collections. MCP calls require the
credential-use grant, cannot select a credential path or API origin, and may
rotate the local refresh credential. It requires an installed binary and never
runs Cargo from an auto-detected checkout. Cursors are opaque and collection-
bound. It grants no write or action authority.
Skills
onboard · provision-node · calibrate-room · train-pose · verify · cognitum-spaces
(npx @ruvnet/ruview skill <name>).
Don'ts
- Don't present WiFi sensing as camera-grade.
- Don't echo or commit WiFi passwords / secrets.
- Don't merge or release firmware without a real boot log.
- Don't report a PCK without its mean-pose baseline.