What a recording leaves behind
Source README.md · versioncam 0.5.3 from npm
versioncam record writes each clip to .versioncam/recordings/<id>/.
| File | What it holds |
|---|---|
timeline.json |
Everything the renderer needs, and everything a reviewer can check. |
states/ |
The page states the timeline indexes, one image each. |
settles.json |
Every wait: what it was still blocked on, and how long it really took. |
targets.json |
Where each step’s target was when the step began, by the step’s index in steps: the box of the control it used. New in 0.3.0. |
failure.png |
Only after a failure: the page at the moment the clip gave up. |
failure.json |
Only after a failure: the message, the frame, the authored second, and the step that was running (its index in steps and its call; new in 0.3.0). |
The timeline’s frames say which state each frame shows. Beside them are the
tracks the renderer draws: cursor, pointer, camera, highlights and
captions. A camera that follows the cursor, or eases from one move into
another, is kept as a key a frame. Three more fields are there for reading:
marksare the clip’s beats: one per labelledsettle(), at the first frame that shows what the wait was for.versioncam sheet --at-markssamples those frames instead of eight even ones. That is the difference between a sheet that shows what the clip is about and one that happens to miss it.stepsare the script’s calls, in order, each with the frame it began on:{ "frame": 212, "call": "typeInto" }. There is one per line of the script.typeIntois one step, not also the click it makes, and a locator is an argument, not a step. A track write spends no time, so it shares a frame with the line after it. New in 0.1.3.metasays where the recording came from:title,appCommit,baseUrlandrecordedAt.recorderis the versioncam version that made it (new in 0.1.3).capturedis how many frames got a screenshot, anddraftis set on a draft.
Checks that need no eyes
Section titled “Checks that need no eyes”versioncam review <id> --beats beats.json is the half of reviewing a clip
that needs no eyes and no browser. It prints a line per check and exits 0 or 1:
- duration: the clip runs as long as
reviewin the config says. - settles: no wait gave up.
- beats: every beat in the beat sheet has a mark.
- progress: the screen changed between one beat and the next.
- rendered: nothing was written after the last frame, where no frame would show it. A warning, not a failure.
- onscreen: every highlight and every click is inside what the camera shows. Also a warning.
What needs eyes is what the contact sheet and versioncam frame are for. Is
it legible? Is the cursor in the way? Does the frame show what the beat
claimed?