Skip to content

feat: cut typed runtime and browser consumers over to CDR (5/8) - #4369

Draft
TomCC7 wants to merge 15 commits into
cc/feat/cdr-message-authoringfrom
cc/feat/cdr-runtime-cutover
Draft

TomCC7 wants to merge 15 commits into
cc/feat/cdr-message-authoringfrom
cc/feat/cdr-runtime-cutover

Conversation

@TomCC7

@TomCC7 TomCC7 commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Linear project: Message Encoding Refactor

Problem

Reviewers need the generator, bulk message definitions/packages and transport integration in their respective stack layers.

Solution

Runtime CDR cutover, including the raw dimos-lcm-transport Rust crate, workspace registration, Python/native bus interop demo and integration test commands. These transport files now first appear in this layer, with their existing runtime implementation preserved.

Layer 5/8 of native stack #4446. Published HEAD: 0e5cf368245210016e61df9c0ca0a11f3e4738a7. Base: cc/feat/cdr-message-authoring. Normal forward commits/merges; existing ancestry and reviews are preserved, with no force push.

Parent-relative git diff (binary lockfile excluded from textual line counts): 1137 files changed, 37951 insertions(+), 20085 deletions(-).

Layout-repair validation: unchanged namespace-policy test plus generator tests: 41 passed; ownership/project checks: 19 passed; clean source/wheel/sdist/editable installation with Cargo/rustc/CMake/C++ disabled: 1 passed. A fresh backend wheel has api modules/stubs and no stale package initializers. C++/Rust/schema outputs are byte-identical to the pre-layout validated outputs; final built-in generation --check passed. Scoped strict typing and hooks passed. These focused checks are not a complete new-HEAD CI pass.

Production Rust declarations now come from pinned ros2msg 0.5.3 in a normal Cargo build.rs; Python installation only packages its sources and does not invoke Cargo. C++ declaration and CDR field traversal use pinned upstream ROSIDL/FastRTPS templates, with documented strict-bool patches. Python uses rosbags-generated declarations and CDR traversal with scoped malformed-input checks; the separate handwritten wire-layout walker was removed. Default, bounds, ownership and Sequence compatibility adapters remain. PR1 core: ten files including both helpers total 1,380 physical lines versus the original eight-file 1,463. Including maintained typing stubs gives 1,493 -> 1,444, a net 49-line reduction (83 is core-only). Full-stack message_codegen maintained non-test sources total 2,573 lines including stubs; CLI/SDK sources elsewhere are outside that count. Vendored sources and generated/copied artifacts are disclosed separately. Runtime native consumers use the distributed message crate; the redundant four-file Python/Cargo bootstrap (126 lines) was removed. No generator code was hidden in uncounted helpers.

Exact-new-HEAD remote CI is pending; no reruns or manual dispatches were requested for this batch. Historical runs do not verify these commits. Benchmark investigation remains paused, without a waiver or weakened gate.

Complete proposal walkthrough. M20 SDK/access, host multicast and human viewer acceptance remain external; no hardware operation, registry release or merge is claimed.

Replaces closed, unmerged #4363. Original refs/history remain preserved.

Upstream generator contracts, compatibility adapters and maintenance counts.

Namespace repair: five nonempty upstream initializers and two matching typing stubs are relocated to ordinary api modules; the empty parser initializer is omitted. Imports/EmPy templates reference modules directly. Licenses and original upstream source paths/hashes remain recorded, with the relocation and omitted empty file documented in manifests. test_no_init_files is unchanged; no blanket vendor exemption was added. The earlier mypy vendor-discovery boundary remains separate, and first-party strict settings remain enabled. The coauthor policy check remains unresolved; no attribution removal/history rewrite, force push, benchmark gate change, rerun or manual CI dispatch was requested.

@codecov

codecov Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

❗ There is a different number of reports uploaded between BASE (7bb44ce) and HEAD (fc47830). Click for more details.

HEAD has 14 uploads less than BASE
Flag BASE (7bb44ce) HEAD (fc47830)
OS-ubuntu-24.04-arm 1 0
Py-3.12 3 0
OS-ubuntu-latest 3 0
Py-3.10 2 0
Py-3.11 2 0
OS-macos-latest 3 0
@@                        Coverage Diff                         @@
##           cc/feat/cdr-message-authoring    #4369       +/-   ##
==================================================================
- Coverage                          80.03%   41.77%   -38.27%     
==================================================================
  Files                               1709     1562      -147     
  Lines                             159446   149667     -9779     
  Branches                           15138    14207      -931     
==================================================================
- Hits                              127609    62520    -65089     
- Misses                             28168    84724    +56556     
+ Partials                            3669     2423     -1246     
Components Coverage Δ
Tests 33.73% <ø> (-60.44%) ⬇️
Flag Coverage Δ
MessageCodegen-macos-14 60.38% <ø> (ø)
MessageCodegen-ubuntu-latest 60.38% <ø> (ø)
OS-macos-latest ?
OS-ubuntu-24.04-arm ?
OS-ubuntu-latest ?
Py-3.10 ?
Py-3.11 ?
Py-3.12 ?

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

Files with missing lines Coverage Δ
dimos/agents/mcp/mcp_client.py 32.78% <ø> (-51.46%) ⬇️
dimos/agents/mcp/mcp_server.py 26.58% <ø> (-64.69%) ⬇️
dimos/agents/mcp/test_mcp_client.py 32.25% <ø> (-61.43%) ⬇️
dimos/agents/skills/navigation.py 30.71% <ø> (-10.80%) ⬇️
dimos/agents/skills/observe_skill.py 66.66% <ø> (-33.34%) ⬇️
dimos/agents/skills/person_follow.py 27.74% <ø> (-1.22%) ⬇️
dimos/agents/skills/test_navigation.py 69.86% <ø> (-12.81%) ⬇️
dimos/agents/skills/test_observe_skill.py 37.93% <ø> (-62.07%) ⬇️
...imos/agents/skills/test_unitree_skill_container.py 57.14% <ø> (-36.41%) ⬇️
...nts/skills/visual_servoing/detection_navigation.py 24.32% <ø> (-3.94%) ⬇️
... and 196 more

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

@TomCC7
TomCC7 removed this pull request from stack #4446 October 20, 2026 22:26

This branch was successfully deployed

No deployments
cachix — 4dcc03a3 Deployed Oct 15, 2026 by TomCC7 via cachix-build-macos #13006
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