Control Coordinator refactor Docs update and final cleanup - #3294
Open
mustafab0 wants to merge 2 commits into
Open
Control Coordinator refactor Docs update and final cleanup#3294mustafab0 wants to merge 2 commits into
mustafab0 wants to merge 2 commits into
Conversation
mustafab0
requested review from
Dreamsorcerer,
leshy,
paul-nechifor and
spomichter
as code owners
July 30, 2026 19:27
mustafab0
force-pushed
the
dual-view-closeout
branch
from
July 30, 2026 19:34
9b26b74 to
13126e1
Compare
CollectionRecorder and WorldBeliefRecorder capture whatever joints are present, so the aggregate stream is their intended input. Dropping the remaps #3277 added lets autoconnect pair them by port name again, with no module-code changes. Nothing else consumed either coordinator's `arm_joints`, so the per-robot opt-in comes off the xarm7 teleop, piper teleop, and xarm6 worldbelief coordinators too.
Documents the refactor as merged: task cards (TASK_FACTORIES / TASK_CONSUMES / TASK_EXPOSES), subclass-declared deployment I/O and its startup validation, TaskConfig.stream_bind, the four routing rules, and the two permanent joint-state views with the rule for choosing between them.
mustafab0
force-pushed
the
dual-view-closeout
branch
from
July 30, 2026 19:35
13126e1 to
2a4895f
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #3294 +/- ##
=======================================
Coverage 74.86% 74.87%
=======================================
Files 1137 1138 +1
Lines 109071 109070 -1
Branches 9838 9838
=======================================
Hits 81661 81661
+ Misses 24618 24616 -2
- Partials 2792 2793 +1
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 2 files with indirect coverage changes 🚀 New features to boost your workflow:
|
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.
Problem
The control coordinator publishes joint state two ways: one message holding every robot's joints, or one message per robot. A recent change (#3277) moved both recorders onto the per-robot streams. This is not ideal so I am reverting now, and adding more Docs.
Solution
Both recorders go back on the all-robots stream.
dimos/control/README.mdgains an architecture section: both views are permanent, and you pick by what the consumer is.Breaking Changes
None. Both streams still exist. The consumers that are genuinely robot-specific (g1 replay, the go2 controllers) are untouched.
How to Test
uv run pytest dimos/control dimos/manipulation dimos/imitation -m 'not (tool or self_hosted or mujoco or self_hosted_large)'uv run pytest dimos/robot/test_all_blueprints_generation.py— confirms the generated blueprint list is unchanged.coordinator_joint_staterows hold the full joint set.dimos run xarm6-worldbeliefon the xArm6 stack.Steps 3 and 4 need hardware; CI cannot cover them.