Files
ruvnet--RuView/v2/crates/wifi-densepose-worldmodel/src/error.rs
T
rUv c7ddb2d7d1 feat(worldmodel): ADR-147 — OccWorld world model integration, wifi-densepose-worldmodel v0.3.0 (#856)
* feat(worldmodel): ADR-147 — OccWorld integration, wifi-densepose-worldmodel v0.3.0 (#854)

- New crate `wifi-densepose-worldmodel` v0.3.0: async Unix-socket bridge
  to OccWorld Python inference server; `OccWorldBridge`, `OccupancyGrid3D`,
  `TrajectoryPrior`, `worldgraph_to_occupancy` encoder (14/14 tests pass)
- `scripts/occworld_server.py`: long-lived Python inference server for
  OccWorld TransVQVAE (72.4M params); applies API-bug patches; dummy mode
  for CI testing; graceful SIGTERM shutdown
- `pose_tracker.rs`: `trajectory_prior` soft-blend injection (80/20
  Kalman/prior) on torso keypoint; `set_trajectory_prior()` public method
- CI: added `Run ADR-147 worldmodel tests` step
- ADR-147: accepted — OccWorld primary (209 ms, 3.37 GB VRAM, RTX 5080);
  Cosmos deferred to ADR-148 (32.54 GB VRAM exceeds hardware)
- Benchmark proof: 208.7 ms P50, 3.37 GB peak VRAM, 12.1 GB headroom

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

* chore: update ruvector.db state

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

* chore: ruvector.db sync

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

* fix(cli): add missing min_frames field to CalibrateArgs test helper

E0063 in calibrate.rs:448 — CalibrateArgs gained min_frames in ADR-135
but the default_args() test helper was not updated. min_frames=0 means
'use tier default', matching the existing runtime behaviour.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-29 16:53:51 -04:00

41 lines
1.5 KiB
Rust

//! Error types for the OccWorld world-model bridge (ADR-147).
use thiserror::Error;
/// All errors that can be returned by the OccWorld bridge.
#[derive(Debug, Error)]
pub enum WorldModelError {
/// Could not connect to the Unix-domain socket served by the Python
/// OccWorld inference process.
#[error("could not connect to OccWorld socket at `{path}`: {source}")]
SocketConnect {
/// The socket path that was attempted.
path: String,
/// The underlying I/O error.
source: std::io::Error,
},
/// A request or response exceeded the 30-second wall-clock deadline.
#[error("OccWorld inference timed out after {timeout_s}s")]
Timeout {
/// The configured timeout in seconds.
timeout_s: u64,
},
/// The JSON payload received from the server could not be decoded, or the
/// payload we tried to send could not be encoded.
#[error("JSON (de)serialisation error: {0}")]
SerdeJson(#[from] serde_json::Error),
/// The server sent a response that violates the newline-delimited JSON
/// protocol (e.g. an unexpected EOF before the newline delimiter, or an
/// oversized frame that exceeded the read buffer limit).
#[error("protocol error: {0}")]
Protocol(String),
/// The OccWorld inference server reported that GPU VRAM is unavailable
/// (out-of-memory condition on the device side).
#[error("OccWorld server reports VRAM unavailable: {0}")]
VramUnavailable(String),
}