ruview @ v1609
integrity
- size
- 61.1 MiB
- downloaded
- last checked
release notes
Automated release from CI pipeline
Changes: fix(server): make synthetic CSI opt-in only (sibling fix to #937) (#979)
Background
Issue #937 in the cognitum-v0 appliance repo flagged that the
cognitum-csi-capture systemd unit shipped --simulate by default,
silently serving synthetic CSI tagged as production telemetry on
/api/v1/sensor/stream. That's a textbook trust-eroding pattern — the
single most-cited "where's the real data?" evidence external reviewers
(#943, #934) point at when they call the project AI-slop.
A grep across THIS tree surfaced the exact same anti-pattern in three places:
docker/docker-compose.yml:27 # auto (default) — probe ESP32, fall back to simulation docker/docker-entrypoint.sh:14 # CSI_SOURCE — data source: auto (default), ... main.rs:6435 info!("No hardware detected, using simulation"); "simulate"
The sensing-server's auto source resolver at main.rs:6425-6440
silently fell back to synthetic with only an info! log line as the
signal. Downstream consumers calling /api/v1/sensing/latest or
/ws/sensing had no in-band way to know they were being served fake
data.
Fix
auto now refuses to fall back. When neither ESP32 UDP nor host WiFi
is detected, the server logs a clear error! explaining the situation
and exits 78 (EX_CONFIG). The error message names the two ways to
proceed: provision real hardware, or set --source simulated /
CSI_SOURCE=simulated explicitly. Existing operators who already use
--source simulated (or its legacy simulate alias) are unaffected —
the alias is preserved for back-compat.
Docker entrypoint comment, docker-compose comment, and the Tauri
desktop app's source-default path also updated to reflect the new
posture. The desktop app keeps its simulated default because it's
an explicit demo product — the value passed downstream is the
explicit simulated, not auto, so the server tags it correctly
and never lies about its data source.
Validation
cargo build -p wifi-densepose-sensing-server --no-default-features cargo test -p wifi-densepose-sensing-server --no-default-features → 122 / 122 pass, build clean (existing pre-fix warnings unchanged).
Deployment
⚠ Breaking change for unattended deployments that relied on the
auto → simulated silent fallback. That is exactly the failure mode
this PR fixes: pretending to serve real sensing data when the source
is fake. Operators who genuinely want demo mode set
CSI_SOURCE=simulated explicitly; the error message and the
docker-compose comment both point them there.
Docker Image:
ghcr.io/ruvnet/RuView:b6420ac9bad9b0646891db460d8193a5f9dbdd21
download
curl -fL -o v1609.zip https://ratatoskr.space/pkg/ruview/v1609.zip
printf '%s %s\n' '7d847c12c045cde0ee6f0017be33b05faaca40ccbc964572afc3940462d4f321' 'v1609.zip' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1609.zip"
$out = "v1609.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "7d847c12c045cde0ee6f0017be33b05faaca40ccbc964572afc3940462d4f321") { throw "sha256 mismatch" }
curl -fL -o v1609.tar.gz https://ratatoskr.space/pkg/ruview/v1609.tar.gz
printf '%s %s\n' '5bc705699d40218c983e3ea473cddb77edf8e46198ca4c18004de4cf664c0495' 'v1609.tar.gz' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1609.tar.gz"
$out = "v1609.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "5bc705699d40218c983e3ea473cddb77edf8e46198ca4c18004de4cf664c0495") { throw "sha256 mismatch" }
download via yggdrasil mesh
curl -fL -o v1609.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1609.zip
printf '%s %s\n' '7d847c12c045cde0ee6f0017be33b05faaca40ccbc964572afc3940462d4f321' 'v1609.zip' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1609.zip"
$out = "v1609.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "7d847c12c045cde0ee6f0017be33b05faaca40ccbc964572afc3940462d4f321") { throw "sha256 mismatch" }
curl -fL -o v1609.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1609.tar.gz
printf '%s %s\n' '5bc705699d40218c983e3ea473cddb77edf8e46198ca4c18004de4cf664c0495' 'v1609.tar.gz' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1609.tar.gz"
$out = "v1609.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "5bc705699d40218c983e3ea473cddb77edf8e46198ca4c18004de4cf664c0495") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v1609.zip | zip | 61.1 MiB |
blake3-24 32da52cdbfa6fd2c5c94f22a0c8d3a5ac131a331a5c1005c
sha256 7d847c12c045cde0ee6f0017be33b05faaca40ccbc964572afc3940462d4f321
sha1 3e0825aeb9b7ea1fff9685dd4113dfb9617a29bf
|
| v1609.tar.gz | tar.gz | 59.3 MiB |
blake3-24 f9b28965b9febd7a78e64bb66aa8c20e13ed4e37dd144c15
sha256 5bc705699d40218c983e3ea473cddb77edf8e46198ca4c18004de4cf664c0495
sha1 78821d766a948bf8244a2e753ba4e5fd20625968
|
install
http_archive(
name = "ruview",
urls = ["https://ratatoskr.space/pkg/ruview/v1609.tar.gz"],
integrity = "sha256-W8cFaZ1AIYyYPj6kc83bd+345GGYykwYAE3kz2ZMBJU=",
strip_prefix = "ruview-v1609",
)
.url = "https://ratatoskr.space/pkg/ruview/v1609.tar.gz",
install via yggdrasil mesh
http_archive(
name = "ruview",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1609.tar.gz"],
integrity = "sha256-W8cFaZ1AIYyYPj6kc83bd+345GGYykwYAE3kz2ZMBJU=",
strip_prefix = "ruview-v1609",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1609.tar.gz",