Bug
uv run from inside a workspace member with its own .venv/ uses that venv, not the workspace's shared .venv. Per-package venvs may be missing transitive deps that the workspace sync would install — silently producing ModuleNotFoundError on a per-package basis.
Currently in this checkout:
ada_mj/.venv <- stale
ada_assets/.venv <- stale
mj_manipulator_ros/.venv <- stale
geodude and mj_manipulator correctly have no per-package venv. The mismatch was the root cause of the --viser failure tracked in mj_manipulator#162 / ada_mj#37 / geodude#194: ada_mj's stale venv masked the missing deps.
Repro
cd robot-code/ada_mj
uv venv # creates ada_mj/.venv accidentally
# now any later `uv sync` at the workspace root won't reach this venv
uv run python -m ada_mj --viser # may fail with ModuleNotFoundError
Fix
Add a wipe step to setup.sh between repo cloning and uv sync. Catches all */.venv one level deep.
Out of scope (follow-up)
setup.sh doesn't clone ada_assets / ada_mj despite their being workspace members; that's a separate issue.
Bug
uv runfrom inside a workspace member with its own.venv/uses that venv, not the workspace's shared.venv. Per-package venvs may be missing transitive deps that the workspace sync would install — silently producingModuleNotFoundErroron a per-package basis.Currently in this checkout:
geodudeandmj_manipulatorcorrectly have no per-package venv. The mismatch was the root cause of the--viserfailure tracked in mj_manipulator#162 / ada_mj#37 / geodude#194: ada_mj's stale venv masked the missing deps.Repro
Fix
Add a wipe step to
setup.shbetween repo cloning anduv sync. Catches all*/.venvone level deep.Out of scope (follow-up)
setup.shdoesn't cloneada_assets/ada_mjdespite their being workspace members; that's a separate issue.