ruview @ v1339
integrity
- size
- 60.0 MiB
- downloaded
- last checked
release notes
Automated release from CI pipeline
Changes: feat(adr-125 iter 2): real C6 feature_state UDP → HAP characteristic
scripts/c6-presence-watcher.py parses the 60-byte rv_feature_state_t struct (RV_FEATURE_STATE_MAGIC = 0xC5110006) emitted by firmware/esp32-csi-node/main/rv_feature_state.[ch] at 1-10 Hz from the real ESP32-C6 on ruv.net, validates the IEEE CRC32 over bytes [0..end-4], gates on RV_QFLAG_PRESENCE_VALID, applies hysteresis (entry 0.40 / release 0.20) plus a 5 s idle-release fallback, and toggles /tmp/ruview-motion — the same touch-file contract that the already-paired HAP bridge consumes.
E2E validated against real hardware (no mocks, no simulation): C6 (192.168.1.179, ch 5, RSSI -38) └─ UDP/5005 → mac-mini (192.168.1.166) └─ c6-presence-watcher.py (pid 8276) └─ /tmp/ruview-motion └─ hap-test-sensor.py (pid 84602) └─ HAP-1.1 over mDNS └─ iPhone Home app: RuView Test Motion = True
10 s sample: pkts=63 valid=51 crc_bad=0 motion -> True
Iter 3 next: insert wifi-densepose-bfld PrivacyGate between the UDP parse and the threshold so only class-2/3 frames cross the HAP boundary (ADR-118 §2.2 invariant I1 holds at the HomeKit edge — ADR-125 §2.1.d).
Refs ADR-125, ADR-118, ADR-081.
Co-Authored-By: claude-flow ruv@ruv.net
Docker Image:
ghcr.io/ruvnet/RuView:1f13aa96c2261308a2f2b7a5ca7d9f3620284e67
download
curl -fL -o v1339.zip https://ratatoskr.space/pkg/ruview/v1339.zip
printf '%s %s\n' 'cf578f304b3d0a5ab05a358d9a977d1517620c3fc4f948313e9efe8a63c96f1b' 'v1339.zip' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1339.zip"
$out = "v1339.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "cf578f304b3d0a5ab05a358d9a977d1517620c3fc4f948313e9efe8a63c96f1b") { throw "sha256 mismatch" }
curl -fL -o v1339.tar.gz https://ratatoskr.space/pkg/ruview/v1339.tar.gz
printf '%s %s\n' '0cc6846276e4644a424453dd09431122f930d17d01cbb5792679f89b9e5ef552' 'v1339.tar.gz' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1339.tar.gz"
$out = "v1339.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "0cc6846276e4644a424453dd09431122f930d17d01cbb5792679f89b9e5ef552") { throw "sha256 mismatch" }
download via yggdrasil mesh
curl -fL -o v1339.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1339.zip
printf '%s %s\n' 'cf578f304b3d0a5ab05a358d9a977d1517620c3fc4f948313e9efe8a63c96f1b' 'v1339.zip' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1339.zip"
$out = "v1339.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "cf578f304b3d0a5ab05a358d9a977d1517620c3fc4f948313e9efe8a63c96f1b") { throw "sha256 mismatch" }
curl -fL -o v1339.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1339.tar.gz
printf '%s %s\n' '0cc6846276e4644a424453dd09431122f930d17d01cbb5792679f89b9e5ef552' 'v1339.tar.gz' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1339.tar.gz"
$out = "v1339.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "0cc6846276e4644a424453dd09431122f930d17d01cbb5792679f89b9e5ef552") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v1339.zip | zip | 60.0 MiB |
blake3-24 4cc7d8993a1c08198a2b7cf38cf0968219b0e7995a6cebbd
sha256 cf578f304b3d0a5ab05a358d9a977d1517620c3fc4f948313e9efe8a63c96f1b
sha1 05f27e32ce62703eb8655ce4927513f101c60769
|
| v1339.tar.gz | tar.gz | 58.4 MiB |
blake3-24 90357bdc3f458fed1c7333b52c5903915094fed59b9d1680
sha256 0cc6846276e4644a424453dd09431122f930d17d01cbb5792679f89b9e5ef552
sha1 e3f918380e2a2a1334cf9f7deafa7f7f09c405ac
|
install
http_archive(
name = "ruview",
urls = ["https://ratatoskr.space/pkg/ruview/v1339.tar.gz"],
integrity = "sha256-DMaEYnbkZEpCRFPdCUMRIvkw0X0By7V5Jnn4m55e9VI=",
strip_prefix = "ruview-v1339",
)
.url = "https://ratatoskr.space/pkg/ruview/v1339.tar.gz",
install via yggdrasil mesh
http_archive(
name = "ruview",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1339.tar.gz"],
integrity = "sha256-DMaEYnbkZEpCRFPdCUMRIvkw0X0By7V5Jnn4m55e9VI=",
strip_prefix = "ruview-v1339",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1339.tar.gz",