The producer (dump_original_n1_7.py) now records the raw observation
(per-camera frames, state vectors, language) and the flow-matching seed in each
.npz artifact. The consumer gains a second comparison per embodiment tag:
- Preprocessor parity: LeRobot's full preprocessor pipeline (real Qwen3-VL chat
template / tokenizer / image packing + checkpoint-driven state normalization,
no mocks) runs on the recorded raw observations and its collated tensors are
compared against the original processor's. Old artifacts without raw fields
skip with a regeneration hint.
- Model parity now reads the recorded seed and fails on shape mismatch instead
of silently truncating to the common horizon/dim.
Local-only; skips on CI, when gr00t prerequisites are absent, or when no
artifact has been generated.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Mirror the tests/policies/pi0_pi05/utils convention: move dump_original_n1_7.py into
a tests/policies/groot/utils/ package (with __init__.py) and update all path
references in the test docstring/skip-message and the policy README.