Parent
#74
What to build
Stop collapsing the screencast to one frame per step. Persist every frame of a test as a monotonic per-test sequence on disk (e.g. `frames//.jpg`) plus a per-frame JSONL index line carrying `ts`, `stepId`, and the frame ref. Extract a deep, testable `frame-track` module that owns the sequence numbering, the path, and the index line; the event-persistor delegates to it. Add the per-frame path to the runs layout owner (`run-paths`).
Acceptance criteria
Blocked by
#76
Parent
#74
What to build
Stop collapsing the screencast to one frame per step. Persist every frame of a test as a monotonic per-test sequence on disk (e.g. `frames//.jpg`) plus a per-frame JSONL index line carrying `ts`, `stepId`, and the frame ref. Extract a deep, testable `frame-track` module that owns the sequence numbering, the path, and the index line; the event-persistor delegates to it. Add the per-frame path to the runs layout owner (`run-paths`).
Acceptance criteria
Blocked by
#76