Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 3 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ jobs:
with:
python-version: "3.11"
- run: uv lock --check
- run: uvx ruff@${RUFF_VERSION} check egomimic tests scripts tools
- run: uvx ruff@${RUFF_VERSION} format --check egomimic tests scripts tools
- run: uvx ruff@${RUFF_VERSION} check egomimic scripts tools
- run: uvx ruff@${RUFF_VERSION} format --check egomimic scripts tools

cpu-and-wheel:
configuration-audit:
runs-on: ubuntu-latest
timeout-minutes: 40
steps:
Expand All @@ -45,13 +45,6 @@ jobs:
source .venv/bin/activate
python scripts/audit_hydra_configs.py --output config-audit.json
HF_HUB_OFFLINE=1 python -m scripts.audit_components --output component-audit.json
- name: CPU functional and isolated installed-wheel gates
env:
HF_HUB_OFFLINE: "1"
WANDB_MODE: disabled
run: |
source .venv/bin/activate
pytest tests -q
- uses: actions/upload-artifact@v4
if: always()
with:
Expand Down
15 changes: 10 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Repo Agent Rules

See [the verification policy](docs/VERIFICATION_POLICY.md): keep tests and
verification fixtures outside this repository; never commit them.

## Shell / Command Execution
To run commands in the interactive shell, source `emimic/bin/activate` when it
exists. In worktrees where `emimic` is absent and the checked project
Expand Down Expand Up @@ -72,12 +75,12 @@ not imply a separate runtime for that task or model.
| Dataset filters, task prompts, camera/frame choices and experiment parameters | `egomimic/hydra_configs/`; calibration matrices in `hydra_configs/calibration/` |
| Shared Eva/Yam collection, local graph rollout, Zarr replay and upload | [robot/AGENTS.md](egomimic/robot/AGENTS.md), [docs/YAM_RUNTIME.md](docs/YAM_RUNTIME.md) |
| Offline normalization export for any model | [scripts/data/precompute_norm_stats.py](scripts/data/precompute_norm_stats.py), or `trainHydra.py norm_stats_only=true` |
| Focused CPU regression checks | `tests/test_pipeline*.py`, `test_hpt*.py`, `test_arc*.py`, `test_e1*.py`, `test_pi05*.py`, `test_wrist6d_roundtrip.py`, `test_robot_runtime.py`, `test_robot_graph_policy.py` |
| Offline configuration audits | `scripts/audit_hydra_configs.py`, `scripts/audit_components.py` |

Useful searches from the repository root:

```bash
rg --files egomimic/pipeline egomimic/rldb egomimic/eval egomimic/robot tests
rg --files egomimic/pipeline egomimic/rldb egomimic/eval egomimic/robot
rg -n '_target_:|action_mode:|coord_frame:|rotation_mode:' egomimic/hydra_configs
rg -n 'class BimanualCartesianEval|class PI05Stage|class MultiDataset' egomimic
```
Expand All @@ -100,9 +103,11 @@ rg -n 'class BimanualCartesianEval|class PI05Stage|class MultiDataset' egomimic
- `egomimic/campaigns/pi05/`, `e1_fold.py`, and `pi05_graph_eval.py` retain old
import names. Their implementations now live at the canonical paths above.
Use current YAML examples when migrating older serialized configuration APIs.
- Read the relevant tests before changing normalization, pose conventions or
checkpoint loading. Verify behavior with small CPU fixtures before a cluster
run; hardware and pretrained-model validation are separate from those tests.
- Do not commit tests, test fixtures, or local verification scripts. Keep any
regression checks outside the repository and report their results in the PR.
Verify normalization, pose conventions and checkpoint loading with local CPU
checks before a cluster run; hardware and pretrained-model validation remain
separate. Historical test sources remain available in Git history.

## Preserve work and verify the target

Expand Down
27 changes: 27 additions & 0 deletions docs/VERIFICATION_POLICY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Verification without committed tests

The rebuilt stack removes the tracked regression suites, their fixtures and
test-only runners, including the vendored LeRobot suite. Do not commit new
tests, fixtures, or local verification scripts. Run focused regression checks
outside the application repository and include their results and limitations
in each pull request.

CI retains locked-environment checks, Ruff, recursive Hydra composition and
offline component construction. It no longer runs pytest or the former
installed-wheel regression gate. Passing CI therefore does not establish
behavioral parity, wheel-install compatibility, hardware safety, or successful
training. Those require separate evidence.

The Qwen architecture metadata used by the constructor audit is retained at
`scripts/resources/qwen3_embedding_06b_config.json` with the same checksum.
This is audit input, not a test suite. Existing dependency pins, runtime guards,
training/validation evaluators, and hardware-control examples are unchanged.
The vendored ARX examples named `test_*` are operational robot programs, not
automated regression tests.

Historical test references and validation receipts in older documents describe
the source revision that produced them. Their sources can be recovered from Git
history (for example the pre-rebuild main commit
`a525d73897bec64397048e7c8897fb886555567b`); they are no longer commands for the
current checkout. Do not rewrite historical provenance or weaken checkpoint
compatibility guards to accommodate a source cleanup.
3 changes: 3 additions & 0 deletions docs/YAM_RUNTIME.md
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,9 @@ directory. `--list` performs no upload and needs no AWS credentials.

## Validation scope

The regression sources referenced below are historical and no longer shipped;
see [the verification policy](VERIFICATION_POLICY.md). Keep new checks local.

`tests/test_robot_runtime.py` checks collection, format compatibility, world-frame
clutch control, stale tracking/cameras, previews, Eva/Yam interfaces, cleanup and
Zarr replay. `tests/test_robot_graph_policy.py` checks strict checkpoint loading,
Expand Down
3 changes: 3 additions & 0 deletions docs/integration/DATA_TOOLS.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,9 @@ require SQL, cloud packages or a policy backend.

## Evidence and remaining gates

The following regression evidence is historical; test sources are no longer
shipped. See [the verification policy](../VERIFICATION_POLICY.md).

`tests/test_data_tool_parity.py` converts an actual HDF5 fixture, checks unchanged
source bytes and overwrite rejection, imports with cloud/model modules blocked,
encodes a complete annotated episode, validates video frame count/FPS and saved
Expand Down
5 changes: 2 additions & 3 deletions egomimic/eval/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,5 @@ are YAML settings, including the `train_viz` group.

Frame reversion must match the data configuration. Rotation encodings and
gripper padding affect both actions and proprio; test both sides of the round
trip. Focused regression tests are `test_shared_robot_components.py`,
`test_eval_overlay_annotations.py`, `test_wrist6d_roundtrip.py`,
`test_pi05_graph.py`, and the root ARC/tempo evaluation tests.
trip. Keep regression checks outside the repository and report local results;
do not commit tests or their fixtures.
5 changes: 2 additions & 3 deletions egomimic/rldb/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,5 @@ embodiment IDs when loading a cache. Live rollouts require the full
`normalizer_state`, not just numeric bounds.

Do not change stored episode metadata to rename an embodiment. Canonicalize the
metadata at the loader boundary. Test geometric changes with
`test_action_chunk_transforms.py`, `test_wrist6d_roundtrip.py`, `test_human_arc.py`,
`test_abc_yam.py`, and the relevant ARC/PI numeric tests in the root `tests/`.
metadata at the loader boundary. Verify geometric and ARC/PI changes with local
CPU checks outside the repository; do not commit tests or their fixtures.
135 changes: 0 additions & 135 deletions egomimic/rldb/zarr/test_dataset_filter.py

This file was deleted.

3 changes: 1 addition & 2 deletions egomimic/robot/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,7 @@ Use the same graph, data normalization and evaluation components for HPT and PI.
Do not introduce an embodiment-specific inference server or upstream runtime
launcher. Do not deprecate Eva when adding another robot implementation.

Run `tests/test_gello_teleop.py`, `tests/test_robot_runtime.py`, and
`tests/test_robot_graph_policy.py` for CPU validation. `--help`, GELLO
Keep CPU verification outside the repository; do not commit tests. `--help`, GELLO
`--check-config`/`--list-ports`, and uploader `--list` open no devices.
Collection/rollout commands open hardware; operate a physical station only when
the user requests that operation. Preserve source branches, user worktrees and
Expand Down
Loading
Loading