Skip to content

fix(hardware): transport adapters follow the active pub/sub backend - #4070

Merged
mustafab0 merged 3 commits into
mainfrom
mb/fix-transport-adapter-backend
Sep 13, 2026
Merged

mustafab0 merged 3 commits into
mainfrom
mb/fix-transport-adapter-backend

Conversation

@mustafab0

@mustafab0 mustafab0 commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Since #3617 made Zenoh the default, _coerce_transport_to_backend rewrites blueprint-pinned LCMTransports to Zenoh, but the transport_lcm twist and whole-body adapters built raw LCMTransports themselves.

So the coordinator sent /go2/cmd_vel over LCM while GO2Connection listened on Zenoh, and odom was split the other way: the Go2 ignored every teleop and path command without any error.

Both adapters now default to make_transport, so they follow the global backend the same way the driver side does. R1 Pro had already opted into that per blueprint, so its override goes. The G1 coordinator had the same split.

Checked with a Zenoh round trip between the adapter and a coerced driver-side transport; tested on hardware.

Since Zenoh became the default (#3617), blueprint-pinned LCMTransports are
coerced to Zenoh, but the transport_lcm twist and whole-body adapters still
built raw LCMTransports. The coordinator published cmd_vel on LCM while
GO2Connection listened on Zenoh, so the Go2 ignored every command with no
error; G1 has the same split. Both adapters now default to make_transport,
which R1 Pro had already opted into per blueprint.
@codecov

codecov Bot commented Sep 11, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 66.66667% with 2 lines in your changes missing coverage. Please review.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
dimos/hardware/drive_trains/transport/adapter.py 66.66% 1 Missing ⚠️
dimos/hardware/whole_body/transport/adapter.py 66.66% 1 Missing ⚠️
@@            Coverage Diff             @@
##             main    #4070      +/-   ##
==========================================
+ Coverage   78.18%   78.57%   +0.38%     
==========================================
  Files        1436     1460      +24     
  Lines      135802   138221    +2419     
  Branches    11738    12709     +971     
==========================================
+ Hits       106176   108605    +2429     
+ Misses      26309    26268      -41     
- Partials     3317     3348      +31     
Components Coverage Δ
Tests 94.59% <ø> (-0.06%) ⬇️
Flag Coverage Δ
OS-ubuntu-24.04-arm 74.76% <66.66%> (+0.22%) ⬆️
OS-ubuntu-latest 75.47% <66.66%> (+0.37%) ⬆️
Py-3.10 75.24% <66.66%> (+0.15%) ⬆️
Py-3.11 75.45% <66.66%> (+0.35%) ⬆️
Py-3.12 75.45% <66.66%> (+0.35%) ⬆️
Py-3.13 ?
Py-3.14 ?
Py-3.14t ?
SelfHosted-Large 30.77% <ø> (+0.05%) ⬆️
SelfHosted-Linux 35.68% <ø> (+0.18%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...alaxea/r1pro/blueprints/basic/r1pro_coordinator.py 79.54% <ø> (-0.46%) ⬇️
dimos/hardware/drive_trains/transport/adapter.py 27.95% <66.66%> (+0.78%) ⬆️
dimos/hardware/whole_body/transport/adapter.py 27.08% <66.66%> (+0.76%) ⬆️

... and 173 files with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mustafab0
mustafab0 marked this pull request as ready for review September 11, 2026 02:35
@mustafab0
mustafab0 enabled auto-merge September 11, 2026 02:35
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Sep 11, 2026
@greptile-apps

greptile-apps Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 4/5

One non-blocking test-coverage concern remains: several real adapter endpoints are not exercised by the new backend-selection test.

Findings

  1. P2 Test real endpoints

Summary

  • Summary

  • The transport-backend test verifies only a shared command-velocity transport construction. It does not execute the adapters’ connection paths, which create additional odometry, motor-state, IMU, and motor-command transports.
  • Merge safety This can merge without blocking issues. Expanding the test to cover the real connection endpoints would reduce the chance that a future backend-selection regression reaches hardware integration undetected.

Reviews (1) · Last reviewed commit: "fix(hardware): transport adapters follow..."

Comment thread dimos/core/test_zenoh_transport.py Outdated
@github-actions github-actions Bot removed the ready-to-merge Required CI checks have passed on this PR label Sep 12, 2026
@mustafab0
mustafab0 added this pull request to the merge queue Sep 12, 2026
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Sep 12, 2026
Merged via the queue into main with commit d52c280 Sep 13, 2026
46 of 51 checks passed
@mustafab0
mustafab0 deleted the mb/fix-transport-adapter-backend branch September 13, 2026 00:23
@github-actions

Copy link
Copy Markdown
Contributor

Successfully created backport PR for release/0.0.14:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport release/0.0.14 ready-to-merge Required CI checks have passed on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants