{
  "schema_version": 1,
  "source_index": "manual/v0.3.0-manual-20260921/review-index.json",
  "source_index_sha256": "17efd1f5f9a9c80791c6764f7972f466b4b29257831f2719b0c66b74b784fc16",
  "review": {
    "id": "manual-squash",
    "title": "Combine one source with an existing change",
    "status": "ready",
    "source_tape": "tapes/manual/rewrite/manual-squash.tape",
    "source_tape_sha256": "20b4034a5ee729b630ccbd1c6b80c702d7796771f0228e211e71b18c3d40dcfe",
    "website": {
      "path": "assets/manual/v0.3.0-manual-20260921/manual-squash"
    },
    "problems": [],
    "checkpoints": [
      {
        "id": "manual-squash-preview",
        "png": "manual-squash-preview.png",
        "state": "manual-squash-preview.json",
        "png_sha256": "41e932291e990263c0960978e92f023c32fb984593fa9da66a38ce2f36c3e707",
        "state_sha256": "35a12fa7edc798ae5cfa4355399cfb3d1977b30d88e883885cbf08fd78ab9ae3",
        "pixel_review": {
          "status": "reviewed",
          "reviewer": "mutation evidence reviewer",
          "reviewed_at": "2026-09-21T03:36:40.487057+00:00",
          "summary": "Inspected the original PNG inline. The opaque slate preview sits below a populated graph, with the source marked and destination selected. Whole-change scope, retained destination message, warning, wrapped command and all controls are readable. Full hashes require matching back to the graph, whose active selection remains visible behind the modal.",
          "findings": [
            "UX-03",
            "UX-04",
            "UX-06"
          ]
        },
        "text_style_review": {
          "status": "reviewed",
          "reviewer": "mutation evidence reviewer",
          "reviewed_at": "2026-09-21T03:36:40.487057+00:00",
          "summary": "The 104x39 state matches the PNG. Seventeen styles preserve the jj graph colors, #e0e6ee text on #242c3a dialog surface, #65d4cf controls and #eab855 warning. Source/destination IDs and --from/--into operands agree with the graph; whole-change and destination-message scope are explicit.",
          "findings": [
            "UX-03",
            "UX-04",
            "UX-06"
          ]
        },
        "pixel_review_source": "target/manual-recordings/reviews/mutations-ci35557653700.json",
        "text_style_review_source": "target/manual-recordings/reviews/mutations-ci35557653700.json"
      },
      {
        "id": "manual-squash-success",
        "png": "manual-squash-success.png",
        "state": "manual-squash-success.json",
        "png_sha256": "98704228146e0dba4754d1369cb6f98fbff65e74f10cbbbc765e91d1333d5e70",
        "state_sha256": "b5257622dbc0e8acd215b94aa84915b5b437df2eb5c27902445286f879f419d4",
        "pixel_review": {
          "status": "reviewed",
          "reviewer": "mutation evidence reviewer",
          "reviewed_at": "2026-09-21T03:36:40.487057+00:00",
          "summary": "The source row disappears, the destination remains, and a new empty working copy is visible. The complete success toast offers Undo and History without obscuring the graph or footer.",
          "findings": []
        },
        "text_style_review": {
          "status": "reviewed",
          "reviewer": "mutation evidence reviewer",
          "reviewed_at": "2026-09-21T03:36:40.487057+00:00",
          "summary": "Fifteen styles preserve jj metadata and the green empty marker. The state includes Squashed source changes and the retained destination description. Repository assertions confirm the source file moved into the destination and the old source revision was removed.",
          "findings": []
        },
        "pixel_review_source": "target/manual-recordings/reviews/mutations-ci35557653700.json",
        "text_style_review_source": "target/manual-recordings/reviews/mutations-ci35557653700.json"
      },
      {
        "id": "manual-squash-recovered",
        "png": "manual-squash-recovered.png",
        "state": "manual-squash-recovered.json",
        "png_sha256": "d070659d6d81398306d448bdf203e0a39bd181b265a5600395904caeb3a2babc",
        "state_sha256": "516236e96f90ae5cba099eaf929f647b8a360b1bf82edbbaa194a14195661e5e",
        "pixel_review": {
          "status": "reviewed",
          "reviewer": "mutation evidence reviewer",
          "reviewed_at": "2026-09-21T03:36:40.487057+00:00",
          "summary": "The original source and destination rows return, with the source selected and a readable Undid operation toast. The recovery caption and command overlay fit within the margin.",
          "findings": []
        },
        "text_style_review": {
          "status": "reviewed",
          "reviewer": "mutation evidence reviewer",
          "reviewed_at": "2026-09-21T03:36:40.487057+00:00",
          "summary": "Fourteen styles retain the original graph colors. Original working-copy commit ebc4b7e4 and destination 7be6b114 return; the unchanged-commit and exact-visible-graph assertions both pass after Undo.",
          "findings": []
        },
        "pixel_review_source": "target/manual-recordings/reviews/mutations-ci35557653700.json",
        "text_style_review_source": "target/manual-recordings/reviews/mutations-ci35557653700.json"
      }
    ],
    "metadata_path": "target/manual-recordings/ci-35557653700/manual-evidence-manual-squash/capture-metadata.json",
    "metadata_sha256": "5aad8d4402be0e1d39d25a213f63f0438a90d65ce76575a33cf2375b3588e5e7",
    "evidence_directory": "target/manual-recordings/ci-35557653700/manual-evidence-manual-squash",
    "evidence_status": "passed",
    "source_commit": "7fcb4fa9af1bb624fcdc7ac14a64184a43c4e829",
    "pr_head_commit": "d5200f713edc476fd446616ad46fec573f861baf",
    "source_manifest_sha256": "42c0d25b424a807906eb4e0ba7ca72b4c0488685e9f57b3bcf62d3f01c6c6915",
    "source_matches_checkout": true,
    "binary": {
      "invoked_path": "/home/runner/work/jk/jk/target/manual-build/jk",
      "path": "/home/runner/work/jk/jk/target/manual-build/jk",
      "sha256": "cb41f94b63ec85100829bd2b1e9ced84f37cae912996a48e93b56b8776c9c5ed",
      "version": "jk 0.3.0",
      "version_exit_code": 0
    },
    "jj": {
      "invoked_path": "/home/runner/.cargo/bin/jj",
      "path": "/home/runner/.cargo/bin/jj",
      "sha256": "cd5efc3eb281d606bf9b5523167f79661da0f8c76a5aa32d61c07c7a351b6b44",
      "version": "jj 0.45.1-7c41cdeb16b6b321c64e789a966b6adf723816a5",
      "version_exit_code": 0
    },
    "betamax": {
      "invoked_path": "/home/runner/work/_temp/betamax-TKSJrS/bin/betamax",
      "path": "/home/runner/work/_temp/betamax-TKSJrS/bin/betamax",
      "sha256": "db55fa6e7ff98e1df3c91921b5b3fb504b3cc8fdaf6b07e3da952f8757053490",
      "version": "betamax 0.1.21",
      "version_exit_code": 0
    },
    "ci_run": {
      "id": "35557653700",
      "attempt": "1",
      "url": "https://github.com/joshka/jk/actions/runs/35557653700"
    },
    "assertions": [
      {
        "path": "manual-squash-cancelled-assertions.json",
        "sha256": "46fa3eb56dce180e8d409b0c1b2d543ee3c237361f9f4d96b163cc2d73109584",
        "bytes": 799
      },
      {
        "path": "manual-squash-success-assertions.json",
        "sha256": "c2b6aebe38a837f49c8b5cf3ae45bdb4d8fafd6b16f3e8ac5dc6d28ac70ee582",
        "bytes": 494
      },
      {
        "path": "manual-squash-undone-assertions.json",
        "sha256": "762653cc06275c37ccc7b83a1de28caa779ecaf94c867b946183394272764afe",
        "bytes": 796
      }
    ],
    "video": {
      "path": "manual-squash.mp4",
      "sha256": "3e0c01b2de4a020413459599a137258390827cad01f94be06a83aeff5c03299f",
      "bytes": 321820
    },
    "video_review": {
      "status": "reviewed",
      "reviewer": "mutation evidence reviewer",
      "reviewed_at": "2026-09-21T03:36:40.487057+00:00",
      "summary": "Reviewed the captured source tape, all three original checkpoint PNG/state pairs, ffprobe metadata (20.466667 seconds, 1400x900, 15fps), and actual MP4 samples at 0, 3, 6, 9, 12, 15, 18 and 20 seconds. The sequence shows marked-source preview, cancellation, the repeated decision, completed squash and Undo recovery. The source uses 80ms typing, two-second intermediate holds and three-second checkpoint holds; samples show readable captions and hidden setup. This is sampled pacing review, not a continuous realtime watch.",
      "findings": [],
      "sha256": "3e0c01b2de4a020413459599a137258390827cad01f94be06a83aeff5c03299f"
    },
    "source_snapshot_status": "preserved",
    "video_review_source": "target/manual-recordings/reviews/mutations-ci35557653700.json",
    "pixel_review_complete": true,
    "text_style_review_complete": true,
    "video_review_complete": true
  }
}
