# Test recordings `box_short_20260930/` is one real recording, kept in the repository because several tests must drive the real SDK chain over real footage. A synthetic clip cannot replace it: the box chain's stitch probe looks for the lenslet grid in the image, does not converge on generated pixels, and a synthetic 896² clip sent the chain into minutes of work where this 33-frame clip takes about two seconds. ## What it is | | | |---|---| | Sensor | `box` (shipped bundle) | | Source | [`.scratch/result-visible/recording/20260930T015028Z_session0002_40cb8e7441434feab48bb646afdba011/`](../../../../.scratch/result-visible/recording/20260930T015028Z_session0002_40cb8e7441434feab48bb646afdba011/) — recorded 2026-09-30, `session_id` 2. The directory name is the recording's own identity, so it matches the `dist/` path below. | | Length | 33 frames, frame ids **20…52**, 1.92 s of signal time | | Files | `raw_0001.mp4`, `frames.csv`, `forces.csv`, `events.csv`, `session.json` (3.8 MB) | | Not included | `preroll_0001.mp4` (3.5 MB, optional for every reader: `RecordingReader.preroll_segment()` answers `None` when the file is absent) | `dist/` is build output and is not tracked, so the copy under `dist/OrisysStudio/outputs/recordings/` disappeared on 2026-10-14 when the studio was repackaged. That took 11 tests to `ERROR` and 4 to `failed` without anyone noticing — see [`docs/test-repair-plan.zh.md`](../../../docs/test-repair-plan.zh.md) §1 and §3 #1–#2. The `dist/` original is **gone**, so the files here cannot be compared against it byte for byte. They are byte-identical to the copy preserved under `.scratch/result-visible/` (the source named above), which is the strongest provenance available. The hashes are recorded here so a future copy can be checked against this one instead of argued about: | File | SHA256 | |---|---| | `raw_0001.mp4` | `907867d0fe82966dbaacf97a8bb0a8d5647de25458ad5fd4640535d83d417207` | | `frames.csv` | `fab25e6780908aef8f7616504b43cf34062ab7ca3ba317b6ff4c0631969e0601` | | `forces.csv` | `972d3c951ff0be847a6a224b53339401f115cd3728039f1acb24a33bf215ecb1` | | `events.csv` | `6fe7121b1c621ebed472ee42376babfd76a32a364ab9f11660da077fb365a946` | | `session.json` | `f3c9afc4502180d2a88cd260cb70f1f4313e203f2c3c8441704de6ac53a1db4c` | The frame ids are deliberately not 0…32: a test that used the frame *index* would pass on a 0-based recording, and real recordings start wherever the device's counter was. ## Rules - **Do not replace it with a generated recording.** The chain's behaviour on these pixels is part of what the tests defend. - **Do not write into it from a test.** The tests that analyse it copy it into `tmp_path` first, because a pass writes its result beside the recording. - **If it goes missing, restore it or the tests fail.** They no longer skip on a missing input: a skip is how this went unnoticed.