Skip to content

fix(realsense): move validator to 0.21, matching every other crate - #3868

Open
mustafab0 wants to merge 1 commit into
mainfrom
mb/grasp-01-realsense-validator
Open

fix(realsense): move validator to 0.21, matching every other crate#3868
mustafab0 wants to merge 1 commit into
mainfrom
mb/grasp-01-realsense-validator

Conversation

@mustafab0

Copy link
Copy Markdown
Contributor

dimos-module, the ray tracing mapper and the mls planner all moved to validator 0.21; the realsense crate was left on 0.20. Both versions end up in its dependency graph, so its Config derived Validate from 0.20 while Module::Config wanted 0.21, and cargo check failed on an unsatisfied trait bound. This blocks any blueprint composing RealSenseCamera, which is now every hardware grasping run.

Every other Cargo.toml in the repo declares the same "0.21" string and there is no workspace dependency table to inherit from, so this aligns realsense with that convention rather than loosening its constraint. Reproduced the failure by putting 0.20 back (error[E0277]: required for <RealSense as Module>::Config to implement ModuleConfig) and confirmed cargo check is clean on 0.21; the lockfile is consistent under --locked.

First of nine in the xArm grasping re-landing stack.

dimos-module, the ray tracing mapper and the mls planner all moved to validator
0.21; the realsense crate was left on 0.20. Both end up in its dependency graph,
so its Config derived Validate from 0.20 while Module::Config wanted 0.21 and
cargo check failed on an unsatisfied trait bound. Every other Cargo.toml in the
repo declares the same "0.21" string -- there is no workspace dependency table
to inherit from -- so this aligns realsense with that convention rather than
loosening its constraint.

This blocks any blueprint composing RealSenseCamera, which is now every hardware
grasping run.
@codecov

codecov Bot commented Sep 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

@@           Coverage Diff           @@
##             main    #3868   +/-   ##
=======================================
  Coverage   77.64%   77.64%           
=======================================
  Files        1323     1323           
  Lines      125419   125419           
  Branches    10911    10911           
=======================================
  Hits        97384    97384           
  Misses      24890    24890           
  Partials     3145     3145           
Flag Coverage Δ
OS-ubuntu-24.04-arm 74.31% <ø> (-0.01%) ⬇️
OS-ubuntu-latest 74.86% <ø> (+<0.01%) ⬆️
Py-3.10 74.85% <ø> (+<0.01%) ⬆️
Py-3.11 74.85% <ø> (ø)
Py-3.12 74.85% <ø> (-0.01%) ⬇️
Py-3.13 74.85% <ø> (+<0.01%) ⬆️
Py-3.14 74.86% <ø> (+<0.01%) ⬆️
Py-3.14t 74.85% <ø> (-0.01%) ⬇️
SelfHosted-Large 30.21% <ø> (-0.01%) ⬇️
SelfHosted-Linux 34.71% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 2 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.

@greptile-apps

greptile-apps Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Updates the RealSense Rust workspace to use validator 0.21 and refreshes its dependency graph. The committed Cargo.lock still requires modification when Cargo is run with --locked, blocking reproducible RealSense builds until the lockfile is fully regenerated and committed.

Confidence Score: 4/5

Not safe to merge until the RealSense workspace lockfile supports locked Cargo resolution.

Isolated execution reproduced Cargo's lockfile-update failure for the changed workspace and showed that regenerating the lockfile allows locked metadata resolution.

Files Needing Attention: dimos/hardware/sensors/camera/realsense/rust/Cargo.lock needs a complete regeneration against the updated manifest and path dependency graph.

T-Rex T-Rex Logs

What T-Rex did

  • Executed the reproducible locked dependency graph validation script to compare the base and PR revision Cargo graphs.
  • Reviewed the base revision locked Cargo validation output to verify the lockfile state for the base revision.
  • Reviewed the PR revision locked Cargo validation output to verify the lockfile state for the PR revision.
  • Validated contract-level consistency by confirming the PR head’s Cargo.lock diverges from Cargo 1.97.1’s resolution, and demonstrated the need to regenerate the lockfile with cargo generate-lockfile, which produced a substantive diff.
  • Acknowledged the additional P1 finding proof and its accompanying review comment details.

View all artifacts

T-Rex Ran code and verified through T-Rex

Comments Outside Diff (2)

  1. dimos/hardware/sensors/camera/realsense/rust/Cargo.lock, line 3313 (link)

    P1 Locked Cargo resolution fails

    The refreshed RealSense lockfile still cannot satisfy Cargo's locked resolution: cargo metadata --locked, cargo tree --locked -i validator, and cargo check --locked all exit 101 because Cargo needs to update Cargo.lock. Regenerating the lockfile in an isolated checkout allows locked metadata to succeed, so commit the complete regenerated lockfile. Without this, reproducible CI and production builds using --locked are blocked.

    Artifacts

    Reproducible locked dependency graph validation script

    • Creates isolated base and PR worktrees, supplies test-only librealsense pkg-config metadata, and runs the narrow Cargo validation commands; takeaway: the proof can be rerun without product-code changes.

    Base revision locked Cargo validation output

    • Captured execution for greptile-base shows locked full metadata, validator tree, and compilation cannot update its tracked lockfile; takeaway: the pre-existing workspace lock was already non-reproducible.

    PR revision locked Cargo validation output

    • Captured execution for e6a3ede shows all locked graph commands exit 101, while regenerating a temporary lock lets locked metadata pass and yields a tracked-lock diff; takeaway: the PR lockfile remains inconsistent and blocks locked builds.

    View artifacts

    T-Rex Ran code and verified through T-Rex

  2. General comment

    P1 Committed RealSense Cargo.lock cannot satisfy --locked resolution

    • Bug
      • At PR revision e6a3ede, the independent workspace rejects cargo metadata --locked, cargo tree --locked -i validator, and cargo check --locked with exit code 101: Cargo says it cannot update Cargo.lock because --locked was passed. Temporary lockfile regeneration exits 0, and locked metadata then exits 0, showing the committed lockfile is stale/inconsistent.
    • Cause
      • The refreshed tracked lock graph does not match Cargo’s current resolution for the RealSense manifest and its local dimos-module path dependency.
    • Fix
      • Regenerate dimos/hardware/sensors/camera/realsense/rust/Cargo.lock using the supported Cargo toolchain after resolving dependencies, commit the complete resulting lockfile, and require cargo check --locked in an environment exposing librealsense2.

    T-Rex Ran code and verified through T-Rex

Reviews (1): Last reviewed commit: "fix(realsense): move validator to 0.21, ..." | Re-trigger Greptile

aclauer
aclauer previously approved these changes Sep 1, 2026

@aclauer aclauer left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I have a PR that is fixing this with workspace level dependencies for all these things that are shared by all native modules. Right now this module isn't in the top workspace, so it's a bit annoying but fix is coming.

Looks good to unblock!

@aclauer
aclauer dismissed their stale review September 1, 2026 17:08

Actually can you double check greptile on the Cargo lock? Just check that it's regenerated and updated i guess, ping me when ready

@github-actions github-actions Bot added the ready-to-merge Required CI checks have passed on this PR label Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants