yggvault ratatoskr-space connected via regular web
Color theme
also available via yggdrasil mesh http://[203:b338:2a84:a18f:986:47ae:1a4:d8d3]/pkg/ruview/v3548
vault / ruview / v3548

ruview @ v3548

integrity

size
61.7 MiB
downloaded
last checked
source https://github.com/ruvnet/RuView · temporary_down

release notes

Source snapshot validated by the CI pipeline. This entry does not contain firmware bundles.

Changes: weaver: release-range fixes + npm audit (mobile, dashboard, rvagent, ruview-cli) (#2468)

ui/pose-fusion/pkg/ruvector-attention is a wasm-pack build of ruvector-attention-wasm vendored for the browser demo; the npm package is published from ruvnet/ruvector. The vendored manifest declared the same name without "private", so RuView looked like a second publisher of that name (release:name_collision). Marking it private means it can never be npm-published from this repo. Runtime is unchanged: the demo loads the files by relative path.

Co-Authored-By: claude-flow ruv@ruv.net

">=0.1.0" accepted any future major of the optional kernel peer (release:open_range). ^0.1.0 matches the 0.x line the bridge was written against; the ruview umbrella already pins kernel 0.1.0 exactly.

Co-Authored-By: claude-flow ruv@ruv.net

npm audit fix (no --force) on ui/mobile: critical 1 -> 0, high 20 -> 4 (prod tree: critical 1 -> 0, high 18 -> 4). Fixed include shell-quote (critical), axios, @react-navigation/core, ws, node-forge, form-data, js-yaml, lodash, nanoid, postcss, query-string and others. axios floor raised to ^1.21.0 so the manifest no longer admits the vulnerable range.

Left, and why: @expo/cli, @xmldom/xmldom and zod need expo 58 (a major, coupled to react-native); image-size sits under the nested metro 0.84.3 that RN/Expo pin, and its fix (2.0.3) changes the import shape metro uses. image-size is a bundler dependency, not shipped in the app.

Pre-existing on main and unchanged here: strict npm ci fails on the react 19.2.0 / react-dom 19.2.6 peer pair (install needs --legacy-peer-deps), jest cannot load the react-native 0.85 preset without @react-native/jest-preset, and tsc reports the same 5 errors.

Co-Authored-By: claude-flow ruv@ruv.net

dashboard's production tree was already audit-clean; every finding was in dev tooling. Critical: vitest (UI server file read/exec, mocker path traversal) and tinypool (prototype pollution to RCE), fixed only in vitest 5; vite <=6.4.3 high. npm audit: critical 2 -> 0, high 9 -> 0.

vite 8 (Rolldown) rejects the object form of manualChunks, so it becomes the equivalent function; the build emits the same chunk set (index, lit, signals, worker, css) and the same PWA precache.

Co-Authored-By: claude-flow ruv@ruv.net

@ruvnet/rvagent's published runtime admitted vulnerable versions: zod <4.6.6 (memory exhaustion validating oversized constrained collections, GHSA-mrhx-c7xc-m3w5; every tool call is parsed by zod) and @modelcontextprotocol/sdk <=1.31.0 with its express, body-parser, proxy-addr (critical) and hono chain. Floors raised to zod ^4.6.7 and sdk ^1.32.2; ts-jest's handlebars (critical) fixed via the lockfile. npm audit: critical 2 -> 0, high 9 -> 0 (prod: 1/6 -> 0/0).

zod 4 ships its own JSON Schema export, so zod-to-json-schema is dropped. The conversion moves to src/json-schema.ts with io "input" (defaulted fields stay optional) and an override that keeps plain objects closed, as zod-to-json-schema advertised them. The advertised tools/list schemas are unchanged apart from zod 4 adding a regex pattern next to format: uuid. z.record now takes an explicit key schema.

tests/dependency-floor.test.ts fails on main (the suite does not compile against zod 3) and passes here: installed and declared floors, closed objects, defaulted fields optional.

Co-Authored-By: claude-flow ruv@ruv.net

Production tree was already clean. npm audit fix (no --force) clears handlebars (critical, via ts-jest), brace-expansion, browserslist and js-yaml: critical 1 -> 0, high 3 -> 0.

Co-Authored-By: claude-flow ruv@ruv.net

Publishes the zod / MCP SDK floor change so npm consumers stop resolving the vulnerable versions.

Co-Authored-By: claude-flow ruv@ruv.net

The harness manifest pins a hash of package.json; regenerated with npm run manifest:update after the ^0.1.0 peer change.

Co-Authored-By: claude-flow ruv@ruv.net

Source commit: a913103052fb192da7bec69ee7d75b6afae51aa9

Container images publish separately through the sensing-server release workflow. Firmware downloads are attached to the dedicated vX.Y.Z-esp32 releases.

download

unix · zip
curl -fL -o v3548.zip https://ratatoskr.space/pkg/ruview/v3548.zip
                    printf '%s  %s\n' '2f1492b85f1a28767b83f96ee4dd68b1ac9ea3eb561ac95e4b9ac0b5f0602b0e' 'v3548.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/ruview/v3548.zip"
$out = "v3548.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "2f1492b85f1a28767b83f96ee4dd68b1ac9ea3eb561ac95e4b9ac0b5f0602b0e") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v3548.tar.gz https://ratatoskr.space/pkg/ruview/v3548.tar.gz
                    printf '%s  %s\n' '172830ca14c07a8d5e9a412b56a02c234d8bd23de66ed6a5a5f65df671a15ef9' 'v3548.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/ruview/v3548.tar.gz"
$out = "v3548.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "172830ca14c07a8d5e9a412b56a02c234d8bd23de66ed6a5a5f65df671a15ef9") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v3548.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v3548.zip
                    printf '%s  %s\n' '2f1492b85f1a28767b83f96ee4dd68b1ac9ea3eb561ac95e4b9ac0b5f0602b0e' 'v3548.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v3548.zip"
$out = "v3548.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "2f1492b85f1a28767b83f96ee4dd68b1ac9ea3eb561ac95e4b9ac0b5f0602b0e") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v3548.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v3548.tar.gz
                    printf '%s  %s\n' '172830ca14c07a8d5e9a412b56a02c234d8bd23de66ed6a5a5f65df671a15ef9' 'v3548.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v3548.tar.gz"
$out = "v3548.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "172830ca14c07a8d5e9a412b56a02c234d8bd23de66ed6a5a5f65df671a15ef9") { throw "sha256 mismatch" }
artifact format size hashes
v3548.zip zip 61.9 MiB
blake3-24 0db4b512630c475f2e6cd18ee9832f86562140b8b8937bc6
sha256 2f1492b85f1a28767b83f96ee4dd68b1ac9ea3eb561ac95e4b9ac0b5f0602b0e
sha1 08b354a9fedd94b988906f1e2d8fddbfb8e340fa
v3548.tar.gz tar.gz 59.5 MiB
blake3-24 c890322ee16d59fce702a3b520e0643d18790d0ef494d54f
sha256 172830ca14c07a8d5e9a412b56a02c234d8bd23de66ed6a5a5f65df671a15ef9
sha1 16cae3a576850c557fab9370033e6f8fdefb06fb

install

bazel
http_archive(
    name = "ruview",
    urls = ["https://ratatoskr.space/pkg/ruview/v3548.tar.gz"],
    integrity = "sha256-FygwyhTAeo1emkErVqAsI02L0j3mbtalpfZd9nGhXvk=",
    strip_prefix = "ruview-v3548",
)
zig
.url = "https://ratatoskr.space/pkg/ruview/v3548.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
    name = "ruview",
    urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v3548.tar.gz"],
    integrity = "sha256-FygwyhTAeo1emkErVqAsI02L0j3mbtalpfZd9nGhXvk=",
    strip_prefix = "ruview-v3548",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v3548.tar.gz",
v3446 →