Skip to content

REF: cc/frontier#2663

Draft
TomCC7 wants to merge 130 commits into
mainfrom
cc/frontier
Draft

REF: cc/frontier#2663
TomCC7 wants to merge 130 commits into
mainfrom
cc/frontier

Conversation

@TomCC7

@TomCC7 TomCC7 commented Jun 30, 2026

Copy link
Copy Markdown
Member

opened for tracking, pls ignore

TomCC7 and others added 30 commits June 4, 2026 13:41
The FloatArray alias and its numpy.typing.NDArray import were never
referenced. Remove both.
The OpenArmRSMotorSpecConfig alias for DamiaoMotorSpec was only
referenced by its own __all__ entry; nothing imports it. Remove both.
Move 'import time' out of FakeState.__init__ to the module top, per the
imports-at-top convention. FakeState.timestamp is still read by the
adapter's staleness check, so it stays.
gravity_comp=True and canfd=True are already the OpenArmRSAdapter
defaults. The blueprint should only specify what differs, so keep just
gravity_model_path.
Per the imports convention, a lazy import of a heavy optional dep needs
a comment saying why. Add it to both gravity-model import sites.
tick_deadline_us=1_000 and state_cache_ttl_s=0.002 were unnamed magic
numbers duplicated as defaults in both the base and the openarm_rs
subclass. Hoist them to _DEFAULT_TICK_DEADLINE_US and
_DEFAULT_STATE_CACHE_TTL_S so the two can't drift.
The 'can0' interface name was hard-coded three times: the base
constructor default, the base None-coalesce, and the openarm_rs
subclass default. Collapse them onto one _DEFAULT_ADDRESS constant so
the literal lives in exactly one place. The None-coalesce stays to
handle a config that leaves address unset (the factory then passes
address=None).
- refresh_state: build the position/velocity/torque lists with
  ndarray.tolist() instead of per-element float() loops.
- write_mit_commands: assemble the MIT matrix with np.column_stack
  instead of a Python comprehension over zipped rows; this removes the
  now-redundant _mit_command_rows helper (validation moves to a direct
  _validate_command_lengths call).
- read_state: look the control-mode index up in a precomputed
  _CONTROL_MODE_INDEX map instead of rebuilding list(ControlMode) every
  call.
The connect/disconnect/write_enable/write_clear_errors/write_stop paths
stuffed context into f-string log lines and dropped the traceback on
real failures. Switch to structlog key/value fields and use
logger.exception (or warning with exc_info) so the traceback survives
instead of being downgraded to an f-string error message.
When the pre-command state read fails, the adapter substitutes
zero feed-forward torque. Log a warning (with traceback) so the dropped
gravity term is visible instead of being silently swallowed.
The try wrapped both refresh_state and compute_gravity_torques under a
broad except Exception, masking a real gravity-model error as 'invalid
state'. Scope the try to refresh_state (the call that raises RuntimeError
on a bad read) and let a genuine compute error propagate. Also switch
the log line to structured fields with a traceback.
The **_: object catch-all silently dropped misspelled adapter kwargs.
The registry factory only passes declared parameters (dof, address,
hardware_id plus the blueprint adapter_kwargs), so drop the catch-all
to turn config typos into a clear TypeError.
The OpenArm integration guide inlined the kp/kd preset numbers, which
drift from the adapter code. Replace them with a pointer to
OpenArmRSAdapter._DEFAULT_KP/_DEFAULT_KD (and the openarm adapter's
own constants).
…utofixes

Auto-fixes for cc/openarm-rust-adapter
@codecov

codecov Bot commented Jun 30, 2026

Copy link
Copy Markdown

❌ 17 Tests Failed:

Tests completed Failed Passed Skipped
2344 17 2327 167
View the top 3 failed test(s) by shortest run time
::dimos.robot.manipulators.xarm.blueprints.test_gpd_mujoco_grasp_demo
Stack Traces | 0s run time
.../xarm/blueprints/test_gpd_mujoco_grasp_demo.py:41: in <module>
    from dimos.robot.manipulators.xarm.blueprints.simulation import (
        GPDGraspGenModule = <class 'dimos_gpd_grasp_demo.gpd_grasp_gen_module.GPDGraspGenModule'>
        GPD_GRASP_DEMO_ENV_NAME = 'dimos-gpd-grasp-demo'
        GPD_GRASP_DEMO_PROJECT = PosixPath('.../dimos/packages/dimos-gpd-grasp-demo')
        GraspCandidateArray = <class 'dimos.msgs.grasping_msgs.GraspCandidateArray.GraspCandidateArray'>
        GraspingModule = <class 'dimos.manipulation.grasping.grasping.GraspingModule'>
        MockerFixture = <class 'pytest_mock.plugin.MockerFixture'>
        ModuleCoordinator = <class 'dimos.core.coordination.module_coordinator.ModuleCoordinator'>
        ObjectSceneRegistrationModule = <class 'dimos.perception.object_scene_registration.ObjectSceneRegistrationModule'>
        Path       = <class 'pathlib.Path'>
        PickAndPlaceModule = <class 'dimos.manipulation.pick_and_place_module.PickAndPlaceModule'>
        PointCloud2 = <class 'dimos.msgs.sensor_msgs.PointCloud2.PointCloud2'>
        PointcloudGraspDemoController = <class 'dimos.manipulation.grasping.pointcloud_grasp_demo_controller.PointcloudGraspDemoController'>
        PythonProjectRuntimeEnvironment = <class 'dimos.core.runtime_environment.PythonProjectRuntimeEnvironment'>
        RegisteredObject = <class 'dimos.msgs.perception_msgs.RegisteredObject.RegisteredObject'>
        SceneReconstructionModule = <class 'dimos.perception.reconstruction.scene_reconstruction.SceneReconstructionModule'>
        TargetGraspDemoController = <class 'dimos.manipulation.grasping.target_grasp_demo_controller.TargetGraspDemoController'>
        VGNGraspGenModule = <class 'dimos.manipulation.grasping.vgn_grasp_gen_module.VGNGraspGenModule'>
        Vector3    = <class 'dimos.msgs.geometry_msgs.Vector3.Vector3'>
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/test_gpd_mujoco_grasp_demo.cpython-312.pyc'
        __doc__    = None
        __file__   = '.../work/dimos/dimos/.../xarm/blueprints/test_gpd_mujoco_grasp_demo.py'
        __loader__ = <_pytest.assertion.rewrite.AssertionRewritingHook object at 0xffd023d5b5c0>
        __name__   = 'dimos.robot.manipulators.xarm.blueprints.test_gpd_mujoco_grasp_demo'
        __package__ = 'dimos.robot.manipulators.xarm.blueprints'
        __spec__   = ModuleSpec(name='dimos.robot.manipulators.xarm.blueprints.test_gpd_mujoco_grasp_demo', loader=<_pytest.assertion.rewri...d5b5c0>, origin='.../work/dimos/dimos/.../xarm/blueprints/test_gpd_mujoco_grasp_demo.py')
        all_blueprints = {'alfred-nav': 'dimos.robot.diy.alfred.blueprints.alfred_nav:alfred_nav', 'coordinator-basic': 'dimos.control.blueprin...oordinator-cartesian-ik-piper': 'dimos.robot.manipulators.piper.blueprints.teleop:coordinator_cartesian_ik_piper', ...}
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        os         = <module 'os' (frozen)>
        pytest     = <module 'pytest' from '.../dimos/dimos/.venv/lib/python3.12.../site-packages/pytest/__init__.py'>
.../xarm/blueprints/simulation.py:50: in <module>
    address=str(XARM7_SIM_PATH),
        GPDGraspGenModule = <class 'dimos_gpd_grasp_demo.gpd_grasp_gen_module.GPDGraspGenModule'>
        GraspingModule = <class 'dimos.manipulation.grasping.grasping.GraspingModule'>
        MujocoSimModule = <class 'dimos.simulation.engines.mujoco_sim_module.MujocoSimModule'>
        ObjectSceneRegistrationModule = <class 'dimos.perception.object_scene_registration.ObjectSceneRegistrationModule'>
        PickAndPlaceModule = <class 'dimos.manipulation.pick_and_place_module.PickAndPlaceModule'>
        PointcloudGraspDemoController = <class 'dimos.manipulation.grasping.pointcloud_grasp_demo_controller.PointcloudGraspDemoController'>
        RerunBridgeModule = <class 'dimos.visualization.rerun.bridge.RerunBridgeModule'>
        SceneReconstructionModule = <class 'dimos.perception.reconstruction.scene_reconstruction.SceneReconstructionModule'>
        TargetGraspDemoController = <class 'dimos.manipulation.grasping.target_grasp_demo_controller.TargetGraspDemoController'>
        VGNGraspGenModule = <class 'dimos.manipulation.grasping.vgn_grasp_gen_module.VGNGraspGenModule'>
        XARM7_SIM_HOME = [0.0, 0.0, 0.0, 0.0, 0.0, -0.7, ...]
        XARM7_SIM_PATH = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command...ude', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.") raised in repr()] LfsPath object at 0xffcf861ec1d0>
        XARM7_VGN_OBSERVATION_HOME = [0.0, -0.247, 0.0, 0.909, 0.0, 1.15644, ...]
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/simulation.cpython-312.pyc'
        __doc__    = 'Simulation xArm perception manipulation blueprints.'
        __file__   = '.../work/dimos/dimos/.../xarm/blueprints/simulation.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0xffcf3f42ce60>
        __name__   = 'dimos.robot.manipulators.xarm.blueprints.simulation'
        __package__ = 'dimos.robot.manipulators.xarm.blueprints'
        __spec__   = ModuleSpec(name='dimos.robot.manipulators.xarm.blueprints.simulation', loader=<_frozen_importlib_external.SourceFileLo...ject at 0xffcf3f42ce60>, origin='.../work/dimos/dimos/.../xarm/blueprints/simulation.py')
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0xffcff6263100>
        coordinator = <function coordinator at 0xffcf861f0180>
        gpd_grasp_gen_blueprint = <function gpd_grasp_gen_blueprint at 0xffcf84d64b80>
        make_xarm7_model_config = <function make_xarm7_model_config at 0xffcf861f0b80>
        make_xarm_hardware = <function make_xarm_hardware at 0xffcf861f0680>
        math       = <module 'math' (built-in)>
        trajectory_task = <function trajectory_task at 0xffcf861dff60>
dimos/utils/data.py:369: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command...ude', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.") raised in repr()] LfsPath object at 0xffcf861ec1d0>
dimos/utils/data.py:347: in _ensure_downloaded
    cache = get_data(filename)
        cache      = None
        filename   = 'xarm7/scene.xml'
        self       = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command...ude', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.") raised in repr()] LfsPath object at 0xffcf861ec1d0>
dimos/utils/data.py:304: in get_data
    archive_path = _decompress_archive(_pull_lfs_archive(archive_name))
        archive_name = 'xarm7'
        data_dir   = PosixPath('.../dimos/dimos/data')
        file_path  = PosixPath('.../dimos/dimos/data/xarm7/scene.xml')
        name       = 'xarm7/scene.xml'
        nested_path = PosixPath('scene.xml')
        path_parts = ('xarm7', 'scene.xml')
dimos/utils/data.py:248: in _pull_lfs_archive
    _lfs_pull(file_path, repo_root)
        file_path  = PosixPath('.../dimos/data/.lfs/xarm7.tar.gz')
        filename   = 'xarm7'
        repo_root  = PosixPath('.../work/dimos/dimos')
dimos/utils/data.py:216: in _lfs_pull
    raise RuntimeError(
E   RuntimeError: Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command '['git', 'lfs', 'pull', '--include', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.
        attempt    = 3
        env        = {'ACCEPT_EULA': 'Y', 'ACTIONS_ID_TOKEN_REQUEST_TOKEN': 'eyJhbGciOiJSUzI1NiIsImtpZCI6IjM4ODI2YjE3LTZhMzAtNWY5Yi1iMTY5LT...-version=2.0', 'ACTIONS_ORCHESTRATION_ID': '215d4fda-aff1-438d-b02c-fd88ffe43804.tests.ubuntu-24_04-arm_3_14_fal', ...}
        file_path  = PosixPath('.../dimos/data/.lfs/xarm7.tar.gz')
        last_err   = CalledProcessError(1, ['git', 'lfs', 'pull', '--include', 'data/.lfs/xarm7.tar.gz'])
        relative_path = PosixPath('data/.lfs/xarm7.tar.gz')
        repo_root  = PosixPath('.../work/dimos/dimos')
        retries    = 2
::dimos.robot.manipulators.xarm.blueprints.test_vgn_mujoco_grasp_demo
Stack Traces | 0s run time
.../xarm/blueprints/test_vgn_mujoco_grasp_demo.py:20: in <module>
    from dimos.robot.manipulators.xarm.blueprints.simulation import (
        GraspingModule = <class 'dimos.manipulation.grasping.grasping.GraspingModule'>
        ObjectSceneRegistrationModule = <class 'dimos.perception.object_scene_registration.ObjectSceneRegistrationModule'>
        SceneReconstructionModule = <class 'dimos.perception.reconstruction.scene_reconstruction.SceneReconstructionModule'>
        TargetGraspDemoController = <class 'dimos.manipulation.grasping.target_grasp_demo_controller.TargetGraspDemoController'>
        VGNGraspGenModule = <class 'dimos.manipulation.grasping.vgn_grasp_gen_module.VGNGraspGenModule'>
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/test_vgn_mujoco_grasp_demo.cpython-312.pyc'
        __doc__    = None
        __file__   = '.../work/dimos/dimos/.../xarm/blueprints/test_vgn_mujoco_grasp_demo.py'
        __loader__ = <_pytest.assertion.rewrite.AssertionRewritingHook object at 0xffd023d5b5c0>
        __name__   = 'dimos.robot.manipulators.xarm.blueprints.test_vgn_mujoco_grasp_demo'
        __package__ = 'dimos.robot.manipulators.xarm.blueprints'
        __spec__   = ModuleSpec(name='dimos.robot.manipulators.xarm.blueprints.test_vgn_mujoco_grasp_demo', loader=<_pytest.assertion.rewri...d5b5c0>, origin='.../work/dimos/dimos/.../xarm/blueprints/test_vgn_mujoco_grasp_demo.py')
.../xarm/blueprints/simulation.py:50: in <module>
    address=str(XARM7_SIM_PATH),
        GPDGraspGenModule = <class 'dimos_gpd_grasp_demo.gpd_grasp_gen_module.GPDGraspGenModule'>
        GraspingModule = <class 'dimos.manipulation.grasping.grasping.GraspingModule'>
        MujocoSimModule = <class 'dimos.simulation.engines.mujoco_sim_module.MujocoSimModule'>
        ObjectSceneRegistrationModule = <class 'dimos.perception.object_scene_registration.ObjectSceneRegistrationModule'>
        PickAndPlaceModule = <class 'dimos.manipulation.pick_and_place_module.PickAndPlaceModule'>
        PointcloudGraspDemoController = <class 'dimos.manipulation.grasping.pointcloud_grasp_demo_controller.PointcloudGraspDemoController'>
        RerunBridgeModule = <class 'dimos.visualization.rerun.bridge.RerunBridgeModule'>
        SceneReconstructionModule = <class 'dimos.perception.reconstruction.scene_reconstruction.SceneReconstructionModule'>
        TargetGraspDemoController = <class 'dimos.manipulation.grasping.target_grasp_demo_controller.TargetGraspDemoController'>
        VGNGraspGenModule = <class 'dimos.manipulation.grasping.vgn_grasp_gen_module.VGNGraspGenModule'>
        XARM7_SIM_HOME = [0.0, 0.0, 0.0, 0.0, 0.0, -0.7, ...]
        XARM7_SIM_PATH = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command...ude', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.") raised in repr()] LfsPath object at 0xffcf861ec1d0>
        XARM7_VGN_OBSERVATION_HOME = [0.0, -0.247, 0.0, 0.909, 0.0, 1.15644, ...]
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/simulation.cpython-312.pyc'
        __doc__    = 'Simulation xArm perception manipulation blueprints.'
        __file__   = '.../work/dimos/dimos/.../xarm/blueprints/simulation.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0xffcf3f4645c0>
        __name__   = 'dimos.robot.manipulators.xarm.blueprints.simulation'
        __package__ = 'dimos.robot.manipulators.xarm.blueprints'
        __spec__   = ModuleSpec(name='dimos.robot.manipulators.xarm.blueprints.simulation', loader=<_frozen_importlib_external.SourceFileLo...ject at 0xffcf3f4645c0>, origin='.../work/dimos/dimos/.../xarm/blueprints/simulation.py')
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0xffcff6263100>
        coordinator = <function coordinator at 0xffcf861f0180>
        gpd_grasp_gen_blueprint = <function gpd_grasp_gen_blueprint at 0xffcf84d64b80>
        make_xarm7_model_config = <function make_xarm7_model_config at 0xffcf861f0b80>
        make_xarm_hardware = <function make_xarm_hardware at 0xffcf861f0680>
        math       = <module 'math' (built-in)>
        trajectory_task = <function trajectory_task at 0xffcf861dff60>
dimos/utils/data.py:369: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command...ude', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.") raised in repr()] LfsPath object at 0xffcf861ec1d0>
dimos/utils/data.py:347: in _ensure_downloaded
    cache = get_data(filename)
        cache      = None
        filename   = 'xarm7/scene.xml'
        self       = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command...ude', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.") raised in repr()] LfsPath object at 0xffcf861ec1d0>
dimos/utils/data.py:304: in get_data
    archive_path = _decompress_archive(_pull_lfs_archive(archive_name))
        archive_name = 'xarm7'
        data_dir   = PosixPath('.../dimos/dimos/data')
        file_path  = PosixPath('.../dimos/dimos/data/xarm7/scene.xml')
        name       = 'xarm7/scene.xml'
        nested_path = PosixPath('scene.xml')
        path_parts = ('xarm7', 'scene.xml')
dimos/utils/data.py:248: in _pull_lfs_archive
    _lfs_pull(file_path, repo_root)
        file_path  = PosixPath('.../dimos/data/.lfs/xarm7.tar.gz')
        filename   = 'xarm7'
        repo_root  = PosixPath('.../work/dimos/dimos')
dimos/utils/data.py:216: in _lfs_pull
    raise RuntimeError(
E   RuntimeError: Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command '['git', 'lfs', 'pull', '--include', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.
        attempt    = 3
        env        = {'ACCEPT_EULA': 'Y', 'ACTIONS_ID_TOKEN_REQUEST_TOKEN': 'eyJhbGciOiJSUzI1NiIsImtpZCI6IjM4ODI2YjE3LTZhMzAtNWY5Yi1iMTY5LT...-version=2.0', 'ACTIONS_ORCHESTRATION_ID': '215d4fda-aff1-438d-b02c-fd88ffe43804.tests.ubuntu-24_04-arm_3_14_fal', ...}
        file_path  = PosixPath('.../dimos/data/.lfs/xarm7.tar.gz')
        last_err   = CalledProcessError(1, ['git', 'lfs', 'pull', '--include', 'data/.lfs/xarm7.tar.gz'])
        relative_path = PosixPath('data/.lfs/xarm7.tar.gz')
        repo_root  = PosixPath('.../work/dimos/dimos')
        retries    = 2
dimos.manipulation.test_pick_and_place_unit.TestFindObjectInDetections::test_empty_snapshot_returns_none
Stack Traces | 0.002s run time
@pytest.fixture
    def module() -> PickAndPlaceModule:
        """Create a PickAndPlaceModule with heavy base init (RPC, config) patched out."""
        with patch.object(ModuleBase, "__init__", lambda self, config_args: None):
>           return PickAndPlaceModule()


dimos/manipulation/test_pick_and_place_unit.py:60: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/manipulation/pick_and_place_module.py:84: in __init__
    super().__init__(**kwargs)
        __class__  = <class 'dimos.manipulation.pick_and_place_module.PickAndPlaceModule'>
        kwargs     = {}
        self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09aff834d0>
dimos/manipulation/manipulation_module.py:185: in __init__
    super().__init__(**kwargs)
        __class__  = <class 'dimos.manipulation.manipulation_module.ManipulationModule'>
        kwargs     = {}
        self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09aff834d0>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09aff834d0>
kwargs = {}
config = PickAndPlaceModuleConfig(rpc_transport=<class 'dimos.protocol.rpc.pubsubrpc.LCMRPC'>, default_rpc_timeout=120.0, rpc_t..._smoothing_max_joint_deviation=0.02, roboplan_smoothing_edge_step_size=0.02, roboplan_smoothing_min_keep_fraction=0.1))
io_contract = ModuleIOContract(streams=(StreamDecl(name='coordinator_joint_state', direction='in', type=<class 'dimos.msgs.sensor_ms...'>), StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])))
default_contract = True
decl = StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])
annotated_stream_keys = {('coordinator_joint_state', 'in'), ('objects', 'in')}
install_attribute = True

    def __init__(self, **kwargs: Any) -> None:
        self.ref = None
        self._inputs: dict[str, In[Any]] = {}
        self._outputs: dict[str, Out[Any]] = {}
        config = type(self).resolve_config(kwargs)
        io_contract = type(self).io_contract(config)
        default_contract = _uses_default_io_contract(type(self))
        annotated_stream_keys = {
            (decl.name, decl.direction) for decl in _stream_decls_from_annotations(type(self))
        }
    
        for decl in io_contract.streams:
            install_attribute = (
                default_contract or (decl.name, decl.direction) in annotated_stream_keys
            )
            self._register_stream_decl(decl, install_attribute=install_attribute)
>       super().__init__(config_args=kwargs, resolved_config=config)
E       TypeError: module.<locals>.<lambda>() got an unexpected keyword argument 'resolved_config'

__class__  = <class 'dimos.core.module.Module'>
annotated_stream_keys = {('coordinator_joint_state', 'in'), ('objects', 'in')}
config     = PickAndPlaceModuleConfig(rpc_transport=<class 'dimos.protocol.rpc.pubsubrpc.LCMRPC'>, default_rpc_timeout=120.0, rpc_t..._smoothing_max_joint_deviation=0.02, roboplan_smoothing_edge_step_size=0.02, roboplan_smoothing_min_keep_fraction=0.1))
decl       = StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])
default_contract = True
install_attribute = True
io_contract = ModuleIOContract(streams=(StreamDecl(name='coordinator_joint_state', direction='in', type=<class 'dimos.msgs.sensor_ms...'>), StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])))
kwargs     = {}
self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09aff834d0>

dimos/core/module.py:834: TypeError
dimos.manipulation.test_pick_and_place_unit.TestFindObjectInDetections::test_find_by_exact_name
Stack Traces | 0.002s run time
@pytest.fixture
    def module() -> PickAndPlaceModule:
        """Create a PickAndPlaceModule with heavy base init (RPC, config) patched out."""
        with patch.object(ModuleBase, "__init__", lambda self, config_args: None):
>           return PickAndPlaceModule()


dimos/manipulation/test_pick_and_place_unit.py:60: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/manipulation/pick_and_place_module.py:84: in __init__
    super().__init__(**kwargs)
        __class__  = <class 'dimos.manipulation.pick_and_place_module.PickAndPlaceModule'>
        kwargs     = {}
        self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b40a9910>
dimos/manipulation/manipulation_module.py:185: in __init__
    super().__init__(**kwargs)
        __class__  = <class 'dimos.manipulation.manipulation_module.ManipulationModule'>
        kwargs     = {}
        self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b40a9910>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b40a9910>
kwargs = {}
config = PickAndPlaceModuleConfig(rpc_transport=<class 'dimos.protocol.rpc.pubsubrpc.LCMRPC'>, default_rpc_timeout=120.0, rpc_t..._smoothing_max_joint_deviation=0.02, roboplan_smoothing_edge_step_size=0.02, roboplan_smoothing_min_keep_fraction=0.1))
io_contract = ModuleIOContract(streams=(StreamDecl(name='coordinator_joint_state', direction='in', type=<class 'dimos.msgs.sensor_ms...'>), StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])))
default_contract = True
decl = StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])
annotated_stream_keys = {('coordinator_joint_state', 'in'), ('objects', 'in')}
install_attribute = True

    def __init__(self, **kwargs: Any) -> None:
        self.ref = None
        self._inputs: dict[str, In[Any]] = {}
        self._outputs: dict[str, Out[Any]] = {}
        config = type(self).resolve_config(kwargs)
        io_contract = type(self).io_contract(config)
        default_contract = _uses_default_io_contract(type(self))
        annotated_stream_keys = {
            (decl.name, decl.direction) for decl in _stream_decls_from_annotations(type(self))
        }
    
        for decl in io_contract.streams:
            install_attribute = (
                default_contract or (decl.name, decl.direction) in annotated_stream_keys
            )
            self._register_stream_decl(decl, install_attribute=install_attribute)
>       super().__init__(config_args=kwargs, resolved_config=config)
E       TypeError: module.<locals>.<lambda>() got an unexpected keyword argument 'resolved_config'

__class__  = <class 'dimos.core.module.Module'>
annotated_stream_keys = {('coordinator_joint_state', 'in'), ('objects', 'in')}
config     = PickAndPlaceModuleConfig(rpc_transport=<class 'dimos.protocol.rpc.pubsubrpc.LCMRPC'>, default_rpc_timeout=120.0, rpc_t..._smoothing_max_joint_deviation=0.02, roboplan_smoothing_edge_step_size=0.02, roboplan_smoothing_min_keep_fraction=0.1))
decl       = StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])
default_contract = True
install_attribute = True
io_contract = ModuleIOContract(streams=(StreamDecl(name='coordinator_joint_state', direction='in', type=<class 'dimos.msgs.sensor_ms...'>), StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])))
kwargs     = {}
self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b40a9910>

dimos/core/module.py:834: TypeError
dimos.manipulation.test_pick_and_place_unit.TestFindObjectInDetections::test_find_by_object_id
Stack Traces | 0.002s run time
@pytest.fixture
    def module() -> PickAndPlaceModule:
        """Create a PickAndPlaceModule with heavy base init (RPC, config) patched out."""
        with patch.object(ModuleBase, "__init__", lambda self, config_args: None):
>           return PickAndPlaceModule()


dimos/manipulation/test_pick_and_place_unit.py:60: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/manipulation/pick_and_place_module.py:84: in __init__
    super().__init__(**kwargs)
        __class__  = <class 'dimos.manipulation.pick_and_place_module.PickAndPlaceModule'>
        kwargs     = {}
        self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b30c0e30>
dimos/manipulation/manipulation_module.py:185: in __init__
    super().__init__(**kwargs)
        __class__  = <class 'dimos.manipulation.manipulation_module.ManipulationModule'>
        kwargs     = {}
        self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b30c0e30>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b30c0e30>
kwargs = {}
config = PickAndPlaceModuleConfig(rpc_transport=<class 'dimos.protocol.rpc.pubsubrpc.LCMRPC'>, default_rpc_timeout=120.0, rpc_t..._smoothing_max_joint_deviation=0.02, roboplan_smoothing_edge_step_size=0.02, roboplan_smoothing_min_keep_fraction=0.1))
io_contract = ModuleIOContract(streams=(StreamDecl(name='coordinator_joint_state', direction='in', type=<class 'dimos.msgs.sensor_ms...'>), StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])))
default_contract = True
decl = StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])
annotated_stream_keys = {('coordinator_joint_state', 'in'), ('objects', 'in')}
install_attribute = True

    def __init__(self, **kwargs: Any) -> None:
        self.ref = None
        self._inputs: dict[str, In[Any]] = {}
        self._outputs: dict[str, Out[Any]] = {}
        config = type(self).resolve_config(kwargs)
        io_contract = type(self).io_contract(config)
        default_contract = _uses_default_io_contract(type(self))
        annotated_stream_keys = {
            (decl.name, decl.direction) for decl in _stream_decls_from_annotations(type(self))
        }
    
        for decl in io_contract.streams:
            install_attribute = (
                default_contract or (decl.name, decl.direction) in annotated_stream_keys
            )
            self._register_stream_decl(decl, install_attribute=install_attribute)
>       super().__init__(config_args=kwargs, resolved_config=config)
E       TypeError: module.<locals>.<lambda>() got an unexpected keyword argument 'resolved_config'

__class__  = <class 'dimos.core.module.Module'>
annotated_stream_keys = {('coordinator_joint_state', 'in'), ('objects', 'in')}
config     = PickAndPlaceModuleConfig(rpc_transport=<class 'dimos.protocol.rpc.pubsubrpc.LCMRPC'>, default_rpc_timeout=120.0, rpc_t..._smoothing_max_joint_deviation=0.02, roboplan_smoothing_edge_step_size=0.02, roboplan_smoothing_min_keep_fraction=0.1))
decl       = StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])
default_contract = True
install_attribute = True
io_contract = ModuleIOContract(streams=(StreamDecl(name='coordinator_joint_state', direction='in', type=<class 'dimos.msgs.sensor_ms...'>), StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])))
kwargs     = {}
self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b30c0e30>

dimos/core/module.py:834: TypeError
dimos.manipulation.test_pick_and_place_unit.TestFindObjectInDetections::test_find_by_object_id_ambiguous_returns_none
Stack Traces | 0.002s run time
@pytest.fixture
    def module() -> PickAndPlaceModule:
        """Create a PickAndPlaceModule with heavy base init (RPC, config) patched out."""
        with patch.object(ModuleBase, "__init__", lambda self, config_args: None):
>           return PickAndPlaceModule()


dimos/manipulation/test_pick_and_place_unit.py:60: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/manipulation/pick_and_place_module.py:84: in __init__
    super().__init__(**kwargs)
        __class__  = <class 'dimos.manipulation.pick_and_place_module.PickAndPlaceModule'>
        kwargs     = {}
        self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b10cd7c0>
dimos/manipulation/manipulation_module.py:185: in __init__
    super().__init__(**kwargs)
        __class__  = <class 'dimos.manipulation.manipulation_module.ManipulationModule'>
        kwargs     = {}
        self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b10cd7c0>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b10cd7c0>
kwargs = {}
config = PickAndPlaceModuleConfig(rpc_transport=<class 'dimos.protocol.rpc.pubsubrpc.LCMRPC'>, default_rpc_timeout=120.0, rpc_t..._smoothing_max_joint_deviation=0.02, roboplan_smoothing_edge_step_size=0.02, roboplan_smoothing_min_keep_fraction=0.1))
io_contract = ModuleIOContract(streams=(StreamDecl(name='coordinator_joint_state', direction='in', type=<class 'dimos.msgs.sensor_ms...'>), StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])))
default_contract = True
decl = StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])
annotated_stream_keys = {('coordinator_joint_state', 'in'), ('objects', 'in')}
install_attribute = True

    def __init__(self, **kwargs: Any) -> None:
        self.ref = None
        self._inputs: dict[str, In[Any]] = {}
        self._outputs: dict[str, Out[Any]] = {}
        config = type(self).resolve_config(kwargs)
        io_contract = type(self).io_contract(config)
        default_contract = _uses_default_io_contract(type(self))
        annotated_stream_keys = {
            (decl.name, decl.direction) for decl in _stream_decls_from_annotations(type(self))
        }
    
        for decl in io_contract.streams:
            install_attribute = (
                default_contract or (decl.name, decl.direction) in annotated_stream_keys
            )
            self._register_stream_decl(decl, install_attribute=install_attribute)
>       super().__init__(config_args=kwargs, resolved_config=config)
E       TypeError: module.<locals>.<lambda>() got an unexpected keyword argument 'resolved_config'

__class__  = <class 'dimos.core.module.Module'>
annotated_stream_keys = {('coordinator_joint_state', 'in'), ('objects', 'in')}
config     = PickAndPlaceModuleConfig(rpc_transport=<class 'dimos.protocol.rpc.pubsubrpc.LCMRPC'>, default_rpc_timeout=120.0, rpc_t..._smoothing_max_joint_deviation=0.02, roboplan_smoothing_edge_step_size=0.02, roboplan_smoothing_min_keep_fraction=0.1))
decl       = StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])
default_contract = True
install_attribute = True
io_contract = ModuleIOContract(streams=(StreamDecl(name='coordinator_joint_state', direction='in', type=<class 'dimos.msgs.sensor_ms...'>), StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])))
kwargs     = {}
self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b10cd7c0>

dimos/core/module.py:834: TypeError
dimos.manipulation.test_pick_and_place_unit.TestFindObjectInDetections::test_find_by_partial_name
Stack Traces | 0.002s run time
@pytest.fixture
    def module() -> PickAndPlaceModule:
        """Create a PickAndPlaceModule with heavy base init (RPC, config) patched out."""
        with patch.object(ModuleBase, "__init__", lambda self, config_args: None):
>           return PickAndPlaceModule()


dimos/manipulation/test_pick_and_place_unit.py:60: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/manipulation/pick_and_place_module.py:84: in __init__
    super().__init__(**kwargs)
        __class__  = <class 'dimos.manipulation.pick_and_place_module.PickAndPlaceModule'>
        kwargs     = {}
        self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b3065460>
dimos/manipulation/manipulation_module.py:185: in __init__
    super().__init__(**kwargs)
        __class__  = <class 'dimos.manipulation.manipulation_module.ManipulationModule'>
        kwargs     = {}
        self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b3065460>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b3065460>
kwargs = {}
config = PickAndPlaceModuleConfig(rpc_transport=<class 'dimos.protocol.rpc.pubsubrpc.LCMRPC'>, default_rpc_timeout=120.0, rpc_t..._smoothing_max_joint_deviation=0.02, roboplan_smoothing_edge_step_size=0.02, roboplan_smoothing_min_keep_fraction=0.1))
io_contract = ModuleIOContract(streams=(StreamDecl(name='coordinator_joint_state', direction='in', type=<class 'dimos.msgs.sensor_ms...'>), StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])))
default_contract = True
decl = StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])
annotated_stream_keys = {('coordinator_joint_state', 'in'), ('objects', 'in')}
install_attribute = True

    def __init__(self, **kwargs: Any) -> None:
        self.ref = None
        self._inputs: dict[str, In[Any]] = {}
        self._outputs: dict[str, Out[Any]] = {}
        config = type(self).resolve_config(kwargs)
        io_contract = type(self).io_contract(config)
        default_contract = _uses_default_io_contract(type(self))
        annotated_stream_keys = {
            (decl.name, decl.direction) for decl in _stream_decls_from_annotations(type(self))
        }
    
        for decl in io_contract.streams:
            install_attribute = (
                default_contract or (decl.name, decl.direction) in annotated_stream_keys
            )
            self._register_stream_decl(decl, install_attribute=install_attribute)
>       super().__init__(config_args=kwargs, resolved_config=config)
E       TypeError: module.<locals>.<lambda>() got an unexpected keyword argument 'resolved_config'

__class__  = <class 'dimos.core.module.Module'>
annotated_stream_keys = {('coordinator_joint_state', 'in'), ('objects', 'in')}
config     = PickAndPlaceModuleConfig(rpc_transport=<class 'dimos.protocol.rpc.pubsubrpc.LCMRPC'>, default_rpc_timeout=120.0, rpc_t..._smoothing_max_joint_deviation=0.02, roboplan_smoothing_edge_step_size=0.02, roboplan_smoothing_min_keep_fraction=0.1))
decl       = StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])
default_contract = True
install_attribute = True
io_contract = ModuleIOContract(streams=(StreamDecl(name='coordinator_joint_state', direction='in', type=<class 'dimos.msgs.sensor_ms...'>), StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])))
kwargs     = {}
self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b3065460>

dimos/core/module.py:834: TypeError
dimos.manipulation.test_pick_and_place_unit.TestFindObjectInDetections::test_find_missing_returns_none
Stack Traces | 0.002s run time
@pytest.fixture
    def module() -> PickAndPlaceModule:
        """Create a PickAndPlaceModule with heavy base init (RPC, config) patched out."""
        with patch.object(ModuleBase, "__init__", lambda self, config_args: None):
>           return PickAndPlaceModule()


dimos/manipulation/test_pick_and_place_unit.py:60: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/manipulation/pick_and_place_module.py:84: in __init__
    super().__init__(**kwargs)
        __class__  = <class 'dimos.manipulation.pick_and_place_module.PickAndPlaceModule'>
        kwargs     = {}
        self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b3067aa0>
dimos/manipulation/manipulation_module.py:185: in __init__
    super().__init__(**kwargs)
        __class__  = <class 'dimos.manipulation.manipulation_module.ManipulationModule'>
        kwargs     = {}
        self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b3067aa0>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b3067aa0>
kwargs = {}
config = PickAndPlaceModuleConfig(rpc_transport=<class 'dimos.protocol.rpc.pubsubrpc.LCMRPC'>, default_rpc_timeout=120.0, rpc_t..._smoothing_max_joint_deviation=0.02, roboplan_smoothing_edge_step_size=0.02, roboplan_smoothing_min_keep_fraction=0.1))
io_contract = ModuleIOContract(streams=(StreamDecl(name='coordinator_joint_state', direction='in', type=<class 'dimos.msgs.sensor_ms...'>), StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])))
default_contract = True
decl = StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])
annotated_stream_keys = {('coordinator_joint_state', 'in'), ('objects', 'in')}
install_attribute = True

    def __init__(self, **kwargs: Any) -> None:
        self.ref = None
        self._inputs: dict[str, In[Any]] = {}
        self._outputs: dict[str, Out[Any]] = {}
        config = type(self).resolve_config(kwargs)
        io_contract = type(self).io_contract(config)
        default_contract = _uses_default_io_contract(type(self))
        annotated_stream_keys = {
            (decl.name, decl.direction) for decl in _stream_decls_from_annotations(type(self))
        }
    
        for decl in io_contract.streams:
            install_attribute = (
                default_contract or (decl.name, decl.direction) in annotated_stream_keys
            )
            self._register_stream_decl(decl, install_attribute=install_attribute)
>       super().__init__(config_args=kwargs, resolved_config=config)
E       TypeError: module.<locals>.<lambda>() got an unexpected keyword argument 'resolved_config'

__class__  = <class 'dimos.core.module.Module'>
annotated_stream_keys = {('coordinator_joint_state', 'in'), ('objects', 'in')}
config     = PickAndPlaceModuleConfig(rpc_transport=<class 'dimos.protocol.rpc.pubsubrpc.LCMRPC'>, default_rpc_timeout=120.0, rpc_t..._smoothing_max_joint_deviation=0.02, roboplan_smoothing_edge_step_size=0.02, roboplan_smoothing_min_keep_fraction=0.1))
decl       = StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])
default_contract = True
install_attribute = True
io_contract = ModuleIOContract(streams=(StreamDecl(name='coordinator_joint_state', direction='in', type=<class 'dimos.msgs.sensor_ms...'>), StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])))
kwargs     = {}
self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b3067aa0>

dimos/core/module.py:834: TypeError
dimos.manipulation.test_pick_and_place_unit.TestPlaceBack::test_place_back_no_pick_pose_errors
Stack Traces | 0.002s run time
@pytest.fixture
    def module() -> PickAndPlaceModule:
        """Create a PickAndPlaceModule with heavy base init (RPC, config) patched out."""
        with patch.object(ModuleBase, "__init__", lambda self, config_args: None):
>           return PickAndPlaceModule()


dimos/manipulation/test_pick_and_place_unit.py:60: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/manipulation/pick_and_place_module.py:84: in __init__
    super().__init__(**kwargs)
        __class__  = <class 'dimos.manipulation.pick_and_place_module.PickAndPlaceModule'>
        kwargs     = {}
        self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b30a2330>
dimos/manipulation/manipulation_module.py:185: in __init__
    super().__init__(**kwargs)
        __class__  = <class 'dimos.manipulation.manipulation_module.ManipulationModule'>
        kwargs     = {}
        self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b30a2330>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b30a2330>
kwargs = {}
config = PickAndPlaceModuleConfig(rpc_transport=<class 'dimos.protocol.rpc.pubsubrpc.LCMRPC'>, default_rpc_timeout=120.0, rpc_t..._smoothing_max_joint_deviation=0.02, roboplan_smoothing_edge_step_size=0.02, roboplan_smoothing_min_keep_fraction=0.1))
io_contract = ModuleIOContract(streams=(StreamDecl(name='coordinator_joint_state', direction='in', type=<class 'dimos.msgs.sensor_ms...'>), StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])))
default_contract = True
decl = StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])
annotated_stream_keys = {('coordinator_joint_state', 'in'), ('objects', 'in')}
install_attribute = True

    def __init__(self, **kwargs: Any) -> None:
        self.ref = None
        self._inputs: dict[str, In[Any]] = {}
        self._outputs: dict[str, Out[Any]] = {}
        config = type(self).resolve_config(kwargs)
        io_contract = type(self).io_contract(config)
        default_contract = _uses_default_io_contract(type(self))
        annotated_stream_keys = {
            (decl.name, decl.direction) for decl in _stream_decls_from_annotations(type(self))
        }
    
        for decl in io_contract.streams:
            install_attribute = (
                default_contract or (decl.name, decl.direction) in annotated_stream_keys
            )
            self._register_stream_decl(decl, install_attribute=install_attribute)
>       super().__init__(config_args=kwargs, resolved_config=config)
E       TypeError: module.<locals>.<lambda>() got an unexpected keyword argument 'resolved_config'

__class__  = <class 'dimos.core.module.Module'>
annotated_stream_keys = {('coordinator_joint_state', 'in'), ('objects', 'in')}
config     = PickAndPlaceModuleConfig(rpc_transport=<class 'dimos.protocol.rpc.pubsubrpc.LCMRPC'>, default_rpc_timeout=120.0, rpc_t..._smoothing_max_joint_deviation=0.02, roboplan_smoothing_edge_step_size=0.02, roboplan_smoothing_min_keep_fraction=0.1))
decl       = StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])
default_contract = True
install_attribute = True
io_contract = ModuleIOContract(streams=(StreamDecl(name='coordinator_joint_state', direction='in', type=<class 'dimos.msgs.sensor_ms...'>), StreamDecl(name='objects', direction='in', type=list[dimos.perception.detection.type.detection3d.object.Object])))
kwargs     = {}
self       = <dimos.manipulation.pick_and_place_module.PickAndPlaceModule object at 0xff09b30a2330>

dimos/core/module.py:834: TypeError
dimos.core.test_daemon.TestHealthCheck::test_all_unhealthy
Stack Traces | 0.004s run time
self = <dimos.core.test_daemon.TestHealthCheck object at 0xffcf84d5e750>

    def test_all_unhealthy(self):
        coord = _mock_coordinator([False, False])
>       assert coord.health_check() is False
E       AssertionError: assert True is False
E        +  where True = health_check()
E        +    where health_check = <MagicMock spec='ModuleCoordinator' id='281265505322672'>.health_check

coord      = <MagicMock spec='ModuleCoordinator' id='281265505322672'>
self       = <dimos.core.test_daemon.TestHealthCheck object at 0xffcf84d5e750>

dimos/core/test_daemon.py:173: AssertionError
dimos.core.test_daemon.TestHealthCheck::test_one_unhealthy
Stack Traces | 0.004s run time
self = <dimos.core.test_daemon.TestHealthCheck object at 0xffcf84d5d7c0>

    def test_one_unhealthy(self):
        coord = _mock_coordinator([True, False])
>       assert coord.health_check() is False
E       AssertionError: assert True is False
E        +  where True = health_check()
E        +    where health_check = <MagicMock spec='ModuleCoordinator' id='281265506959872'>.health_check

coord      = <MagicMock spec='ModuleCoordinator' id='281265506959872'>
self       = <dimos.core.test_daemon.TestHealthCheck object at 0xffcf84d5d7c0>

dimos/core/test_daemon.py:164: AssertionError
dimos.codebase_checks.test_no_init_files::test_no_init_files
Stack Traces | 0.019s run time
def test_no_init_files():
        dimos_dir = DIMOS_PROJECT_ROOT / "dimos"
        init_files = sorted(dimos_dir.rglob("__init__.py"))
        # The root dimos/__init__.py is allowed for the porcelain lazy import.
        init_files = [f for f in init_files if f != dimos_dir / "__init__.py"]
        if init_files:
            listing = "\n".join(f"  - {f.relative_to(dimos_dir)}" for f in init_files)
>           raise AssertionError(
                f"Found __init__.py files in dimos/:\n{listing}\n\n"
                "__init__.py files are not allowed because they lead to unnecessary "
                "extraneous imports. Everything should be imported straight from the "
                "source module."
            )
E           AssertionError: Found __init__.py files in dimos/:
E             - benchmark/runtime/__init__.py
E             - hardware/damiao/__init__.py
E             - .../whole_body/openarm/__init__.py
E             - perception/reconstruction/__init__.py
E             - simulation/runtime_client/__init__.py
E           
E           __init__.py files are not allowed because they lead to unnecessary extraneous imports. Everything should be imported straight from the source module.

dimos_dir  = PosixPath('.../dimos/dimos/dimos')
init_files = [PosixPath('.../dimos/dimos/dimos/benchmark/runtime/__init__.py'), PosixPath('.../work/dimos/di...n/reconstruction/__init__.py'), PosixPath('.../dimos/dimos/dimos/simulation/runtime_client/__init__.py')]
listing    = '  - benchmark/runtime/__init__.py\n  - hardware/damiao/__init__.py\n  - .../whole_body/openarm/__init__.py\n  - perception/reconstruction/__init__.py\n  - simulation/runtime_client/__init__.py'

dimos/codebase_checks/test_no_init_files.py:25: AssertionError
dimos.robot.cli.test_dimos::test_runtime_prepare_cli_command_exists
Stack Traces | 0.039s run time
def test_runtime_prepare_cli_command_exists():
        result = CliRunner().invoke(main, ["runtime", "prepare", "--help"])
    
        assert result.exit_code == 0, result.output
>       assert "--runtime" in result.output
E       AssertionError: assert '--runtime' in '\x1b[1m                                                                                \x1b[0m\n\x1b[1m \x1b[0m\x1b[1;33mUsage: \x1b[0m\x1b[1mroot runtime prepare [OPTIONS] ROBOT_TYPES...\x1b[0m\x1b[1m                          \x1b[0m\x1b[1m \x1b[0m\n\x1b[1m                                                                                \x1b[0m\n Prepare active Python project runtime environments for a blueprint.            \n                                                                                \n\x1b[2m╭─\x1b[0m\x1b[2m Arguments \x1b[0m\x1b[2m─────────────────────────────────────────────────────────────────\x1b[0m\x1b[2m─╮\x1b[0m\n\x1b[2m│\x1b[0m \x1b[31m*\x1b[0m    robot_types      \x1b[1;33mROBOT_TYPES...\x1b[0m  Blueprints or modules to prepare       \x1b[2m│\x1b[0m\n\x1b[2m│\x1b[0m                                       \x1b[2;31m[required]                      \x1b[0m       \x1b[2m│\x1b[0m\n\x1b[2m╰──────────────────────────────────────────────────────────────────────────────╯\x1b[0m\n\x1b[2m╭─\x1b[0m\x1b[2m Options \x1b[0m\x1b[2m───────────────────────────────────────────────────────────────────\x1b[0m\x1b[2m─╮\x1b[0m\n\x1b[2m│\x1b[0m \x1b[1;36m-\x1b[0m\x1b[1;36m-runtime\x1b[0m          \x1b[1;33mTEXT\x1b[0m  Runtime name to prepare                             \x1b[2m│\x1b[0m\n\x1b[2m│\x1b[0m \x1b[1;36m-\x1b[0m\x1b[1;36m-disable\x1b[0m          \x1b[1;33mTEXT\x1b[0m  Module names to disable                             \x1b[2m│\x1b[0m\n\x1b[2m│\x1b[0m \x1b[1;36m-\x1b[0m\x1b[1;36m-option\x1b[0m   \x1b[1;32m-o\x1b[0m      \x1b[1;33mTEXT\x1b[0m                                                      \x1b[2m│\x1b[0m\n\x1b[2m│\x1b[0m \x1b[1;36m-\x1b[0m\x1b[1;36m-config\x1b[0m   \x1b[1;32m-c\x1b[0m      \x1b[1;33mPATH\x1b[0m  Path to config file                                 \x1b[2m│\x1b[0m\n\x1b[2m│\x1b[0m                          \x1b[2m[default: ....../home/runner/.config/dimos]\x1b[0m               \x1b[2m│\x1b[0m\n\x1b[2m│\x1b[0m \x1b[1;36m-\x1b[0m\x1b[1;36m-help\x1b[0m             \x1b[1;33m    \x1b[0m  Show this message and exit.                         \x1b[2m│\x1b[0m\n\x1b[2m╰──────────────────────────────────────────────────────────────────────────────╯\x1b[0m\n\n'
E        +  where '\x1b[1m                                                                                \x1b[0m\n\x1b[1m \x1b[0m\x1b[1;33mUsage: \x1b[0m\x1b[1mroot runtime prepare [OPTIONS] ROBOT_TYPES...\x1b[0m\x1b[1m                          \x1b[0m\x1b[1m \x1b[0m\n\x1b[1m                                                                                \x1b[0m\n Prepare active Python project runtime environments for a blueprint.            \n                                                                                \n\x1b[2m╭─\x1b[0m\x1b[2m Arguments \x1b[0m\x1b[2m─────────────────────────────────────────────────────────────────\x1b[0m\x1b[2m─╮\x1b[0m\n\x1b[2m│\x1b[0m \x1b[31m*\x1b[0m    robot_types      \x1b[1;33mROBOT_TYPES...\x1b[0m  Blueprints or modules to prepare       \x1b[2m│\x1b[0m\n\x1b[2m│\x1b[0m                                       \x1b[2;31m[required]                      \x1b[0m       \x1b[2m│\x1b[0m\n\x1b[2m╰──────────────────────────────────────────────────────────────────────────────╯\x1b[0m\n\x1b[2m╭─\x1b[0m\x1b[2m Options \x1b[0m\x1b[2m───────────────────────────────────────────────────────────────────\x1b[0m\x1b[2m─╮\x1b[0m\n\x1b[2m│\x1b[0m \x1b[1;36m-\x1b[0m\x1b[1;36m-runtime\x1b[0m          \x1b[1;33mTEXT\x1b[0m  Runtime name to prepare                             \x1b[2m│\x1b[0m\n\x1b[2m│\x1b[0m \x1b[1;36m-\x1b[0m\x1b[1;36m-disable\x1b[0m          \x1b[1;33mTEXT\x1b[0m  Module names to disable                             \x1b[2m│\x1b[0m\n\x1b[2m│\x1b[0m \x1b[1;36m-\x1b[0m\x1b[1;36m-option\x1b[0m   \x1b[1;32m-o\x1b[0m      \x1b[1;33mTEXT\x1b[0m                                                      \x1b[2m│\x1b[0m\n\x1b[2m│\x1b[0m \x1b[1;36m-\x1b[0m\x1b[1;36m-config\x1b[0m   \x1b[1;32m-c\x1b[0m      \x1b[1;33mPATH\x1b[0m  Path to config file                                 \x1b[2m│\x1b[0m\n\x1b[2m│\x1b[0m                          \x1b[2m[default: ....../home/runner/.config/dimos]\x1b[0m               \x1b[2m│\x1b[0m\n\x1b[2m│\x1b[0m \x1b[1;36m-\x1b[0m\x1b[1;36m-help\x1b[0m             \x1b[1;33m    \x1b[0m  Show this message and exit.                         \x1b[2m│\x1b[0m\n\x1b[2m╰──────────────────────────────────────────────────────────────────────────────╯\x1b[0m\n\n' = <Result okay>.output

result     = <Result okay>

.../robot/cli/test_dimos.py:417: AssertionError
dimos.hardware.whole_body.openarm.test_adapter::test_openarm_dual_configures_side_gravity_models
Stack Traces | 3.12s run time
def test_openarm_dual_configures_side_gravity_models() -> None:
        adapter = OpenArmDualWholeBodyAdapter(use_mock_bus=True)
    
        left = adapter._robot_spec.groups["left_arm"]
        right = adapter._robot_spec.groups["right_arm"]
>       assert str(left.gravity_model_path).endswith("openarm_v10_left.urdf")

adapter    = <dimos.hardware.whole_body.openarm.adapter.OpenArmDualWholeBodyAdapter object at 0xff1b63d086b0>
left       = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/openarm_description.tar.gz after 3 att...scription.tar.gz']' returned non-zero exit status 1.") raised in repr()] DamiaoJointGroupSpec object at 0xff1b63d08320>
right      = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/openarm_description.tar.gz after 3 att...scription.tar.gz']' returned non-zero exit status 1.") raised in repr()] DamiaoJointGroupSpec object at 0xff1b63d08890>

.../whole_body/openarm/test_adapter.py:62: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/utils/data.py:369: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/openarm_description.tar.gz after 3 att...fs/openarm_description.tar.gz']' returned non-zero exit status 1.") raised in repr()] LfsPath object at 0xff1aa5090fd0>
dimos/utils/data.py:347: in _ensure_downloaded
    cache = get_data(filename)
        cache      = None
        filename   = '.../urdf/robot/openarm_v10_left.urdf'
        self       = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/openarm_description.tar.gz after 3 att...fs/openarm_description.tar.gz']' returned non-zero exit status 1.") raised in repr()] LfsPath object at 0xff1aa5090fd0>
dimos/utils/data.py:304: in get_data
    archive_path = _decompress_archive(_pull_lfs_archive(archive_name))
        archive_name = 'openarm_description'
        data_dir   = PosixPath('.../dimos/dimos/data')
        file_path  = PosixPath('.../dimos/dimos/data/.../urdf/robot/openarm_v10_left.urdf')
        name       = '.../urdf/robot/openarm_v10_left.urdf'
        nested_path = PosixPath('urdf/robot/openarm_v10_left.urdf')
        path_parts = ('openarm_description', 'urdf', 'robot', 'openarm_v10_left.urdf')
dimos/utils/data.py:248: in _pull_lfs_archive
    _lfs_pull(file_path, repo_root)
        file_path  = PosixPath('.../dimos/data/.lfs/openarm_description.tar.gz')
        filename   = 'openarm_description'
        repo_root  = PosixPath('.../work/dimos/dimos')
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

file_path = PosixPath('.../dimos/data/.lfs/openarm_description.tar.gz')
repo_root = PosixPath('.../work/dimos/dimos')

    def _lfs_pull(file_path: Path, repo_root: Path, *, retries: int = 2) -> None:
        relative_path = file_path.relative_to(repo_root)
    
        env = os.environ.copy()
        env["GIT_LFS_FORCE_PROGRESS"] = "1"
    
        last_err: subprocess.CalledProcessError | None = None
        for attempt in range(1, retries + 2):  # retries + 1 total attempts
            try:
                subprocess.run(
                    ["git", "lfs", "pull", "--include", str(relative_path)],
                    cwd=repo_root,
                    check=True,
                    env=env,
                )
                return
            except subprocess.CalledProcessError as e:
                last_err = e
                if attempt <= retries:
                    time.sleep(attempt)  # 1s, 2s backoff
    
>       raise RuntimeError(
            f"Failed to pull LFS file {file_path} after {retries + 1} attempts: {last_err}"
        )
E       RuntimeError: Failed to pull LFS file .../dimos/data/.lfs/openarm_description.tar.gz after 3 attempts: Command '['git', 'lfs', 'pull', '--include', 'data/.lfs/openarm_description.tar.gz']' returned non-zero exit status 1.

attempt    = 3
env        = {'ACCEPT_EULA': 'Y', 'ACTIONS_ID_TOKEN_REQUEST_TOKEN': 'eyJhbGciOiJSUzI1NiIsImtpZCI6IjM4ODI2YjE3LTZhMzAtNWY5Yi1iMTY5LT...-version=2.0', 'ACTIONS_ORCHESTRATION_ID': '215d4fda-aff1-438d-b02c-fd88ffe43804.tests.ubuntu-24_04-arm_3_14_fal', ...}
file_path  = PosixPath('.../dimos/data/.lfs/openarm_description.tar.gz')
last_err   = CalledProcessError(1, ['git', 'lfs', 'pull', '--include', 'data/.lfs/openarm_description.tar.gz'])
relative_path = PosixPath('data/.lfs/openarm_description.tar.gz')
repo_root  = PosixPath('.../work/dimos/dimos')
retries    = 2

dimos/utils/data.py:216: RuntimeError
dimos.robot.test_all_blueprints::test_blueprint_is_valid[gpd-mujoco-grasp-demo]
Stack Traces | 3.14s run time
blueprint_name = 'gpd-mujoco-grasp-demo'

    @pytest.mark.parametrize("blueprint_name", UBUNTU_BLUEPRINTS)
    def test_blueprint_is_valid(blueprint_name: str) -> None:
        """Validate blueprints that should import on the ubuntu-latest runner."""
>       _check_blueprint(blueprint_name)

blueprint_name = 'gpd-mujoco-grasp-demo'

dimos/robot/test_all_blueprints.py:106: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/robot/test_all_blueprints.py:82: in _check_blueprint
    blueprint = get_blueprint_by_name(blueprint_name)
        blueprint_name = 'gpd-mujoco-grasp-demo'
        message    = "Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command '['git', 'lfs', 'pull', '--include', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1."
dimos/robot/get_all_blueprints.py:47: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'gpd_mujoco_grasp_demo'
        module_path = 'dimos.robot.manipulators.xarm.blueprints.simulation'
        name       = 'gpd-mujoco-grasp-demo'
.../xarm/blueprints/simulation.py:50: in <module>
    address=str(XARM7_SIM_PATH),
        GPDGraspGenModule = <class 'dimos_gpd_grasp_demo.gpd_grasp_gen_module.GPDGraspGenModule'>
        GraspingModule = <class 'dimos.manipulation.grasping.grasping.GraspingModule'>
        MujocoSimModule = <class 'dimos.simulation.engines.mujoco_sim_module.MujocoSimModule'>
        ObjectSceneRegistrationModule = <class 'dimos.perception.object_scene_registration.ObjectSceneRegistrationModule'>
        PickAndPlaceModule = <class 'dimos.manipulation.pick_and_place_module.PickAndPlaceModule'>
        PointcloudGraspDemoController = <class 'dimos.manipulation.grasping.pointcloud_grasp_demo_controller.PointcloudGraspDemoController'>
        RerunBridgeModule = <class 'dimos.visualization.rerun.bridge.RerunBridgeModule'>
        SceneReconstructionModule = <class 'dimos.perception.reconstruction.scene_reconstruction.SceneReconstructionModule'>
        TargetGraspDemoController = <class 'dimos.manipulation.grasping.target_grasp_demo_controller.TargetGraspDemoController'>
        VGNGraspGenModule = <class 'dimos.manipulation.grasping.vgn_grasp_gen_module.VGNGraspGenModule'>
        XARM7_SIM_HOME = [0.0, 0.0, 0.0, 0.0, 0.0, -0.7, ...]
        XARM7_SIM_PATH = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command...ude', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.") raised in repr()] LfsPath object at 0xff1ad3e00c50>
        XARM7_VGN_OBSERVATION_HOME = [0.0, -0.247, 0.0, 0.909, 0.0, 1.15644, ...]
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/simulation.cpython-312.pyc'
        __doc__    = 'Simulation xArm perception manipulation blueprints.'
        __file__   = '.../work/dimos/dimos/.../xarm/blueprints/simulation.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0xff1a8c81fb60>
        __name__   = 'dimos.robot.manipulators.xarm.blueprints.simulation'
        __package__ = 'dimos.robot.manipulators.xarm.blueprints'
        __spec__   = ModuleSpec(name='dimos.robot.manipulators.xarm.blueprints.simulation', loader=<_frozen_importlib_external.SourceFileLo...ject at 0xff1a8c81fb60>, origin='.../work/dimos/dimos/.../xarm/blueprints/simulation.py')
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0xff1b435e2520>
        coordinator = <function coordinator at 0xff1ad3e0bba0>
        gpd_grasp_gen_blueprint = <function gpd_grasp_gen_blueprint at 0xff1ad0df7a60>
        make_xarm7_model_config = <function make_xarm7_model_config at 0xff1ad3dfc680>
        make_xarm_hardware = <function make_xarm_hardware at 0xff1ad3dfc180>
        math       = <module 'math' (built-in)>
        trajectory_task = <function trajectory_task at 0xff1b5e05ac00>
dimos/utils/data.py:369: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command...ude', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.") raised in repr()] LfsPath object at 0xff1ad3e00c50>
dimos/utils/data.py:347: in _ensure_downloaded
    cache = get_data(filename)
        cache      = None
        filename   = 'xarm7/scene.xml'
        self       = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command...ude', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.") raised in repr()] LfsPath object at 0xff1ad3e00c50>
dimos/utils/data.py:304: in get_data
    archive_path = _decompress_archive(_pull_lfs_archive(archive_name))
        archive_name = 'xarm7'
        data_dir   = PosixPath('.../dimos/dimos/data')
        file_path  = PosixPath('.../dimos/dimos/data/xarm7/scene.xml')
        name       = 'xarm7/scene.xml'
        nested_path = PosixPath('scene.xml')
        path_parts = ('xarm7', 'scene.xml')
dimos/utils/data.py:248: in _pull_lfs_archive
    _lfs_pull(file_path, repo_root)
        file_path  = PosixPath('.../dimos/data/.lfs/xarm7.tar.gz')
        filename   = 'xarm7'
        repo_root  = PosixPath('.../work/dimos/dimos')
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

file_path = PosixPath('.../dimos/data/.lfs/xarm7.tar.gz')
repo_root = PosixPath('.../work/dimos/dimos')

    def _lfs_pull(file_path: Path, repo_root: Path, *, retries: int = 2) -> None:
        relative_path = file_path.relative_to(repo_root)
    
        env = os.environ.copy()
        env["GIT_LFS_FORCE_PROGRESS"] = "1"
    
        last_err: subprocess.CalledProcessError | None = None
        for attempt in range(1, retries + 2):  # retries + 1 total attempts
            try:
                subprocess.run(
                    ["git", "lfs", "pull", "--include", str(relative_path)],
                    cwd=repo_root,
                    check=True,
                    env=env,
                )
                return
            except subprocess.CalledProcessError as e:
                last_err = e
                if attempt <= retries:
                    time.sleep(attempt)  # 1s, 2s backoff
    
>       raise RuntimeError(
            f"Failed to pull LFS file {file_path} after {retries + 1} attempts: {last_err}"
        )
E       RuntimeError: Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command '['git', 'lfs', 'pull', '--include', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.

attempt    = 3
env        = {'ACCEPT_EULA': 'Y', 'ACTIONS_ID_TOKEN_REQUEST_TOKEN': 'eyJhbGciOiJSUzI1NiIsImtpZCI6IjM4ODI2YjE3LTZhMzAtNWY5Yi1iMTY5LT...-version=2.0', 'ACTIONS_ORCHESTRATION_ID': '215d4fda-aff1-438d-b02c-fd88ffe43804.tests.ubuntu-24_04-arm_3_14_fal', ...}
file_path  = PosixPath('.../dimos/data/.lfs/xarm7.tar.gz')
last_err   = CalledProcessError(1, ['git', 'lfs', 'pull', '--include', 'data/.lfs/xarm7.tar.gz'])
relative_path = PosixPath('data/.lfs/xarm7.tar.gz')
repo_root  = PosixPath('.../work/dimos/dimos')
retries    = 2

dimos/utils/data.py:216: RuntimeError
dimos.robot.test_all_blueprints::test_blueprint_is_valid[vgn-mujoco-grasp-demo]
Stack Traces | 3.15s run time
blueprint_name = 'vgn-mujoco-grasp-demo'

    @pytest.mark.parametrize("blueprint_name", UBUNTU_BLUEPRINTS)
    def test_blueprint_is_valid(blueprint_name: str) -> None:
        """Validate blueprints that should import on the ubuntu-latest runner."""
>       _check_blueprint(blueprint_name)

blueprint_name = 'vgn-mujoco-grasp-demo'

dimos/robot/test_all_blueprints.py:106: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/robot/test_all_blueprints.py:82: in _check_blueprint
    blueprint = get_blueprint_by_name(blueprint_name)
        blueprint_name = 'vgn-mujoco-grasp-demo'
        message    = "Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command '['git', 'lfs', 'pull', '--include', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1."
dimos/robot/get_all_blueprints.py:47: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'vgn_mujoco_grasp_demo'
        module_path = 'dimos.robot.manipulators.xarm.blueprints.simulation'
        name       = 'vgn-mujoco-grasp-demo'
.../xarm/blueprints/simulation.py:50: in <module>
    address=str(XARM7_SIM_PATH),
        GPDGraspGenModule = <class 'dimos_gpd_grasp_demo.gpd_grasp_gen_module.GPDGraspGenModule'>
        GraspingModule = <class 'dimos.manipulation.grasping.grasping.GraspingModule'>
        MujocoSimModule = <class 'dimos.simulation.engines.mujoco_sim_module.MujocoSimModule'>
        ObjectSceneRegistrationModule = <class 'dimos.perception.object_scene_registration.ObjectSceneRegistrationModule'>
        PickAndPlaceModule = <class 'dimos.manipulation.pick_and_place_module.PickAndPlaceModule'>
        PointcloudGraspDemoController = <class 'dimos.manipulation.grasping.pointcloud_grasp_demo_controller.PointcloudGraspDemoController'>
        RerunBridgeModule = <class 'dimos.visualization.rerun.bridge.RerunBridgeModule'>
        SceneReconstructionModule = <class 'dimos.perception.reconstruction.scene_reconstruction.SceneReconstructionModule'>
        TargetGraspDemoController = <class 'dimos.manipulation.grasping.target_grasp_demo_controller.TargetGraspDemoController'>
        VGNGraspGenModule = <class 'dimos.manipulation.grasping.vgn_grasp_gen_module.VGNGraspGenModule'>
        XARM7_SIM_HOME = [0.0, 0.0, 0.0, 0.0, 0.0, -0.7, ...]
        XARM7_SIM_PATH = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command...ude', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.") raised in repr()] LfsPath object at 0xff1ad3e00c50>
        XARM7_VGN_OBSERVATION_HOME = [0.0, -0.247, 0.0, 0.909, 0.0, 1.15644, ...]
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/simulation.cpython-312.pyc'
        __doc__    = 'Simulation xArm perception manipulation blueprints.'
        __file__   = '.../work/dimos/dimos/.../xarm/blueprints/simulation.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0xff1a88a71130>
        __name__   = 'dimos.robot.manipulators.xarm.blueprints.simulation'
        __package__ = 'dimos.robot.manipulators.xarm.blueprints'
        __spec__   = ModuleSpec(name='dimos.robot.manipulators.xarm.blueprints.simulation', loader=<_frozen_importlib_external.SourceFileLo...ject at 0xff1a88a71130>, origin='.../work/dimos/dimos/.../xarm/blueprints/simulation.py')
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0xff1b435e2520>
        coordinator = <function coordinator at 0xff1ad3e0bba0>
        gpd_grasp_gen_blueprint = <function gpd_grasp_gen_blueprint at 0xff1ad0df7a60>
        make_xarm7_model_config = <function make_xarm7_model_config at 0xff1ad3dfc680>
        make_xarm_hardware = <function make_xarm_hardware at 0xff1ad3dfc180>
        math       = <module 'math' (built-in)>
        trajectory_task = <function trajectory_task at 0xff1b5e05ac00>
dimos/utils/data.py:369: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command...ude', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.") raised in repr()] LfsPath object at 0xff1ad3e00c50>
dimos/utils/data.py:347: in _ensure_downloaded
    cache = get_data(filename)
        cache      = None
        filename   = 'xarm7/scene.xml'
        self       = <[RuntimeError("Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command...ude', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.") raised in repr()] LfsPath object at 0xff1ad3e00c50>
dimos/utils/data.py:304: in get_data
    archive_path = _decompress_archive(_pull_lfs_archive(archive_name))
        archive_name = 'xarm7'
        data_dir   = PosixPath('.../dimos/dimos/data')
        file_path  = PosixPath('.../dimos/dimos/data/xarm7/scene.xml')
        name       = 'xarm7/scene.xml'
        nested_path = PosixPath('scene.xml')
        path_parts = ('xarm7', 'scene.xml')
dimos/utils/data.py:248: in _pull_lfs_archive
    _lfs_pull(file_path, repo_root)
        file_path  = PosixPath('.../dimos/data/.lfs/xarm7.tar.gz')
        filename   = 'xarm7'
        repo_root  = PosixPath('.../work/dimos/dimos')
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

file_path = PosixPath('.../dimos/data/.lfs/xarm7.tar.gz')
repo_root = PosixPath('.../work/dimos/dimos')

    def _lfs_pull(file_path: Path, repo_root: Path, *, retries: int = 2) -> None:
        relative_path = file_path.relative_to(repo_root)
    
        env = os.environ.copy()
        env["GIT_LFS_FORCE_PROGRESS"] = "1"
    
        last_err: subprocess.CalledProcessError | None = None
        for attempt in range(1, retries + 2):  # retries + 1 total attempts
            try:
                subprocess.run(
                    ["git", "lfs", "pull", "--include", str(relative_path)],
                    cwd=repo_root,
                    check=True,
                    env=env,
                )
                return
            except subprocess.CalledProcessError as e:
                last_err = e
                if attempt <= retries:
                    time.sleep(attempt)  # 1s, 2s backoff
    
>       raise RuntimeError(
            f"Failed to pull LFS file {file_path} after {retries + 1} attempts: {last_err}"
        )
E       RuntimeError: Failed to pull LFS file .../dimos/data/.lfs/xarm7.tar.gz after 3 attempts: Command '['git', 'lfs', 'pull', '--include', 'data/.lfs/xarm7.tar.gz']' returned non-zero exit status 1.

attempt    = 3
env        = {'ACCEPT_EULA': 'Y', 'ACTIONS_ID_TOKEN_REQUEST_TOKEN': 'eyJhbGciOiJSUzI1NiIsImtpZCI6IjM4ODI2YjE3LTZhMzAtNWY5Yi1iMTY5LT...-version=2.0', 'ACTIONS_ORCHESTRATION_ID': '215d4fda-aff1-438d-b02c-fd88ffe43804.tests.ubuntu-24_04-arm_3_14_fal', ...}
file_path  = PosixPath('.../dimos/data/.lfs/xarm7.tar.gz')
last_err   = CalledProcessError(1, ['git', 'lfs', 'pull', '--include', 'data/.lfs/xarm7.tar.gz'])
relative_path = PosixPath('data/.lfs/xarm7.tar.gz')
repo_root  = PosixPath('.../work/dimos/dimos')
retries    = 2

dimos/utils/data.py:216: RuntimeError
dimos.codebase_checks.test_no_all::test_no_all
Stack Traces | 5.84s run time
def test_no_all():
        """Fail if any file defines `__all__`."""
        dimos_dir = DIMOS_PROJECT_ROOT / "dimos"
        hits = find_all_definitions()
        if hits:
            listing = "\n".join(f"  - {p.relative_to(dimos_dir)}:{lineno}" for p, lineno in hits)
>           raise AssertionError(
                f"Found __all__ definition(s) in dimos/:\n{listing}\n\n"
                "__all__ is not allowed. We don't use `from x import *`, so __all__ "
                "lists serve no purpose and are tedious to maintain. Remove them. For "
                "an import that exists purely to be re-exported, use `# noqa: F401`."
            )
E           AssertionError: Found __all__ definition(s) in dimos/:
E             - hardware/damiao/__init__.py:28
E             - hardware/damiao/arm_adapter.py:408
E             - hardware/damiao/runtime.py:372
E             - hardware/damiao/specs.py:309
E             - hardware/damiao/whole_body_adapter.py:251
E             - .../manipulators/a750/__registry__.py:19
E             - .../manipulators/mock/__registry__.py:19
E             - .../manipulators/openarm/__registry__.py:19
E             - .../manipulators/openarm_rs/__registry__.py:19
E             - .../manipulators/openarm_rs/adapter.py:132
E             - .../manipulators/piper/__registry__.py:19
E             - hardware/manipulators/registry.py:150
E             - .../manipulators/sim/__registry__.py:19
E             - .../manipulators/xarm/__registry__.py:19
E             - .../whole_body/openarm/adapter.py:169
E             - perception/reconstruction/__init__.py:20
E           
E           __all__ is not allowed. We don't use `from x import *`, so __all__ lists serve no purpose and are tedious to maintain. Remove them. For an import that exists purely to be re-exported, use `# noqa: F401`.

dimos_dir  = PosixPath('.../dimos/dimos/dimos')
hits       = [(PosixPath('.../dimos/dimos/dimos/hardware/damiao/__init__.py'), 28), (PosixPath('.../runner/work/dim...ter.py'), 251), (PosixPath('.../dimos/dimos/dimos/.../manipulators/a750/__registry__.py'), 19), ...]
listing    = '  - hardware/damiao/__init__.py:28\n  - hardware/damiao/arm_adapter.py:408\n  - hardware/damiao/runtime.py:372\n  - h.../xarm/__registry__.py:19\n  - .../whole_body/openarm/adapter.py:169\n  - perception/reconstruction/__init__.py:20'

dimos/codebase_checks/test_no_all.py:51: AssertionError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@mintlify

mintlify Bot commented Jun 30, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
dimensional 🟢 Ready View Preview Jun 30, 2026, 11:26 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

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.

2 participants