build(kinova): add websockets + msgpack to the rollout client image deps#695
build(kinova): add websockets + msgpack to the rollout client image deps#695suchkristenwow wants to merge 1 commit into
Conversation
The C0 Kinova rollout client (scripts/kinova/rollout.py, end-to-end PR #81) is a torch-free real-Kinova rollout client whose policy client uses `websockets` (sync) + `msgpack` to talk to the policy server. It runs in the agent_bridge container, so its Python deps must be baked into the user overlay image instead of being pip-installed ephemerally into the running container (which is lost on image rebuild). Install them via pip in the shared `base` Dockerfile stage (which all services, including agent_bridge, extend). pip is used rather than a rosdep key because the Ubuntu Jammy apt `python3-websockets` candidate is 9.1, which does not satisfy the required `websockets>=13`. Versions: websockets>=13, msgpack>=1.0 (match end-to-end PR #81's pyproject). Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
|
Consider whether the change should land upstream in Overlapping files
|
|
What
Bake
websockets>=13andmsgpack>=1.0into the MoveIt Pro user-overlay Docker image via apip installlayer in the sharedbasestage of the workspaceDockerfile.Why
This is for the C0 Kinova rollout client (
scripts/kinova/rollout.py) added in end-to-end PR #81 (c0-kinova-rollout). That client is a torch-free real-Kinova rollout client whose policy client useswebsockets(sync) +msgpackto talk to a policy server. It runs inside the agent_bridge container, so its Python dependencies must live in the image.This closes the open checklist item in end-to-end PR #81:
Today those deps are only
pip installed ephemerally into the running container (moveit_pro-dev-1, imagemoveit-studio-dev:main-humble), so they vanish on every image rebuild. This change replaces that ephemeral workaround by baking them in atmoveit_pro buildtime.How
The workspace
Dockerfilebasestage is shared by every service via Docker Composeextends: base(basebuilds fromcontext: ${STUDIO_HOST_USER_WORKSPACE}), so theagent_bridgeservice inherits it. The deps are added withpip installright after the existingrosdep installstep — the same place the Dockerfile already invites additionalpip/aptinstalls.Why pip and not a rosdep key
python3-websockets/python3-msgpackare valid rosdep keys, but on the Ubuntu Jammy base (humble) the aptpython3-websocketscandidate is 9.1, which does not satisfy the requiredwebsockets>=13. Sowebsocketsmust come from pip to honor the version constraint; both are installed via pip for consistency.Versions
websockets>=13msgpack>=1.0(Match end-to-end PR #81's
pyproject.)Validation
hadolint(the repo's pre-commit Dockerfile linter, v2.14.0) passes with no warnings.🤖 Generated with Claude Code