Skip to content

feat: default generated message ports to CDR - #4696

Closed
TomCC7 wants to merge 2 commits into
cc/feat/cdr-relocalization-replayfrom
cc/feat/cdr-boundary-cutover
Closed

TomCC7 wants to merge 2 commits into
cc/feat/cdr-relocalization-replayfrom
cc/feat/cdr-boundary-cutover

Conversation

@TomCC7

@TomCC7 TomCC7 commented Oct 20, 2026

Copy link
Copy Markdown
Member

Generated message ports previously fell through to pickle because generated classes do not expose lcm_encode. The default factory now selects registry-owned CDR on the configured LCM or Zenoh backend. The existing Python → C++ → Rust → Python example uses ordinary coordinator wiring without manual transport maps. Sensor QoS recognizes canonical names, with never-drop channel precedence retained.

Linear: https://linear.app/dimensional/project/message-encoding-refactor-05a3ddb4af3e/overview

Parent: #4695. This is the default generated-port boundary cutover; legacy typed ports and Python-object channels retain their distinct paths. No wire negotiation or old-recording fallback. Full graph/recorder/fixture acceptance and eventual legacy dependency retirement remain separate open gates.

Category Files Additions Deletions
Factory and CDR documentation 2 26 7
Factory regression tests 1 40 0
Exact three-language example 1 16 35
CI definitions 1 2 2

Manual local smoke (after installing this proposal checkout and its test dependencies):

LCM_DEFAULT_URL=memq:// python -m pytest --noconftest -o addopts='' -q dimos/core/test_transport_factory.py dimos/core/test_cdr_transport.py

The external example's existing CMake/Cargo build instructions remain in docs/development/messages-external-project.md; after building, from that external project:

python demo_modules.py --cpp build/cpp/telemetry_module --rust modules/target/debug/telemetry_module

Expected: PASS: coordinator Python -> C++ -> Rust -> Python over loopback Zenoh CDR. Manual execution requires an interactive terminal; decline optional host setup. No robot is used.

Validation: 37 source tests and 37 isolated installed-wheel tests passed (production modules preloaded from site-packages), two production files passed strict mypy, configured scoped hooks passed except unavailable Nix lint. Actual installed SDK example compiled C++/Rust and completed the default-factory coordinator exchange, including exact shared Header identity and the noninteractive manual refusal test. Main wheel built: SHA256 bbbe0c8d54a2b045d7993ff653f01ed07dd0cb24c3f8edcd355bf53c860c6044. First two native acceptance attempts exposed local CMake/pkg-config invocation omissions; corrected cached dependency paths passed. No CI polling, benchmark, hardware, or publication to a package registry.

@TomCC7 TomCC7 closed this Oct 20, 2026
@TomCC7
TomCC7 deleted the cc/feat/cdr-boundary-cutover branch October 20, 2026 18:11
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