Skip to content

Replace RPC with native Zenoh RPC - DIM-1145#3176

Open
bogwi wants to merge 1 commit into
mainfrom
danvi/dim1145/replace-rpc-with-zenoh-nat-rpc
Open

Replace RPC with native Zenoh RPC - DIM-1145#3176
bogwi wants to merge 1 commit into
mainfrom
danvi/dim1145/replace-rpc-with-zenoh-nat-rpc

Conversation

@bogwi

@bogwi bogwi commented Jul 25, 2026

Copy link
Copy Markdown
Member

No description provided.

@mintlify

mintlify Bot commented Jul 25, 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 Jul 25, 2026, 1:10 AM

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

@greptile-apps

greptile-apps Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Replaces the pub/sub-emulated Zenoh RPC backend with native Zenoh queryables and queries.

  • Routes Zenoh transport selection to the new implementation.
  • Adds native request, response, exception, timeout, retry, and lifecycle handling.
  • Raises the minimum eclipse-zenoh dependency to 1.9.0 and updates tests and documentation.

Confidence Score: 5/5

The PR appears safe to merge with no blocking failures remaining from the eligible follow-up threads.

No blocking failure remains.

Important Files Changed

Filename Overview
dimos/protocol/rpc/zenohrpc.py Introduces the native Zenoh RPC client/server implementation, including query handling, retries, exception propagation, and teardown.
dimos/protocol/rpc/pubsubrpc.py Removes the former pub/sub-backed ZenohRPC implementation while retaining the LCM and shared-memory backends.
dimos/core/transport_factory.py Resolves Zenoh RPC transport configuration to the new native implementation.
pyproject.toml Raises the minimum eclipse-zenoh version required by the native RPC APIs.
uv.lock Synchronizes the locked project dependency requirement with the updated Zenoh minimum version.

Sequence Diagram

sequenceDiagram
    participant Client
    participant Zenoh
    participant Server
    Client->>Zenoh: "get dimos/rpc/{name}"
    Zenoh->>Server: Query(payload)
    Server->>Server: Execute handler in thread pool
    alt successful call
        Server-->>Zenoh: reply(serialized result)
        Zenoh-->>Client: on_reply(result)
    else handler exception
        Server-->>Zenoh: reply_err(serialized exception)
        Zenoh-->>Client: on_reply(error)
    else query completes without response
        Zenoh-->>Client: on_finalize()
        Client->>Zenoh: retry until RPC deadline
    end
Loading

Reviews (2): Last reviewed commit: "- create dimos/protocol/rpc/zenohrpc.py" | Re-trigger Greptile

Comment thread dimos/protocol/rpc/zenohrpc.py
Comment thread dimos/protocol/rpc/zenohrpc.py
@codecov

codecov Bot commented Jul 25, 2026

Copy link
Copy Markdown

Codecov Report

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

Files with missing lines Patch % Lines
dimos/protocol/rpc/zenohrpc.py 89.65% 6 Missing and 6 partials ⚠️
@@           Coverage Diff            @@
##             main    #3176    +/-   ##
========================================
  Coverage   74.17%   74.18%            
========================================
  Files        1108     1109     +1     
  Lines      104052   104157   +105     
  Branches     9530     9545    +15     
========================================
+ Hits        77179    77266    +87     
- Misses      24129    24140    +11     
- Partials     2744     2751     +7     
Flag Coverage Δ
OS-ubuntu-24.04-arm 67.66% <81.96%> (+0.01%) ⬆️
OS-ubuntu-latest 69.73% <82.78%> (+<0.01%) ⬆️
Py-3.10 69.72% <81.96%> (+0.01%) ⬆️
Py-3.11 69.72% <81.96%> (+<0.01%) ⬆️
Py-3.12 69.72% <81.96%> (+<0.01%) ⬆️
Py-3.13 69.72% <82.78%> (+<0.01%) ⬆️
Py-3.14 69.73% <82.78%> (+<0.01%) ⬆️
Py-3.14t 69.72% <81.96%> (+<0.01%) ⬆️
SelfHosted-Large 29.65% <26.22%> (-0.02%) ⬇️
SelfHosted-Linux 36.21% <26.22%> (-0.02%) ⬇️
SelfHosted-macOS 35.19% <77.86%> (-0.05%) ⬇️

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

Files with missing lines Coverage Δ
dimos/core/test_transport_factory.py 100.00% <100.00%> (ø)
dimos/core/transport_factory.py 100.00% <100.00%> (ø)
dimos/protocol/rpc/pubsubrpc.py 88.02% <ø> (-0.60%) ⬇️
dimos/protocol/rpc/test_spec.py 95.08% <100.00%> (+0.02%) ⬆️
dimos/protocol/rpc/zenohrpc.py 89.65% <89.65%> (ø)

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

@mintlify

mintlify Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

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

Project Status Preview Updated (UTC)
dimensional 🟡 Building Jul 25, 2026, 1:09 AM

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

- cutover imports and delete the emulated ZenohRPC
- eclipse-zenoh version floor + uv lock + docs line
@bogwi
bogwi force-pushed the danvi/dim1145/replace-rpc-with-zenoh-nat-rpc branch from fc5a49d to f03d851 Compare July 25, 2026 01:47
@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Jul 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PlzReview ready-to-merge Required CI checks have passed on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant