ruview @ v1160
integrity
- size
- 57.4 MiB
- downloaded
- last checked
release notes
Automated release from CI pipeline
Changes: fix(ui): unbreak viz.html — OrbitControls importmap, WS URL, toast NPE (#760) (#773)
- fix(ui): unbreak viz.html — OrbitControls importmap, WS URL, toast NPE (#760)
Three independent bugs were stacking to make ui/viz.html unusable from main:
-
Three.js r160 removed
examples/js/OrbitControls.js, so the script-tag load 404'd andnew THREE.OrbitControls(...)threw. Switch to an importmap that pulls the ES module build, then re-exposewindow.THREEandTHREE.OrbitControlsso the existing component modules (scene.js, body-model.js, …) keep working without a wider refactor. -
The WebSocket client was hardcoded to
ws://localhost:8000/ws/pose, but the sensing-server listens on--ws-port(8765 default, 3001 in the Docker image) at/ws/sensing. Reuse the existingbuildSensingWsUrl()helper fromsensing.service.jsso port pairings are handled centrally, and add a?ws=…query-string override for non-standard setups. The websocket-client.js default is also updated to derive fromwindow.locationinstead of the dead:8000/ws/poseliteral. -
ToastManager.show()calledthis.container.appendChild(...)even wheninit()had never been called, throwing a TypeError that killed the rest of page initialization. Auto-init the container lazily on first show (patch from issue reporter).
Closes #760.
Co-Authored-By: claude-flow ruv@ruv.net
- fix(ui): single module script + mutable THREE — OrbitControls validated
Browser validation against the previous commit caught two stacked issues:
-
import * as THREE from 'three'returns a frozen Module Namespace Object — assignmentTHREE.OrbitControls = OrbitControlssilently no-ops, so the global never gets the OrbitControls reference. -
Two separate
<script type="module">blocks (one installing the THREE global, one consuming it via Scene) are independently async-resolved. The second can finish dependency loading first and callnew THREE.OrbitControls(...)before the first script has run.
Fixed by spreading the namespace into a plain mutable object and merging
all initialization into a single module script with await import() for
component modules. Order is now strictly: import THREE → install
window.THREE → import components → run init().
Validated via agent-browser: page logs [VIZ] Initialization complete,
WebSocket targets the correct ws://127.0.0.1:3001/ws/sensing endpoint
(derived from buildSensingWsUrl), toast lazy-init confirmed via eval.
Co-Authored-By: claude-flow ruv@ruv.net
Docker Image:
ghcr.io/ruvnet/RuView:5d544126ee1a6141535cd1e6e6fe89f8213aaafb
download
curl -fL -o v1160.zip https://ratatoskr.space/pkg/ruview/v1160.zip
printf '%s %s\n' '526141cafd8175cddb3586a8be21a6dd679a06993afdfce2a16385a755285e27' 'v1160.zip' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1160.zip"
$out = "v1160.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "526141cafd8175cddb3586a8be21a6dd679a06993afdfce2a16385a755285e27") { throw "sha256 mismatch" }
curl -fL -o v1160.tar.gz https://ratatoskr.space/pkg/ruview/v1160.tar.gz
printf '%s %s\n' 'c57994d4c339ff871b3fea57a238d03b13f6c1d7b85e9501265eeab3c64b156d' 'v1160.tar.gz' | sha256sum -c -
$url = "https://ratatoskr.space/pkg/ruview/v1160.tar.gz"
$out = "v1160.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "c57994d4c339ff871b3fea57a238d03b13f6c1d7b85e9501265eeab3c64b156d") { throw "sha256 mismatch" }
download via yggdrasil mesh
curl -fL -o v1160.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1160.zip
printf '%s %s\n' '526141cafd8175cddb3586a8be21a6dd679a06993afdfce2a16385a755285e27' 'v1160.zip' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1160.zip"
$out = "v1160.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "526141cafd8175cddb3586a8be21a6dd679a06993afdfce2a16385a755285e27") { throw "sha256 mismatch" }
curl -fL -o v1160.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1160.tar.gz
printf '%s %s\n' 'c57994d4c339ff871b3fea57a238d03b13f6c1d7b85e9501265eeab3c64b156d' 'v1160.tar.gz' | sha256sum -c -
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1160.tar.gz"
$out = "v1160.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "c57994d4c339ff871b3fea57a238d03b13f6c1d7b85e9501265eeab3c64b156d") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v1160.zip | zip | 57.4 MiB |
blake3-24 8cde3521958b4bc3acfdaa1086f478c35cf8663148de0c4c
sha256 526141cafd8175cddb3586a8be21a6dd679a06993afdfce2a16385a755285e27
sha1 cb0b3c1c2cf468c3ee749f62a4e224767912401f
|
| v1160.tar.gz | tar.gz | 55.9 MiB |
blake3-24 af569e363ed6fce741cf4bdc0460432e1e519b2de6d0cfdf
sha256 c57994d4c339ff871b3fea57a238d03b13f6c1d7b85e9501265eeab3c64b156d
sha1 8def7a3ff78f867cd69e9e0a4c61e233cfc4c65d
|
install
http_archive(
name = "ruview",
urls = ["https://ratatoskr.space/pkg/ruview/v1160.tar.gz"],
integrity = "sha256-xXmU1MM5/4cbP+pXojjQOxP2wde4XpUBJl7qs8ZLFW0=",
strip_prefix = "ruview-v1160",
)
.url = "https://ratatoskr.space/pkg/ruview/v1160.tar.gz",
install via yggdrasil mesh
http_archive(
name = "ruview",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1160.tar.gz"],
integrity = "sha256-xXmU1MM5/4cbP+pXojjQOxP2wde4XpUBJl7qs8ZLFW0=",
strip_prefix = "ruview-v1160",
)
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/ruview/v1160.tar.gz",