Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hosted stats, teleop recording and offline reports now agree on generated
PoseStamped,TwistStamped,UInt32buttons and positionalJoyvideo 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.
VideoStatsremains an internal report helper with explicitto_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.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.pyThe 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.