Skip to content

Record canonical hosted and WebXR teleop values end to end - #4710

Closed
TomCC7 wants to merge 2 commits into
cc/feat/cdr-hosted-go2from
cc/feat/cdr-teleop-recording
Closed

TomCC7 wants to merge 2 commits into
cc/feat/cdr-hosted-go2from
cc/feat/cdr-teleop-recording

Conversation

@TomCC7

@TomCC7 TomCC7 commented Oct 20, 2026

Copy link
Copy Markdown
Member

Hosted stats, teleop recording and offline reports now agree on generated PoseStamped, TwistStamped, UInt32 buttons and positional Joy video metrics. The same CDR command frames feed the unguarded recorder tap; malformed/foreign/legacy frames are rejected before stats or publication. Browser telemetry JSON and the ten-metric positional layout stay unchanged.

Parent: #4709. Message encoding refactor.

VideoStats remains an internal report helper with explicit to_joy() / from_joy() adapters. Its previous LCM codec is removed; shorter canonical Joy layouts still zero-fill missing metrics. Received zero timestamps remain zero. This does not add automatic support for historical LCM recordings.

Category Files Added Removed
Stats, recorder, report and explicit value adapters 4 75 52
Behavioral and actual persistence tests 3 279 40
Existing CI and copyable walkthrough 2 22 0

Offline manual acceptance from a configured checkout:

DIMOS_TRANSPORT=lcm LCM_DEFAULT_URL=memq:// uv run pytest --noconftest --import-mode=importlib -o addopts='' -q \
  dimos/teleop/hosted/test_hosted_stats.py \
  dimos/teleop/utils/test_video_stats.py dimos/teleop/utils/test_recorder.py

The persistence test constructs actual HostedStatsModule and TeleopRecorder, uses real CDR ports on memq and discovery-disabled loopback Zenoh, records both controller poses / button mask / drive trace / video metrics plus existing byte telemetry, closes/reopens SQLite and checks generated payload classes, exact source headers, counts, rate, resolution, dropped frames, freezes and emitted report. Owned async dispatchers are drained before their loop closes; no sleeps, hardware or signaling.

23 source +23 isolated installed-wheel tests (including existing Recorder TF cases) pass; strict typing4 production files, applicable hooks and wheel build pass. Nix unavailable. Wheel SHA256 711e56ce6a0141349aec1397842fb5dd60a7318d9b3d5ce74d2f5355dbeb895a.

Remaining collection/native-worker, robot/simulation graphs, canonical historical fixture regressions, default/compatibility audit, dependency retirement and final PR-chain organization remain open. No CI polling or benchmark/hardware acceptance claimed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant