Skip to content

WIP: audit remaining CDR graph boundaries before legacy cleanup - #4740

Draft
TomCC7 wants to merge 5 commits into
cc/feat/cdr-unit-defaultfrom
cc/feat/cdr-unit-cleanup
Draft

TomCC7 wants to merge 5 commits into
cc/feat/cdr-unit-defaultfrom
cc/feat/cdr-unit-cleanup

Conversation

@TomCC7

@TomCC7 TomCC7 commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

What this adds

WIP audit of remaining legacy message imports and typed ports before deleting old APIs.

Base: #4739. No legacy implementation is removed here.

How to check

python scripts/audit_cdr_boundaries.py --output /tmp/cdr-boundaries.json
python scripts/audit_cdr_boundaries.py --check

The audit reports 312 legacy port declarations and 998 imports. These are static candidates, not confirmed runtime failures. --check returns nonzero while candidates remain.

Repository hooks passed. Cleanup remains blocked on the four failures in #4739 and remaining graph migrations. Current status.

Review report: file map, scope and verification

Published CDR dependency update

Consume published dimos-cdrgen==0.1.2 throughout this stack, including packaging examples, the Python lock and the Nix generator wheel. PyPI release and successful publisher run. Downloaded wheel/sdist hashes match that run's artifacts exactly.

The external CDR library fix is available as fork release v0.2.4-dimos.1, pinned to its tested commit. Shared SDK API 0.2.0 is isolated in #4774; explicit legacy SDK 0.1.0 pins remain compatible and are respected by autofix. No DimOS PR has been merged.

Final combined-stack verification after installing the published generator: SDK 158, adapters 2, mapper 102, MLS 135, local planner 93, follower 63, V4L2 6 tests; all 12 real native/DimSim exchanges pass. The seven Nix source-staging layouts pass locked Cargo dependency resolution using archive 8101c8db4a50043f1dbd0127fd00220ec9b5a37a. Full Nix builds and hardware/model-dependent tests remain unverified. These are combined-tip results, not independent full test runs of every intermediate PR.

Current main has additional mapping/control changes that conflict with this stack. The dependency release update preserves the existing stack base; a main rebase is still required before merging. Final native acceptance passed on the stack tip: https://github.com/dimensionalOS/dimos/actions/runs/39851662834

Final native CI passed on the exact stack tip, including SDK/consumer builds, Rust tests and all 12 native/DimSim exchanges: https://github.com/dimensionalOS/dimos/actions/runs/39851662834

@TomCC7

TomCC7 commented Oct 21, 2026 •

Copy link
Copy Markdown
Member Author

Review report

Updated: 2026-10-21. Direct predecessor: #4739.

  • Head: 71c08893f7a770990f8c3bb7d8c95b2da6f624b5
  • Named base branch: cc/feat/cdr-unit-default at 75cfb7e8182eaea011f1fefd0f119ae54744a4a4
  • PR-recorded base: 75cfb7e8182eaea011f1fefd0f119ae54744a4a4; diff merge base: 75cfb7e8182eaea011f1fefd0f119ae54744a4a4

What changes and why the diff is large

Add a static legacy-boundary scanner and an explicit WIP status document. No legacy code is deleted by this PR.
1 audit script and 1 status document. This is an audit checkpoint, not implementation cleanup.

Review map

Suggested entry points: scripts/audit_cdr_boundaries.py, docs/development/cdr-cutover-status.md.
All 2 changed files are accounted for below. Grouping is by file role, not a claim that the implementation is minimal.

Complete file map

Implementation (1)

File Change Purpose
scripts/audit_cdr_boundaries.py added AST-only scan of legacy imports and typed In/Out declarations; optionally fail while candidates remain.

Documentation and replay inputs (1)

File Change Purpose
docs/development/cdr-cutover-status.md added Document unfinished graph/recording boundaries; does not remove legacy code.

Review focus and scope reductions

  • The scanner counts syntax candidates, not confirmed live wire failures. Internal driver values require graph-level review before deletion.
  • The status document now matches the fresh scan: 312 legacy typed-port candidates and 998 imports. No legacy message class was removed by this cleanup.
  • Caller migration and working capture/replay remain prerequisites for deletion. Keep the explicit historical decode boundary in the offline converter.

Validation

Fresh audit at 71c08893f7a770990f8c3bb7d8c95b2da6f624b5: 312 legacy port candidates, 998 legacy imports, status unfinished. --check returned 1 as designed. All-files repository hooks passed with cargo/native lint excluded. Installed-wheel helper imports, region CDR roundtrip, legacy Image import and the reviewer Rerun/MCAP example passed at this stack tip. Hardware and complete robot graphs were not run.

Reproduction commands, not executed here unless stated above

Run from this PR's own checkout root after installing its documented test dependencies. These are selected review entry points, not a claim of full-stack coverage.

python scripts/audit_cdr_boundaries.py --output /tmp/cdr-boundaries.json
python scripts/audit_cdr_boundaries.py --check

Remaining work

The four documented #4739 blockers and remaining business graphs prevent cleanup. Static candidate counts must not be presented as 312 confirmed runtime failures. Actual legacy removal is still absent.

@TomCC7
TomCC7 force-pushed the cc/feat/cdr-unit-cleanup branch from 7c6eb9d to 71c0889 Compare October 22, 2026 02:34
@TomCC7
TomCC7 removed this pull request from stack #4743 October 22, 2026 18:51
@TomCC7
TomCC7 added this pull request to stack #4776 October 22, 2026 18:52

This branch has not been deployed

No deployments
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