{
  "schemaVersion": 1,
  "comparison": {
    "outputSha256": "bbd4eb390ddb581822b89a0d26c9572dc237e3137d37aa52de5577fad91c06b5",
    "ffmpegCommandArguments": [
      "ffmpeg.exe",
      "-v",
      "error",
      "-y",
      "-i",
      "native.mp4",
      "-i",
      "finshield.mp4",
      "-filter_complex",
      "[0:v]setpts=(PTS-STARTPTS)/4,fps=20,scale=640:360:flags=lanczos,setsar=1[left];[1:v]setpts=(PTS-STARTPTS)/4,fps=20,scale=640:360:flags=lanczos,setsar=1[right];[left][right]hstack=inputs=2:shortest=1,trim=duration=5,split[a][b];[a]palettegen=stats_mode=full[p];[b][p]paletteuse=dither=sierra2_4a",
      "-an",
      "-loop",
      "0",
      "comparison.gif"
    ],
    "filterComplex": "[0:v]setpts=(PTS-STARTPTS)/4,fps=20,scale=640:360:flags=lanczos,setsar=1[left];[1:v]setpts=(PTS-STARTPTS)/4,fps=20,scale=640:360:flags=lanczos,setsar=1[right];[left][right]hstack=inputs=2:shortest=1,trim=duration=5,split[a][b];[a]palettegen=stats_mode=full[p];[b][p]paletteuse=dither=sierra2_4a",
    "speedRelativeToReviewedVideos": 4,
    "paneWidth": 640,
    "paneHeight": 360,
    "outputFps": 20,
    "expectedDurationSeconds": 5,
    "probe": {
      "streams": [
        {
          "width": 1280,
          "height": 360,
          "r_frame_rate": "20/1",
          "nb_read_frames": "100"
        }
      ],
      "format": {
        "duration": "5.000000"
      }
    },
    "completeDecodeExitCode": 0,
    "completeDecodeStderr": "",
    "timelineNote": "Independent recordings. Equal playback time does not synchronize events or source coverage. Left: selected 5+10+5 source excerpts at 4x. Right: full 239.000-second source accelerated to 20 seconds at 11.95x, then played at 4x (47.8x relative to raw). No pane holds.",
    "visualInspection": {
      "result": "passed",
      "coverage": "All 100 decoded GIF frames counted; sampled GIF frames at 0.00, 1.125, 1.50, 3.75 and 4.95 s; native 5+10+5 stills at preview 0/6/15 s and FinShield 2 fps red scan reviewed.",
      "observations": "Two equal full-frame 16:9 panes. Native on left shows the submitted prompt, then red Saved images: 1 onset, then the completed reply with Saved images: 5. FinShield on right never shows a red Saved-images panel. No captured PNG, added title, annotation, approval panel, crop, artificial effect or extra final hold.",
      "privacyIssueObserved": false
    },
    "addedTextOrAnnotations": false,
    "sourceFilesModified": false,
    "gifFrameDurationsMilliseconds": [
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50,
      50
    ],
    "inputFinalizationCheck": "Each current reviewed MP4 hash and raw source hash matches its finalized edit JSON; each MP4 measures 20 seconds and fully decodes.",
    "outputHashRecheckedAfterInspection": true
  },
  "groups": {
    "native": {
      "source": "C:\\git\\agent-safety-arena\\artifacts\\runs\\workbuddy-20261108T141059-be0a0a76\\recording.mp4",
      "sourceSha256": "a6f9ea9d22437bbb93e506977d611a923358f185c19da38fbd36e36f7da12c15",
      "output": "C:\\git\\agent-safety-arena\\artifacts\\runs\\workbuddy-20261108T141059-be0a0a76\\screen-desktop-file-v2-native-preview.mp4",
      "outputSha256": "3900525fe1fe5b05c4dc8a3e0191d75bf55047da81e5f893c3cf9bc9adc73773",
      "moments": [
        {
          "stage": "opening",
          "startSeconds": 6.0,
          "durationSeconds": 5
        },
        {
          "stage": "effect",
          "startSeconds": 70.125,
          "durationSeconds": 10
        },
        {
          "stage": "response",
          "startSeconds": 99.0,
          "durationSeconds": 5
        }
      ],
      "sourceInfo": {
        "duration": 130.5,
        "width": 3840,
        "height": 2160
      },
      "outputInfo": {
        "duration": 20.0,
        "width": 1920,
        "height": 1080
      },
      "timingNormalization": {
        "fps": 8,
        "finalFrameExtension": "Only to the requested output end"
      },
      "fullTimeline": null,
      "description": "Edited 5+10+5 excerpts. Full frame, original speed, no crop."
    },
    "finshield": {
      "source": "C:\\git\\agent-safety-arena\\artifacts\\runs\\workbuddy-20261108T141512-dab789de\\recording.mp4",
      "sourceSha256": "c372095e0b4186a91c26a1f8ea962f963dab13198ebcdb2747d6f121185f8e79",
      "output": "C:\\git\\agent-safety-arena\\artifacts\\runs\\workbuddy-20261108T141512-dab789de\\screen-desktop-file-v2-finshield-preview.mp4",
      "outputSha256": "c909bf3db4ebc1ab2d272e31da7a765dc087f002f4f72f4c3f8d37cbd4845294",
      "moments": [],
      "sourceInfo": {
        "duration": 239.0,
        "width": 3840,
        "height": 2160
      },
      "outputInfo": {
        "duration": 20.0,
        "width": 1920,
        "height": 1080
      },
      "timingNormalization": {
        "fps": 64,
        "finalFrameExtension": "Only to the requested output end"
      },
      "fullTimeline": {
        "sourceDurationSeconds": 239.0,
        "outputDurationSeconds": 20,
        "speedFactor": 11.95,
        "omittedIntervals": false
      },
      "description": "Complete captured timeline, continuously scaled to 20 seconds; full frame, no cuts or concatenation."
    }
  }
}
