Dimos(simulation="mujoco").run("xarm-grasp") composes the hardware stack and then tries to reach an xArm and a RealSense that are not attached.
run() resolves the target first and applies the constructor's overrides second (dimos/porcelain/dimos.py, resolve at line 78, global_config.update at line 81).
- Resolving a name imports the blueprint module, and blueprints settle the arm-versus-sim split at import time:
SIMULATED = bool(global_config.simulation) in xarm/blueprints/grasp.py:59, and several module-scope branches in unitree_g1_groot_wbc.py and unitree_g1_teleop.py.
- The import therefore reads the default and the override lands too late. The CLI already applies global config before resolving names
Found by greptile on #3873 rather than by anything failing in use, so nothing is blocked.
Synced from DIM-1668 by stash
Dimos(simulation="mujoco").run("xarm-grasp")composes the hardware stack and then tries to reach an xArm and a RealSense that are not attached.run()resolves the target first and applies the constructor's overrides second (dimos/porcelain/dimos.py, resolve at line 78,global_config.updateat line 81).SIMULATED = bool(global_config.simulation)inxarm/blueprints/grasp.py:59, and several module-scope branches inunitree_g1_groot_wbc.pyandunitree_g1_teleop.py.Found by greptile on #3873 rather than by anything failing in use, so nothing is blocked.
Synced from DIM-1668 by stash