fix(imitation): improve collection safety and episode handling - #3497
Conversation
Codecov Report❌ Patch coverage is @@ Coverage Diff @@
## main #3497 +/- ##
==========================================
+ Coverage 76.99% 77.18% +0.18%
==========================================
Files 1260 1262 +2
Lines 119791 120299 +508
Branches 10603 10731 +128
==========================================
+ Hits 92237 92852 +615
+ Misses 24500 24368 -132
- Partials 3054 3079 +25
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 7 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Greptile SummaryThe collection and dataprep updates improve interrupted-episode handling and recording inspection, while the Quest teleop update is intended to stop the Go2 on invalid controller input. T-Rex validation blockedThe Quest controller safety check could not run because the local validation environment is missing the Confidence Score: 4/5Do not merge until the invalid-controller stop behavior has been exercised in the runtime environment. An invalid controller identity can leave a prior Go2 drive command active unless the safe-stop path is confirmed to run. The attempted runtime check was blocked before that path could execute. Files Needing Attention: dimos/teleop/quest/quest_extensions.py
What T-Rex did
Reviews (5): Last reviewed commit: "fix(teleop): stop Go2 on unknown control..." | Re-trigger Greptile |
# Conflicts: # dimos/cli/dimos.py
Contribution path
Problem
Imitation collection performed unnecessary pose/TF lookup for semantically poseless streams, could stop its recorder before final producer events, and did not clearly report an episode left open at the end of a recording.
Quest disconnects could also leave stale controller engagement active, and invalid episode button mappings were silently ignored.
Solution
How to Test
Run the recording inspector against a collection database:
dimos dataprep inspect /path/to/session.dbAutomated verification:
uv run pytest dimos/memory dimos/imitation dimos/teleop/quest -quv run mypy dimos/uv run pre-commit run --all-filesResults: 541 tests passed, mypy passed across 999 source files, and all pre-commit hooks passed.
AI assistance
OpenCode with GPT-5.6 Sol was used extensively for codebase analysis, implementation, merge-conflict resolution, tests, and verification. The changes and generated tests were reviewed through focused diffs, type checking, pre-commit, and the affected test suites.
Checklist