Repository navigation
Conversation
TomCC7
added this pull request to stack #4253
September 22, 2026 02:32
This was referenced Oct 1, 2026
Member
Author
|
Superseded by the user-approved seven-layer review chain: #4247 → #4252 → #4254 → #4362 → #4363 → #4364 → #4365. Four new stacked drafts split authoring, runtime/minimum storage compatibility, integrated recording/replay, and retirement. Their final tracked source tree equals this preserved complete reference. This PR is closed only to remove the combined review surface; feat/cdr-runtime-cutover and its history remain intact. New-layer CI is pending; M20/multicast/manual gates remain open. No merge or force push. |
This was referenced Oct 1, 2026
TomCC7
removed this pull request from stack #4253
October 1, 2026 07:57
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Historical combined CDR PR — closed and unmerged. Current work is GitHub native stack #4372, eight layers. Open #4247 and use its native
1/8stack badge to navigate all layers:#4247 → #4366 → #4367 → #4368 → #4369 → #4370 → #4371 → #4387.
The runtime portion is now #4369; authoring, recording/replay and retirement have their separate layers. This historical PR and its branch/reviews remain preserved.
Problem and behavior
Fourth draft in the six-stage CDR stack, based on #4254. Typed runtime streams, native modules, browser command channels and recording paths use generated ROS2-layout messages and encapsulated CDR. Raw LCM and Zenoh remain transports; Python-object serialization stays separate.
The change extracts geometry, timestamp, NumPy/Open3D and viewer helpers, migrates runtime consumers to nested generated fields, integrates C++/Rust SDK codecs, advertises schemas to browser clients, and passes complete metadata to storage/replay. WebXR and phone command frames identify their channel and qualified message type explicitly. Legacy unframed bytes and old typed SQLite codecs are rejected rather than decoded through fallback paths. This is an intentional API/wire break.
External message authors now configure a project once and use
dimos buildorpip install .. The CLI and PEP 517/660 backend share one lightweight implementation; custom builds do not build the DimOS runtime. Built-in messages are a separate prebuilt package. Python, C++ and Rust reuse dependency-owned types, with exact versions, ABI/schema checks and full MCAP schema closure. The guide embeds the real compiled module examples rather than relying on shell-script links. See the guide and cumulative demo instructions.Verification
Published HEAD:
cb982817bde248baa70a6fa69cc9ecc275c43707.This latest commit changes diagnostics only: xdist prints a dead worker's crash dump immediately, and long-running CI tests emit non-fatal thread stacks. Assertions, runtime code and execution limits are unchanged. A deliberately aborted isolated worker verified that the actual traceback reaches the controller while pytest still fails. On Python 3.11, the exact prior message wheel passed four focused ObserveSkill/collision tests and ten repeated ObserveSkill tests using in-memory LCM; this is not host UDP acceptance.
Latest exact-HEAD main CI, codegen/Jazzy, and nonpublishing full wheel matrix are terminal success, without a retry on this HEAD. Main includes Python 3.10/3.11/3.12 x86_64 and Python 3.12 ARM64; self-hosted jobs remain skipped. The previously affected ObserveSkill and collision-policy tests passed on Python 3.11. The earlier intermittent crash was not reproduced or assigned a proven root cause; its evidence remains below, and the diagnostic improvement does not claim a runtime fix.
Latest UX/build validation:
20.5 → Python 21.5 → C++ 22.5 → Rust 23.5, preserving Header and sequence. CMake presets, exported SDK consumption, locked Rust build, documentation-source drift checks, strict typing across 10 files and repository hooks pass locally.7a862e470, message-codegen and independent Jazzy reference and nonpublishing full wheel matrix are success. Main CI attempt 1 ended red: Python 3.10 had one existing Zenoh async-RPC test exceed its unchanged 100 ms queue wait (6,335 passed); fail-fast cancelled Python 3.11. Both Python 3.12 lanes, native, Rust, Web, lint and executable documentation passed. Attempt 2 passed Python 3.10, but Python 3.11 lost a worker duringtest_observe_returns_published_frameand was cancelled at the existing 30-minute job limit with a collision-policy test outstanding. The main aggregate remains failure. The available log has no crash traceback; local collision-policy tests pass, while local ObserveSkill reproduction is blocked by the existing host LCM startup limitation. No further rerun, timeout relaxation or gate change was made. Earlier green runs below do not substitute for this final main result.Prior migration evidence (before the new UX/build batch):
b6884a186, the cumulative Python → C++ → Rust → Python Zenoh blueprint recorded nine CDR rows through the native Rust recorder with zero encoding errors, stopped every producer, independently decoded all rows, and replayed byte-identical per-stream values.b6884a186, a fresh-sdist root wheel build succeeded offline; a fresh isolated installation with no source PYTHONPATH verifies 153 provider types, CDR fields/stamps, complete schemas, helper modules, web assets, raw LCM retained and olddimos-lcmdependency absent.Exact-HEAD terminal results at
9cd5cedd3ea90864565048d747846f7ec3755389:Self-hosted and large-test jobs were skipped; software CI does not establish hardware acceptance. The runtime-head main/codegen runs also passed before the final workflow-only change.
See real-data provenance and regression evidence, cumulative recording, and message authoring user stories. Actual Rerun browser screenshots and MCAP files are retained as review artifacts; human visual acceptance has not occurred. The final colored image/telemetry demo ran at
9cd5cedd3; its actual screenshot and MCAP have now been saved through the supported Library upload workflow, with delivery to the user still pending. Earlierb6884a186screenshot/MCAP are saved in Library but have not been delivered to the user; the older75b31da0bscreenshot was delivered separately.Remaining acceptance gates
This remains an unmerged draft proposal. The source/build dependency audit finds remaining old message-repository references only in M20 deployment and native DrDDS bridge files. Its proprietary SDK and ABI-compatible build environment are unavailable, so complete stage-6 dependency retirement is blocked there. No claim of whole-repository dependency removal is made.
Default-host LCM multicast remains unavailable without host-network changes; final local cumulative LCM acceptance is open. The same transport has earlier and CI conformance evidence, which is distinct from this final-host demo. Foxglove browser access redirects to sign-in; no credentials or account were created. Rerun rendered real captured data and custom fields, but human image/pose/custom-field approval and full stage-3/5 visual acceptance remain open. No physical robot operation, RPC prewarming, timeout relaxation, or runtime legacy typed-recording fallback was introduced.
The OpenSpec checklist remains authoritative. Stages 3.5–3.6, cumulative human/transport gates in 4–5, and complete dependency retirement/final acceptance in 6 cannot be marked complete from focused tests or screenshots alone. The latest exact-HEAD main CI, codegen/Jazzy and full wheel matrix passed. The prior Python 3.11 crash/job-timeout remains a recorded intermittent reliability concern, not a proven fixed defect. The external/manual gates above remain open.
The independent #3854–#3942 stack is not blocked by this CDR proposal. EpisodeStatus remains a future compatibility note; this draft imports none of that stack.
AI assistance
Codex implemented and tested these draft changes. Human review is pending.
Checklist