Skip to content

fix(zenoh): route local sessions through the coordinator router - #3374

Draft
Nabla7 wants to merge 1 commit into
mainfrom
fix/zenoh-local-router
Draft

fix(zenoh): route local sessions through the coordinator router#3374
Nabla7 wants to merge 1 commit into
mainfrom
fix/zenoh-local-router

Conversation

@Nabla7

@Nabla7 Nabla7 commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Start one local Zenoh router with the ModuleCoordinator.
  • Connect Python worker, coordinator RPC, and native-module sessions to that router.
  • Preserve explicit robot endpoints on the router and restore the prior environment on shutdown.
  • Treat an already-running local router as reusable.

Root cause

Independent peer sessions relied on multicast discovery. On macOS and restricted networks, sibling processes could fail to discover each other or lose reachability even though they belonged to one DimOS run.

The coordinator now owns the local routing topology while typed streams and RPC continue using the normal Zenoh implementations.

Validation

  • Zenoh service, default-connect, and coordinator RPC tests
  • 15 tests passed
  • Rust cargo fmt and cargo clippy passed
  • Repository pre-commit hooks passed

@mintlify

mintlify Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

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

Project Status Preview Updated (UTC)
dimensional 🟢 Ready View Preview Aug 5, 2026, 11:01 AM

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

@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

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

Files with missing lines Patch % Lines
dimos/protocol/service/zenohservice.py 38.33% 35 Missing and 2 partials ⚠️
dimos/core/coordination/module_coordinator.py 40.00% 12 Missing and 3 partials ⚠️
dimos/core/native_module.py 33.33% 1 Missing and 1 partial ⚠️
@@            Coverage Diff             @@
##             main    #3374      +/-   ##
==========================================
+ Coverage   75.80%   75.83%   +0.02%     
==========================================
  Files        1172     1172              
  Lines      113568   113644      +76     
  Branches    10258    10269      +11     
==========================================
+ Hits        86090    86180      +90     
- Misses      24492    24521      +29     
+ Partials     2986     2943      -43     
Flag Coverage Δ
OS-ubuntu-24.04-arm 69.91% <44.89%> (-0.03%) ⬇️
OS-ubuntu-latest 71.91% <44.89%> (-0.03%) ⬇️
Py-3.10 71.90% <44.89%> (-0.03%) ⬇️
Py-3.11 71.90% <44.89%> (-0.03%) ⬇️
Py-3.12 71.90% <44.89%> (-0.03%) ⬇️
Py-3.13 71.91% <44.89%> (-0.02%) ⬇️
Py-3.14 71.91% <44.89%> (-0.03%) ⬇️
Py-3.14t 71.90% <44.89%> (-0.03%) ⬇️
SelfHosted-Linux 35.74% <36.73%> (-0.01%) ⬇️

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

Files with missing lines Coverage Δ
dimos/core/coordination/coordinator_rpc.py 95.38% <100.00%> (+0.22%) ⬆️
dimos/protocol/service/test_zenohservice.py 100.00% <100.00%> (ø)
dimos/core/native_module.py 84.64% <33.33%> (+8.55%) ⬆️
dimos/core/coordination/module_coordinator.py 89.25% <40.00%> (+3.19%) ⬆️
dimos/protocol/service/zenohservice.py 69.03% <38.33%> (-5.31%) ⬇️

... and 3 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.

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.

1 participant