Skip to content

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:

  • marks are the clip’s beats: one per labelled settle(), at the first frame that shows what the wait was for. versioncam sheet --at-marks samples 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.
  • steps are 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. typeInto is 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.
  • meta says where the recording came from: title, appCommit, baseUrl and recordedAt. recorder is the versioncam version that made it (new in 0.1.3). captured is how many frames got a screenshot, and draft is set on a draft.

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 review in 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?