ruview @ v3548
integrity
- size
- 61.7 MiB
- downloaded
- last checked
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)
- fix(pose-fusion): mark vendored ruvector-attention-wasm copy private
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
- fix(harness): bound @ruvnet/ruview-kernel peer range to ^0.1.0
">=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
- fix(mobile): refresh lockfile for npm audit advisories, raise axios floor
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
- fix(dashboard): vitest 5 + vite 8 to clear critical dev-tool advisories
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
- fix(rvagent): zod 4.6.7 and MCP SDK 1.32.2 to clear runtime advisories
@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
- fix(ruview-cli): refresh lockfile for dev-tool npm audit advisories
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
- chore(rvagent): 0.2.1
Publishes the zod / MCP SDK floor change so npm consumers stop resolving the vulnerable versions.
Co-Authored-By: claude-flow ruv@ruv.net
- chore(harness): refresh content manifest for the kernel peer range
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
curl -fL -o v3548.zip https://ratatoskr.space/pkg/ruview/v3548.zip
printf '%s %s\n' '2f1492b85f1a28767b83f96ee4dd68b1ac9ea3eb561ac95e4b9ac0b5f0602b0e' 'v3548.zip' | sha256sum -c -
$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" }
curl -fL -o v3548.tar.gz https://ratatoskr.space/pkg/ruview/v3548.tar.gz
printf '%s %s\n' '172830ca14c07a8d5e9a412b56a02c234d8bd23de66ed6a5a5f65df671a15ef9' 'v3548.tar.gz' | sha256sum -c -
$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
curl -fL -o v3548.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v3548.zip
printf '%s %s\n' '2f1492b85f1a28767b83f96ee4dd68b1ac9ea3eb561ac95e4b9ac0b5f0602b0e' 'v3548.zip' | sha256sum -c -
$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" }
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 -
$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
http_archive(
name = "ruview",
urls = ["https://ratatoskr.space/pkg/ruview/v3548.tar.gz"],
integrity = "sha256-FygwyhTAeo1emkErVqAsI02L0j3mbtalpfZd9nGhXvk=",
strip_prefix = "ruview-v3548",
)
.url = "https://ratatoskr.space/pkg/ruview/v3548.tar.gz",
install via yggdrasil mesh
http_archive(
name = "ruview",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v3548.tar.gz"],
integrity = "sha256-FygwyhTAeo1emkErVqAsI02L0j3mbtalpfZd9nGhXvk=",
strip_prefix = "ruview-v3548",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v3548.tar.gz",