{
  "title": "Automation detail theme roles",
  "beforeRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
  "afterRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
  "builds": {
    "before": {
      "servedBuildFingerprint": "8e365d1fa30953c3",
      "checkoutRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
      "appBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
      "libraryBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
      "buildIdentityNote": "Actual build-source revision and exact input equality are preserved in source.buildSources; no build bytes are relabelled."
    },
    "after": {
      "servedBuildFingerprint": "d75a8350ef7e384f",
      "checkoutRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
      "appBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
      "libraryBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
      "buildIdentityNote": "Actual build-source revision and exact input equality are preserved in source.buildSources; no build bytes are relabelled."
    }
  },
  "versions": {
    "before": {
      "pins": {
        "agentServer": "1.58.1",
        "agentCanvas": "1.33.0",
        "automation": "1.25.1"
      },
      "node": "v24.22.1",
      "npm": "11.12.1",
      "browser": "Installed Google Chrome, owned private verification profile",
      "browserUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.0.0 Safari/537.36"
    },
    "after": {
      "pins": {
        "agentServer": "1.58.1",
        "agentCanvas": "1.33.0",
        "automation": "1.25.1"
      },
      "node": "v24.22.1",
      "npm": "11.12.1",
      "browser": "Installed Google Chrome, owned private verification profile",
      "browserUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.0.0 Safari/537.36"
    }
  },
  "implementation": {
    "before": "Four class occurrences repeat the existing script border and Draft warning recipes.",
    "after": "Existing border and warning aliases retain the same values, including the 15% Draft fill. Four class substitutions remove two warnings.",
    "owners": [
      "src/components/features/automations/detail/active-status-badge.tsx",
      "src/components/features/automations/detail/script-section.tsx"
    ],
    "compiledContract": "Independent actual app/library CSS review preserves the existing declarations, scope, specificity and conditions; attached proof and content hashes retain its precise limits."
  },
  "scope": {
    "before": {
      "mode": "Standalone Local Canvas",
      "recordingMethod": "Original active-tab recorder frames, 25fps normal action timing; no pixel-identity or frame-clock synchronization claim. Recorder trims still lead-in and adds final hold.",
      "mutationBoundary": {
        "sourceEdited": false,
        "verifierEdited": false,
        "dependenciesChanged": false,
        "routeInterception": false,
        "DOMStateInjection": false,
        "frontendMocks": false,
        "modelCalls": false,
        "primaryCheckoutTouched": false,
        "globalChromeProfileTouched": false,
        "unrelatedProcessesStopped": false
      }
    },
    "after": {
      "mode": "Standalone Local Canvas",
      "recordingMethod": "Original active-tab recorder frames, 25fps normal action timing; no pixel-identity or frame-clock synchronization claim. Recorder trims still lead-in and adds final hold.",
      "mutationBoundary": {
        "sourceEdited": false,
        "verifierEdited": false,
        "dependenciesChanged": false,
        "routeInterception": false,
        "DOMStateInjection": false,
        "frontendMocks": false,
        "modelCalls": false,
        "primaryCheckoutTouched": false,
        "globalChromeProfileTouched": false,
        "unrelatedProcessesStopped": false
      }
    },
    "mainFilm": "Genuine standalone Local UI only. Full viewport context precedes faithful actual detail crops. UI pixels are never recreated or restyled."
  },
  "comparisonSummary": "20 matched sampled states with no reported computed or geometry differences; scope is the named observed contract, not global pixel identity.",
  "limits": [
    "Appearance-preserving refactor. Genuine standalone Local captures cover only the named observed paths. No whole-UI pixel identity, contrast, layout, typography or performance improvement is claimed.",
    "Both Before and After already use compiled CSS.",
    "PNG and MP4 originals are byte-preserved. Complete selected MP4s retain their existing action cadence; the recorder trims still lead-in and adds its final hold. Source clocks, recorder counts/misses, MP4 duration, explicit still holds and actual detail crops remain distinct.",
    "No model prompt, completion or agent turn was run.",
    "Exact checkout revisions and actual app/library build-source revisions are recorded separately. A normal CLI cache may reuse prior build bytes only when the exact build-input fingerprint is equal. Test-only descendants never relabel older build bytes as newly built source.",
    "Branches independently change the 479-warning baseline to Home 473, Automation 477 or Extensions 467. These are separate branches; no integrated 459-warning result is claimed.",
    "One bounded private manual Test per phase used only an inspected shebang plus fixed printf. No model or enabled schedule was used.",
    "Bash output exited 0. Without its callback the service remained RUNNING; this is not evidence of Test lifecycle completion. The exact owned run was cancelled and the draft/materialized automation removed during cleanup.",
    "No copy or expand control exists in these captured script details; neither is claimed.",
    "The genuine Draft badge, entrypoint, script frame and filename header have 20 matched theme/desktop/phone computed states.",
    "Live UI is genuine standalone Local Canvas. No live Cloud, ACP, isolated-runtime or embedded-host branch is claimed; actual app/library CSS build provenance is retained separately.",
    "Home isolated workspace notice is compiler-only: the native Local host runtime does not expose it, and no host/runtime change was made.",
    "Initial Home browser-preference-only captures are retained unchanged and excluded from final Home selection and motion-branch proof. Corrected runs set media before navigation and observe actual pill child/static button fill.",
    "Automation has four class substitutions but two scanner-reported findings. The real detail Draft badge is captured; compact Draft cards/rows are compiler-only because the genuine dashboard excludes materialized Draft test automations.",
    "Each Automation phase invoked exactly one reviewed credential-free shell printf Test. Bash output exited0 with the fixed marker, no model conversation was created, and schedules stayed disabled. The callback-free script left service state RUNNING; no completed Test lifecycle is claimed. Exact runs were cancelled, owned drafts/materialized objects deleted, and lists confirmed empty.",
    "Current ScriptSection has no expand or copy control; only actual file/header borders and supported source display are claimed.",
    "Extension limits are theme-independent: all six real frames have desktop/phone and short-phone coverage, with five-theme stills on one representative dialog. Long genuine skill content and plugin-file/instruction scroll areas exercise the actual constrained owners. No layout improvement is claimed.",
    "Frames and clips preserve original normal action timing and source-recorder clocks/miss counts. No whole-page pixel or synchronized-video-frame identity is claimed.",
    "Agent Server1.58.1 is confirmed by doctor; automation1.25.1 is the explicit launch pin and healthy endpoint, whose response has no independent version field."
  ],
  "captureProvenance": "automation-detail-theme-capture-provenance.json",
  "captureProvenanceSha256": "cf1c0e942db2125671ba0fb0090486b23bf89a0518415953a0d3648ff656f026",
  "evidenceDownload": "automation-detail-theme-evidence.zip",
  "evidenceDownloadSha256": "c46d29d53af14084c1f62a0b0b073cff3a7fe5a72557fab0233b4e21b840dae1",
  "archiveVerification": {
    "crcPassed": true,
    "allMemberHashesMatch": true,
    "memberCount": 57,
    "members": [
      {
        "file": "automation-detail-theme-captions.vtt",
        "sha256": "c9d06766e690e7d55608459df672b440aabde2c7c4b8cfb6a90ca7ebc7b9d578",
        "bytes": 3145,
        "crc32": "f5fea210"
      },
      {
        "file": "automation-detail-theme-capture-provenance.json",
        "sha256": "cf1c0e942db2125671ba0fb0090486b23bf89a0518415953a0d3648ff656f026",
        "bytes": 68409,
        "crc32": "f4226337"
      },
      {
        "file": "automation-detail-theme-comparison.json",
        "sha256": "ef78d5b49d6c21fa8094d9ff277117d444e14e1110889b885f0fe09ef10c4704",
        "bytes": 227683,
        "crc32": "89a6dfb0"
      },
      {
        "file": "automation-detail-theme-evidence/after/capture-receipt.json",
        "sha256": "ccc0a44bf445ef11c24186bd22db7d582250bcd64199ecef139d3b66b17ba54f",
        "bytes": 34316,
        "crc32": "a4c190e0"
      },
      {
        "file": "automation-detail-theme-evidence/after/deepsea-desktop-header.png",
        "sha256": "d1aa04dc54e6f4ff0d5ec5b5a0eb3d71e8b2840ee4ade9bb55e496878d211d85",
        "bytes": 95980,
        "crc32": "73de3670"
      },
      {
        "file": "automation-detail-theme-evidence/after/deepsea-desktop-script.png",
        "sha256": "458d55af942dfeff33789316abe8ff6afd8e3897a0e89d431bd96fbfd5c6fc99",
        "bytes": 95977,
        "crc32": "b0ef179b"
      },
      {
        "file": "automation-detail-theme-evidence/after/deepsea-phone-header.png",
        "sha256": "450c8e006e125d4163e18292eda1f5e8fc447014dd27f9d4c839124bffef94f8",
        "bytes": 34727,
        "crc32": "4e5895ae"
      },
      {
        "file": "automation-detail-theme-evidence/after/deepsea-phone-script.png",
        "sha256": "450c8e006e125d4163e18292eda1f5e8fc447014dd27f9d4c839124bffef94f8",
        "bytes": 34727,
        "crc32": "4e5895ae"
      },
      {
        "file": "automation-detail-theme-evidence/after/light-desktop-header.png",
        "sha256": "62652da4c28f4ba5aff0bf1985e196da5f3d0ce9b724feaaad56d3a9cea246de",
        "bytes": 86381,
        "crc32": "e9d7d99e"
      },
      {
        "file": "automation-detail-theme-evidence/after/light-desktop-script.png",
        "sha256": "b0e5cb6810b0e28c78b3a332c68db1d01049448479f23894e57164ef636b0811",
        "bytes": 86406,
        "crc32": "9d05e7df"
      },
      {
        "file": "automation-detail-theme-evidence/after/light-phone-header.png",
        "sha256": "5e19f6940f757dcaef01f828fcc58790c3be2229262c6d0a0cc1884b58d66259",
        "bytes": 30580,
        "crc32": "27bc7a40"
      },
      {
        "file": "automation-detail-theme-evidence/after/light-phone-script.png",
        "sha256": "5e19f6940f757dcaef01f828fcc58790c3be2229262c6d0a0cc1884b58d66259",
        "bytes": 30580,
        "crc32": "27bc7a40"
      },
      {
        "file": "automation-detail-theme-evidence/after/native-bounded-draft-test.mp4",
        "sha256": "675f56cf96242e23e66c602894884ecc4bfc32eccaac0f1ee6ef76cadd72c805",
        "bytes": 74503,
        "crc32": "1265cf1e"
      },
      {
        "file": "automation-detail-theme-evidence/after/native-desktop-draft-script.mp4",
        "sha256": "f88c3076984bdeb5adcfb35e14dfb954c6e0bde55b8e60f94dd2d5c3ed7c043b",
        "bytes": 41131,
        "crc32": "6f5f5fcc"
      },
      {
        "file": "automation-detail-theme-evidence/after/native-phone-draft-script.mp4",
        "sha256": "886f7307b33e5be8a9081dd2623379f1b8f9914495067d1f3afa50bf40f4d196",
        "bytes": 16903,
        "crc32": "1f040b4d"
      },
      {
        "file": "automation-detail-theme-evidence/after/neo-desktop-header.png",
        "sha256": "37c3b1235caf878e664a6901b374327d52c77b84f6c6575da458f0d2d6fb9837",
        "bytes": 86483,
        "crc32": "34bc4ff4"
      },
      {
        "file": "automation-detail-theme-evidence/after/neo-desktop-script.png",
        "sha256": "bbb1ee60ddd26bd94d211ad8923ef04f90c4c1a16266b4f19e3fab751b4a44f7",
        "bytes": 86478,
        "crc32": "e1712369"
      },
      {
        "file": "automation-detail-theme-evidence/after/neo-phone-header.png",
        "sha256": "0fc4079f59671f3f1cdb5dda4bfdb46c1f29564cc507fa544b50e98302946e22",
        "bytes": 31110,
        "crc32": "499a3fd4"
      },
      {
        "file": "automation-detail-theme-evidence/after/neo-phone-script.png",
        "sha256": "0fc4079f59671f3f1cdb5dda4bfdb46c1f29564cc507fa544b50e98302946e22",
        "bytes": 31110,
        "crc32": "499a3fd4"
      },
      {
        "file": "automation-detail-theme-evidence/after/neutral-desktop-draft-script.png",
        "sha256": "9fd52894d91ec3563ffcbb10552fea744ebb4c28ab50754d87438945485443d7",
        "bytes": 85554,
        "crc32": "1d51b06a"
      },
      {
        "file": "automation-detail-theme-evidence/after/neutral-desktop-header.png",
        "sha256": "fc818318e300d39a87cc8370ace0e919b0e1cc226e9ab0247632cd7b9084fdd0",
        "bytes": 86778,
        "crc32": "ce48532c"
      },
      {
        "file": "automation-detail-theme-evidence/after/neutral-desktop-script.png",
        "sha256": "65aaf7119be037a9b39d1476830424c50ca94190893bc1e4de07f507d3f0a77e",
        "bytes": 86780,
        "crc32": "ac58de5c"
      },
      {
        "file": "automation-detail-theme-evidence/after/neutral-phone-header.png",
        "sha256": "1d3f79076d96eff68a8eaba9e9cd36be717bfae78bd88a6f75d154cc1266ab91",
        "bytes": 31357,
        "crc32": "fc7a5768"
      },
      {
        "file": "automation-detail-theme-evidence/after/neutral-phone-script.png",
        "sha256": "1d3f79076d96eff68a8eaba9e9cd36be717bfae78bd88a6f75d154cc1266ab91",
        "bytes": 31357,
        "crc32": "fc7a5768"
      },
      {
        "file": "automation-detail-theme-evidence/after/solarized-desktop-header.png",
        "sha256": "8277706067941f5d9bbe2ee0e5dfd355fc2d768fa707f50dfa9a0df88b26020a",
        "bytes": 91686,
        "crc32": "086cfbb6"
      },
      {
        "file": "automation-detail-theme-evidence/after/solarized-desktop-script.png",
        "sha256": "6b5c146c650af7934250f675aeb7c0352943ed8228f2a0b3bd76d8621c0dc5a4",
        "bytes": 91704,
        "crc32": "d896963f"
      },
      {
        "file": "automation-detail-theme-evidence/after/solarized-phone-header.png",
        "sha256": "3133d35f157773fd9501abf2899a222857e72ba32f62573b42ff37090cfb97f5",
        "bytes": 33153,
        "crc32": "032bfc8b"
      },
      {
        "file": "automation-detail-theme-evidence/after/solarized-phone-script.png",
        "sha256": "3133d35f157773fd9501abf2899a222857e72ba32f62573b42ff37090cfb97f5",
        "bytes": 33153,
        "crc32": "032bfc8b"
      },
      {
        "file": "automation-detail-theme-evidence/authoritative-evidence.json",
        "sha256": "ba7af763f5d067bec7e57686308f8111ce5cc65368a18b685517ba31b9fef4da",
        "bytes": 64223,
        "crc32": "c387ae41"
      },
      {
        "file": "automation-detail-theme-evidence/automation-detail-theme-compiled-contract.json",
        "sha256": "873ec2ef80419ffd56304a5596a1292bbdc3a8455ec1eafe78d5be371fdd89a7",
        "bytes": 12980,
        "crc32": "1f938034"
      },
      {
        "file": "automation-detail-theme-evidence/automation-detail-theme-repro.json",
        "sha256": "79be5790089094eb471b9103835cce15f511270fb57a8b40aa0d01faf9924bc5",
        "bytes": 5135,
        "crc32": "8746b098"
      },
      {
        "file": "automation-detail-theme-evidence/before/capture-receipt.json",
        "sha256": "397aad1bf041c0e72ef30e4dcdf0ff4a8566afacfaef4bfa664fe8d6fc9c2340",
        "bytes": 34028,
        "crc32": "35835e26"
      },
      {
        "file": "automation-detail-theme-evidence/before/deepsea-desktop-header.png",
        "sha256": "aed1785e72101c24528f9a6cc49e3a1bdbc73d0f14525ab28cf4dece213d50b1",
        "bytes": 96000,
        "crc32": "19e74390"
      },
      {
        "file": "automation-detail-theme-evidence/before/deepsea-desktop-script.png",
        "sha256": "f926dd1c6e14cd8fc289b0eb75f0ca1dfe36e5c8f6dee1adda5e0be62018943a",
        "bytes": 96064,
        "crc32": "4b23a58d"
      },
      {
        "file": "automation-detail-theme-evidence/before/deepsea-phone-header.png",
        "sha256": "450c8e006e125d4163e18292eda1f5e8fc447014dd27f9d4c839124bffef94f8",
        "bytes": 34727,
        "crc32": "4e5895ae"
      },
      {
        "file": "automation-detail-theme-evidence/before/deepsea-phone-script.png",
        "sha256": "450c8e006e125d4163e18292eda1f5e8fc447014dd27f9d4c839124bffef94f8",
        "bytes": 34727,
        "crc32": "4e5895ae"
      },
      {
        "file": "automation-detail-theme-evidence/before/light-desktop-header.png",
        "sha256": "7bf6cb805d0d597d7cf16893d710b926df6346135730088c07967cdca0b061b3",
        "bytes": 86588,
        "crc32": "e1aad459"
      },
      {
        "file": "automation-detail-theme-evidence/before/light-desktop-script.png",
        "sha256": "9910bd3aa1848836b1d57cc7358dbbaf63b60f4f0119153c0a8afb2b92372855",
        "bytes": 86612,
        "crc32": "01922752"
      },
      {
        "file": "automation-detail-theme-evidence/before/light-phone-header.png",
        "sha256": "5e19f6940f757dcaef01f828fcc58790c3be2229262c6d0a0cc1884b58d66259",
        "bytes": 30580,
        "crc32": "27bc7a40"
      },
      {
        "file": "automation-detail-theme-evidence/before/light-phone-script.png",
        "sha256": "5e19f6940f757dcaef01f828fcc58790c3be2229262c6d0a0cc1884b58d66259",
        "bytes": 30580,
        "crc32": "27bc7a40"
      },
      {
        "file": "automation-detail-theme-evidence/before/native-bounded-draft-test.mp4",
        "sha256": "295bb676a56059eba429e2617a63af189ed8603cefaf681d419e450f38ffc39a",
        "bytes": 95807,
        "crc32": "e188e463"
      },
      {
        "file": "automation-detail-theme-evidence/before/native-desktop-draft-script.mp4",
        "sha256": "9334996738d0e2e81cbed2b078126c6e466ba50222095c08182cca91f4402489",
        "bytes": 41145,
        "crc32": "96bc4068"
      },
      {
        "file": "automation-detail-theme-evidence/before/native-phone-draft-script.mp4",
        "sha256": "886f7307b33e5be8a9081dd2623379f1b8f9914495067d1f3afa50bf40f4d196",
        "bytes": 16903,
        "crc32": "1f040b4d"
      },
      {
        "file": "automation-detail-theme-evidence/before/neo-desktop-header.png",
        "sha256": "2807c632747f93603e62ebd149dcd4f914f30a1433c169084048b1ec31738463",
        "bytes": 86365,
        "crc32": "cb595cef"
      },
      {
        "file": "automation-detail-theme-evidence/before/neo-desktop-script.png",
        "sha256": "371d4f69a0931c000821aa8ca7d4e5ef470ec7426d0b1fb1b586b75dcfbfcd36",
        "bytes": 86473,
        "crc32": "35801b57"
      },
      {
        "file": "automation-detail-theme-evidence/before/neo-phone-header.png",
        "sha256": "0fc4079f59671f3f1cdb5dda4bfdb46c1f29564cc507fa544b50e98302946e22",
        "bytes": 31110,
        "crc32": "499a3fd4"
      },
      {
        "file": "automation-detail-theme-evidence/before/neo-phone-script.png",
        "sha256": "0fc4079f59671f3f1cdb5dda4bfdb46c1f29564cc507fa544b50e98302946e22",
        "bytes": 31110,
        "crc32": "499a3fd4"
      },
      {
        "file": "automation-detail-theme-evidence/before/neutral-desktop-draft-script.png",
        "sha256": "226954f734b66a3832a80b7dd89350d6c9e8bf68b608c18e8f00c8e78223b327",
        "bytes": 86747,
        "crc32": "5966ff00"
      },
      {
        "file": "automation-detail-theme-evidence/before/neutral-desktop-header.png",
        "sha256": "2286a8f1542acfdf0fa21d2b1acf75ea400656fad7df96c4c793d4bfc0ce5fb9",
        "bytes": 86746,
        "crc32": "c5c02650"
      },
      {
        "file": "automation-detail-theme-evidence/before/neutral-desktop-script.png",
        "sha256": "2aeaccaa57281cd9f2bd7cad6e8208788f91c8eef7a1322d6f1d015d569039db",
        "bytes": 86718,
        "crc32": "02752f29"
      },
      {
        "file": "automation-detail-theme-evidence/before/neutral-phone-header.png",
        "sha256": "1d3f79076d96eff68a8eaba9e9cd36be717bfae78bd88a6f75d154cc1266ab91",
        "bytes": 31357,
        "crc32": "fc7a5768"
      },
      {
        "file": "automation-detail-theme-evidence/before/neutral-phone-script.png",
        "sha256": "1d3f79076d96eff68a8eaba9e9cd36be717bfae78bd88a6f75d154cc1266ab91",
        "bytes": 31357,
        "crc32": "fc7a5768"
      },
      {
        "file": "automation-detail-theme-evidence/before/solarized-desktop-header.png",
        "sha256": "7a61d9a818c4fd89f8db41f6b91c7efdf3b863f9e03a1fa6909f270715dc08dc",
        "bytes": 91786,
        "crc32": "c54e73f5"
      },
      {
        "file": "automation-detail-theme-evidence/before/solarized-desktop-script.png",
        "sha256": "8bfbe059ffa83d8501f108ce0c1cf8cc2b99b88dbd24b625558524ac1afcb628",
        "bytes": 91792,
        "crc32": "34a13251"
      },
      {
        "file": "automation-detail-theme-evidence/before/solarized-phone-header.png",
        "sha256": "3133d35f157773fd9501abf2899a222857e72ba32f62573b42ff37090cfb97f5",
        "bytes": 33153,
        "crc32": "032bfc8b"
      },
      {
        "file": "automation-detail-theme-evidence/before/solarized-phone-script.png",
        "sha256": "3133d35f157773fd9501abf2899a222857e72ba32f62573b42ff37090cfb97f5",
        "bytes": 33153,
        "crc32": "032bfc8b"
      },
      {
        "file": "automation-detail-theme-evidence/packet-index.json",
        "sha256": "6388c23a43d9e5abe64f5c7984adb9387ac40c0851fbc79c9af2d0fe613d05d9",
        "bytes": 64482,
        "crc32": "cbd96688"
      }
    ]
  },
  "publicTextPrivacy": {
    "identityPolicy": "Original private capture and runtime identifiers are consistently replaced by distinct labels. Local or private URL origins use distinct Captured origin labels. Source commit and content hashes remain exact.",
    "identityLabelCount": 2,
    "originLabels": []
  },
  "verification": {
    "encoding": {
      "decodePassed": true,
      "downloadCompatibilityPassed": true,
      "videoCodec": "h264",
      "pixelFormat": "yuv420p",
      "colorRange": "tv",
      "audioCodec": "aac",
      "dimensions": [
        1440,
        1120
      ],
      "fps": "25/1",
      "frames": 797,
      "durationSeconds": 31.88,
      "audio": {
        "mean_volume": -52.5,
        "max_volume": -42.4
      },
      "topLevelAtoms": [
        "ftyp",
        "moov",
        "free",
        "mdat"
      ]
    },
    "nativeSourceTimeBounds": "Every selected MP4 interval is bounded by its original source duration; explicit still holds have no implied native time range.",
    "rootDecodedVisualGate": {
      "passed": true,
      "reviewedFilmSha256": "04c48deff3f6d74c25909c2491ab2bb552b5b5e336467446d71f328ba485731c",
      "reviewer": "root",
      "method": "All five final decoded contactboards, 42 first/middle/last samples, Before/After detail and phone full frames, and native manual Test start. Labels/crops readable and faithful; no privacy or lifecycle-completion claim."
    },
    "seekLinearValidation": {
      "slug": "automation-detail-theme",
      "filmSha256": "04c48deff3f6d74c25909c2491ab2bb552b5b5e336467446d71f328ba485731c",
      "method": "One contiguous decode selecting exact frame indexes compared against independent seeks at every scene first frame, middle frame and last frame. Pixel hashes compare RGB buffers, not PNG metadata.",
      "sampleCount": 42,
      "allPixelIdentical": true,
      "encoding": "Each scene is independently decoded, then concatenated in one continuous H264 encode with 2-second keyframes; no stream-copy video concatenation."
    }
  },
  "pullRequest": "https://github.com/OpenHands/OpenHands/pull/18947",
  "film": {
    "dimensions": [
      1440,
      1120
    ],
    "fps": 25,
    "durationSeconds": 31.88,
    "scenes": [
      {
        "phase": "before",
        "sourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "checkoutRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "appBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "libraryBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "capturePhase": "before",
        "captureOriginLabel": "capture-run-001",
        "servedBuildFingerprint": "8e365d1fa30953c3",
        "kind": "screenshot",
        "publicSourcePath": "automation-detail-theme-evidence/before/neutral-desktop-header.png",
        "label": "Before · Repeated detail colors",
        "subtitle": "Automation details · Full context · Appearance preserved",
        "caption": "Before: Genuine Draft details in standalone Local Canvas. Existing colors, layout and type are preserved. Authentic PNG held 2.4 seconds.",
        "view": "Automation details · Full context · Appearance preserved",
        "cropDisclosure": "Full original viewport below separate editorial header.",
        "sourceSha256": "2286a8f1542acfdf0fa21d2b1acf75ea400656fad7df96c4c793d4bfc0ce5fb9",
        "sourceBytes": 86746,
        "sourceDurationSeconds": null,
        "sourceFps": null,
        "timelineSeconds": [
          0,
          2.4
        ],
        "presentationDurationSeconds": 2.4,
        "editorialSpeedChange": false,
        "sourceStartSeconds": null,
        "sourceSelectedRangeSeconds": null,
        "outputCadencePaddingSeconds": 0,
        "fullOriginalSelected": false,
        "fullOriginalTimelineSelected": false,
        "fullOriginalViewportSelected": true,
        "sourcePlaybackNote": "Authentic PNG held for the stated presentation duration. A still has no source time range; no recorded motion is implied."
      },
      {
        "phase": "before",
        "sourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "checkoutRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "appBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "libraryBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "capturePhase": "before",
        "captureOriginLabel": "capture-run-001",
        "servedBuildFingerprint": "8e365d1fa30953c3",
        "kind": "recording",
        "publicSourcePath": "automation-detail-theme-evidence/before/native-bounded-draft-test.mp4",
        "label": "Before · Repeated detail colors",
        "subtitle": "Native Test → Draft details · Fixed printf only",
        "caption": "Before: One private fixed-printf Test opens Draft details. Bash exit 0; service lifecycle completion is not claimed. The owned run was cancelled and removed during cleanup. Complete original MP4 at its existing 25 fps cadence; no editorial speed change. The recorder trims still lead-in and adds its final hold.",
        "view": "Native Test → Draft details · Fixed printf only",
        "cropDisclosure": "Full original viewport below separate editorial header.",
        "sourceClock": {
          "startedAt": "2026-10-25T21:22:10Z",
          "stoppedAt": "2026-10-25T21:23:23Z"
        },
        "recorder": {
          "seconds": 2.6,
          "recordedSeconds": 72.6,
          "size": "1440x1000",
          "fps": 25,
          "captures": 37,
          "changes": 36,
          "misses": 0,
          "capped": false,
          "cutSeconds": 71
        },
        "sourceSha256": "295bb676a56059eba429e2617a63af189ed8603cefaf681d419e450f38ffc39a",
        "sourceBytes": 95807,
        "sourceDurationSeconds": 2.56,
        "sourceFps": 25.0,
        "timelineSeconds": [
          2.4,
          4.96
        ],
        "presentationDurationSeconds": 2.56,
        "editorialSpeedChange": false,
        "sourceStartSeconds": 0,
        "sourceSelectedRangeSeconds": [
          0,
          2.56
        ],
        "outputCadencePaddingSeconds": 0,
        "fullOriginalSelected": true,
        "fullOriginalTimelineSelected": true,
        "fullOriginalViewportSelected": true,
        "sourcePlaybackNote": "Selected MP4 interval presented at its existing frame cadence. Recorder caps an initial static lead-in at 1 second and holds the final frame at least 1 second; action intervals retain capture timing. Presentation repeats frames only for output cadence; no motion interpolation."
      },
      {
        "phase": "before",
        "sourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "checkoutRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "appBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "libraryBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "capturePhase": "before",
        "captureOriginLabel": "capture-run-001",
        "servedBuildFingerprint": "8e365d1fa30953c3",
        "kind": "screenshot",
        "publicSourcePath": "automation-detail-theme-evidence/before/neutral-desktop-script.png",
        "label": "Before · Repeated detail colors",
        "subtitle": "Detail crop · Same Draft role and script borders",
        "caption": "Before: Actual Draft badge, entrypoint, script frame and filename borders. Four class substitutions remove two warnings; existing values remain. Authentic PNG held 4 seconds.",
        "view": "Detail crop · Same Draft role and script borders",
        "cropDisclosure": "Actual source crop x425/y62/890×455px, fitted below separate editorial header.",
        "crop": [
          425,
          62,
          890,
          455
        ],
        "sourceSha256": "2aeaccaa57281cd9f2bd7cad6e8208788f91c8eef7a1322d6f1d015d569039db",
        "sourceBytes": 86718,
        "sourceDurationSeconds": null,
        "sourceFps": null,
        "timelineSeconds": [
          4.96,
          8.96
        ],
        "presentationDurationSeconds": 4.0,
        "editorialSpeedChange": false,
        "sourceStartSeconds": null,
        "sourceSelectedRangeSeconds": null,
        "outputCadencePaddingSeconds": 0,
        "fullOriginalSelected": false,
        "fullOriginalTimelineSelected": false,
        "fullOriginalViewportSelected": false,
        "sourcePlaybackNote": "Authentic PNG held for the stated presentation duration. A still has no source time range; no recorded motion is implied."
      },
      {
        "phase": "before",
        "sourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "checkoutRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "appBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "libraryBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "capturePhase": "before",
        "captureOriginLabel": "capture-run-001",
        "servedBuildFingerprint": "8e365d1fa30953c3",
        "kind": "recording",
        "publicSourcePath": "automation-detail-theme-evidence/before/native-desktop-draft-script.mp4",
        "label": "Before · Repeated detail colors",
        "subtitle": "Native detail view · Same frame",
        "caption": "Before: Actual desktop detail view at capture timing, with existing script presentation. Complete original MP4 at its existing 25 fps cadence; no editorial speed change. The recorder trims still lead-in and adds its final hold.",
        "view": "Native detail view · Same frame",
        "cropDisclosure": "Actual source crop x425/y62/890×455px, fitted below separate editorial header.",
        "sourceClock": {
          "startedAt": "2026-10-25T21:24:03Z",
          "stoppedAt": "2026-10-25T21:24:04Z"
        },
        "recorder": {
          "seconds": 1.5,
          "recordedSeconds": 0.5,
          "size": "1440x1000",
          "fps": 25,
          "captures": 12,
          "changes": 12,
          "misses": 0,
          "capped": false,
          "cutSeconds": 0
        },
        "crop": [
          425,
          62,
          890,
          455
        ],
        "sourceSha256": "9334996738d0e2e81cbed2b078126c6e466ba50222095c08182cca91f4402489",
        "sourceBytes": 41145,
        "sourceDurationSeconds": 1.48,
        "sourceFps": 25.0,
        "timelineSeconds": [
          8.96,
          10.44
        ],
        "presentationDurationSeconds": 1.48,
        "editorialSpeedChange": false,
        "sourceStartSeconds": 0,
        "sourceSelectedRangeSeconds": [
          0,
          1.48
        ],
        "outputCadencePaddingSeconds": 0,
        "fullOriginalSelected": false,
        "fullOriginalTimelineSelected": true,
        "fullOriginalViewportSelected": false,
        "sourcePlaybackNote": "Selected MP4 interval presented at its existing frame cadence. Recorder caps an initial static lead-in at 1 second and holds the final frame at least 1 second; action intervals retain capture timing. Presentation repeats frames only for output cadence; no motion interpolation."
      },
      {
        "phase": "before",
        "sourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "checkoutRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "appBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "libraryBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "capturePhase": "before",
        "captureOriginLabel": "capture-run-001",
        "servedBuildFingerprint": "8e365d1fa30953c3",
        "kind": "screenshot",
        "publicSourcePath": "automation-detail-theme-evidence/before/light-desktop-script.png",
        "label": "Before · Repeated detail colors",
        "subtitle": "Light+ · Full context",
        "caption": "Before: Actual Light+ Draft details. All five built-in themes and matched desktop/phone states are retained in the source packet. Authentic PNG held 2 seconds.",
        "view": "Light+ · Full context",
        "cropDisclosure": "Full original viewport below separate editorial header.",
        "sourceSha256": "9910bd3aa1848836b1d57cc7358dbbaf63b60f4f0119153c0a8afb2b92372855",
        "sourceBytes": 86612,
        "sourceDurationSeconds": null,
        "sourceFps": null,
        "timelineSeconds": [
          10.44,
          12.44
        ],
        "presentationDurationSeconds": 2.0,
        "editorialSpeedChange": false,
        "sourceStartSeconds": null,
        "sourceSelectedRangeSeconds": null,
        "outputCadencePaddingSeconds": 0,
        "fullOriginalSelected": false,
        "fullOriginalTimelineSelected": false,
        "fullOriginalViewportSelected": true,
        "sourcePlaybackNote": "Authentic PNG held for the stated presentation duration. A still has no source time range; no recorded motion is implied."
      },
      {
        "phase": "before",
        "sourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "checkoutRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "appBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "libraryBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "capturePhase": "before",
        "captureOriginLabel": "capture-run-001",
        "servedBuildFingerprint": "8e365d1fa30953c3",
        "kind": "screenshot",
        "publicSourcePath": "automation-detail-theme-evidence/before/neutral-phone-header.png",
        "label": "Before · Repeated detail colors",
        "subtitle": "Phone · Existing Draft and script frame",
        "caption": "Before: Actual 390×844 Draft details. Existing phone layout and horizontal code overflow are preserved. Authentic PNG held 3 seconds.",
        "view": "Phone · Existing Draft and script frame",
        "cropDisclosure": "Full original viewport below separate editorial header.",
        "sourceSha256": "1d3f79076d96eff68a8eaba9e9cd36be717bfae78bd88a6f75d154cc1266ab91",
        "sourceBytes": 31357,
        "sourceDurationSeconds": null,
        "sourceFps": null,
        "timelineSeconds": [
          12.44,
          15.44
        ],
        "presentationDurationSeconds": 3.0,
        "editorialSpeedChange": false,
        "sourceStartSeconds": null,
        "sourceSelectedRangeSeconds": null,
        "outputCadencePaddingSeconds": 0,
        "fullOriginalSelected": false,
        "fullOriginalTimelineSelected": false,
        "fullOriginalViewportSelected": true,
        "sourcePlaybackNote": "Authentic PNG held for the stated presentation duration. A still has no source time range; no recorded motion is implied."
      },
      {
        "phase": "before",
        "sourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "checkoutRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "appBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "libraryBuildSourceRevision": "044ec59e12e5070406378ba24d568cfbb3a10bf0",
        "capturePhase": "before",
        "captureOriginLabel": "capture-run-001",
        "servedBuildFingerprint": "8e365d1fa30953c3",
        "kind": "recording",
        "publicSourcePath": "automation-detail-theme-evidence/before/native-phone-draft-script.mp4",
        "label": "Before · Repeated detail colors",
        "subtitle": "Phone · Native detail view",
        "caption": "Before: Actual phone detail view at capture timing. Complete original MP4 at its existing 25 fps cadence; no editorial speed change. The recorder trims still lead-in and adds its final hold.",
        "view": "Phone · Native detail view",
        "cropDisclosure": "Full original viewport below separate editorial header.",
        "sourceClock": {
          "startedAt": "2026-10-25T21:24:19Z",
          "stoppedAt": "2026-10-25T21:24:19Z"
        },
        "recorder": {
          "seconds": 1,
          "recordedSeconds": 0.5,
          "size": "390x844",
          "fps": 25,
          "captures": 13,
          "changes": 1,
          "misses": 0,
          "capped": false,
          "cutSeconds": 0
        },
        "sourceSha256": "886f7307b33e5be8a9081dd2623379f1b8f9914495067d1f3afa50bf40f4d196",
        "sourceBytes": 16903,
        "sourceDurationSeconds": 1.0,
        "sourceFps": 25.0,
        "timelineSeconds": [
          15.44,
          16.44
        ],
        "presentationDurationSeconds": 1.0,
        "editorialSpeedChange": false,
        "sourceStartSeconds": 0,
        "sourceSelectedRangeSeconds": [
          0,
          1.0
        ],
        "outputCadencePaddingSeconds": 0,
        "fullOriginalSelected": true,
        "fullOriginalTimelineSelected": true,
        "fullOriginalViewportSelected": true,
        "sourcePlaybackNote": "Selected MP4 interval presented at its existing frame cadence. Recorder caps an initial static lead-in at 1 second and holds the final frame at least 1 second; action intervals retain capture timing. Presentation repeats frames only for output cadence; no motion interpolation."
      },
      {
        "phase": "after",
        "sourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "checkoutRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "appBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "libraryBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "capturePhase": "automation-after",
        "captureOriginLabel": "capture-run-002",
        "servedBuildFingerprint": "d75a8350ef7e384f",
        "kind": "screenshot",
        "publicSourcePath": "automation-detail-theme-evidence/after/neutral-desktop-header.png",
        "label": "After · Named detail roles",
        "subtitle": "Automation details · Full context · Appearance preserved",
        "caption": "After: Genuine Draft details in standalone Local Canvas. Existing colors, layout and type are preserved. Authentic PNG held 2.4 seconds.",
        "view": "Automation details · Full context · Appearance preserved",
        "cropDisclosure": "Full original viewport below separate editorial header.",
        "sourceSha256": "fc818318e300d39a87cc8370ace0e919b0e1cc226e9ab0247632cd7b9084fdd0",
        "sourceBytes": 86778,
        "sourceDurationSeconds": null,
        "sourceFps": null,
        "timelineSeconds": [
          16.44,
          18.84
        ],
        "presentationDurationSeconds": 2.4,
        "editorialSpeedChange": false,
        "sourceStartSeconds": null,
        "sourceSelectedRangeSeconds": null,
        "outputCadencePaddingSeconds": 0,
        "fullOriginalSelected": false,
        "fullOriginalTimelineSelected": false,
        "fullOriginalViewportSelected": true,
        "sourcePlaybackNote": "Authentic PNG held for the stated presentation duration. A still has no source time range; no recorded motion is implied."
      },
      {
        "phase": "after",
        "sourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "checkoutRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "appBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "libraryBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "capturePhase": "automation-after",
        "captureOriginLabel": "capture-run-002",
        "servedBuildFingerprint": "d75a8350ef7e384f",
        "kind": "recording",
        "publicSourcePath": "automation-detail-theme-evidence/after/native-bounded-draft-test.mp4",
        "label": "After · Named detail roles",
        "subtitle": "Native Test → Draft details · Fixed printf only",
        "caption": "After: One private fixed-printf Test opens Draft details. Bash exit 0; service lifecycle completion is not claimed. The owned run was cancelled and removed during cleanup. Complete original MP4 at its existing 25 fps cadence; no editorial speed change. The recorder trims still lead-in and adds its final hold.",
        "view": "Native Test → Draft details · Fixed printf only",
        "cropDisclosure": "Full original viewport below separate editorial header.",
        "sourceClock": {
          "startedAt": "2026-10-25T21:27:15Z",
          "stoppedAt": "2026-10-25T21:27:17Z"
        },
        "recorder": {
          "seconds": 1.6,
          "recordedSeconds": 1.8,
          "size": "1440x1000",
          "fps": 25,
          "captures": 35,
          "changes": 15,
          "misses": 0,
          "capped": false,
          "cutSeconds": 0.3
        },
        "sourceSha256": "675f56cf96242e23e66c602894884ecc4bfc32eccaac0f1ee6ef76cadd72c805",
        "sourceBytes": 74503,
        "sourceDurationSeconds": 1.6,
        "sourceFps": 25.0,
        "timelineSeconds": [
          18.84,
          20.44
        ],
        "presentationDurationSeconds": 1.6,
        "editorialSpeedChange": false,
        "sourceStartSeconds": 0,
        "sourceSelectedRangeSeconds": [
          0,
          1.6
        ],
        "outputCadencePaddingSeconds": 0,
        "fullOriginalSelected": true,
        "fullOriginalTimelineSelected": true,
        "fullOriginalViewportSelected": true,
        "sourcePlaybackNote": "Selected MP4 interval presented at its existing frame cadence. Recorder caps an initial static lead-in at 1 second and holds the final frame at least 1 second; action intervals retain capture timing. Presentation repeats frames only for output cadence; no motion interpolation."
      },
      {
        "phase": "after",
        "sourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "checkoutRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "appBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "libraryBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "capturePhase": "automation-after",
        "captureOriginLabel": "capture-run-002",
        "servedBuildFingerprint": "d75a8350ef7e384f",
        "kind": "screenshot",
        "publicSourcePath": "automation-detail-theme-evidence/after/neutral-desktop-script.png",
        "label": "After · Named detail roles",
        "subtitle": "Detail crop · Same Draft role and script borders",
        "caption": "After: Actual Draft badge, entrypoint, script frame and filename borders. Four class substitutions remove two warnings; existing values remain. Authentic PNG held 4 seconds.",
        "view": "Detail crop · Same Draft role and script borders",
        "cropDisclosure": "Actual source crop x425/y62/890×455px, fitted below separate editorial header.",
        "crop": [
          425,
          62,
          890,
          455
        ],
        "sourceSha256": "65aaf7119be037a9b39d1476830424c50ca94190893bc1e4de07f507d3f0a77e",
        "sourceBytes": 86780,
        "sourceDurationSeconds": null,
        "sourceFps": null,
        "timelineSeconds": [
          20.44,
          24.44
        ],
        "presentationDurationSeconds": 4.0,
        "editorialSpeedChange": false,
        "sourceStartSeconds": null,
        "sourceSelectedRangeSeconds": null,
        "outputCadencePaddingSeconds": 0,
        "fullOriginalSelected": false,
        "fullOriginalTimelineSelected": false,
        "fullOriginalViewportSelected": false,
        "sourcePlaybackNote": "Authentic PNG held for the stated presentation duration. A still has no source time range; no recorded motion is implied."
      },
      {
        "phase": "after",
        "sourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "checkoutRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "appBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "libraryBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "capturePhase": "automation-after",
        "captureOriginLabel": "capture-run-002",
        "servedBuildFingerprint": "d75a8350ef7e384f",
        "kind": "recording",
        "publicSourcePath": "automation-detail-theme-evidence/after/native-desktop-draft-script.mp4",
        "label": "After · Named detail roles",
        "subtitle": "Native detail view · Same frame",
        "caption": "After: Actual desktop detail view at capture timing, with existing script presentation. Complete original MP4 at its existing 25 fps cadence; no editorial speed change. The recorder trims still lead-in and adds its final hold.",
        "view": "Native detail view · Same frame",
        "cropDisclosure": "Actual source crop x425/y62/890×455px, fitted below separate editorial header.",
        "sourceClock": {
          "startedAt": "2026-10-25T21:27:20Z",
          "stoppedAt": "2026-10-25T21:27:20Z"
        },
        "recorder": {
          "seconds": 1.4,
          "recordedSeconds": 0.5,
          "size": "1440x1000",
          "fps": 25,
          "captures": 12,
          "changes": 12,
          "misses": 0,
          "capped": false,
          "cutSeconds": 0
        },
        "crop": [
          425,
          62,
          890,
          455
        ],
        "sourceSha256": "f88c3076984bdeb5adcfb35e14dfb954c6e0bde55b8e60f94dd2d5c3ed7c043b",
        "sourceBytes": 41131,
        "sourceDurationSeconds": 1.44,
        "sourceFps": 25.0,
        "timelineSeconds": [
          24.44,
          25.88
        ],
        "presentationDurationSeconds": 1.44,
        "editorialSpeedChange": false,
        "sourceStartSeconds": 0,
        "sourceSelectedRangeSeconds": [
          0,
          1.44
        ],
        "outputCadencePaddingSeconds": 0,
        "fullOriginalSelected": false,
        "fullOriginalTimelineSelected": true,
        "fullOriginalViewportSelected": false,
        "sourcePlaybackNote": "Selected MP4 interval presented at its existing frame cadence. Recorder caps an initial static lead-in at 1 second and holds the final frame at least 1 second; action intervals retain capture timing. Presentation repeats frames only for output cadence; no motion interpolation."
      },
      {
        "phase": "after",
        "sourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "checkoutRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "appBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "libraryBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "capturePhase": "automation-after",
        "captureOriginLabel": "capture-run-002",
        "servedBuildFingerprint": "d75a8350ef7e384f",
        "kind": "screenshot",
        "publicSourcePath": "automation-detail-theme-evidence/after/light-desktop-script.png",
        "label": "After · Named detail roles",
        "subtitle": "Light+ · Full context",
        "caption": "After: Actual Light+ Draft details. All five built-in themes and matched desktop/phone states are retained in the source packet. Authentic PNG held 2 seconds.",
        "view": "Light+ · Full context",
        "cropDisclosure": "Full original viewport below separate editorial header.",
        "sourceSha256": "b0e5cb6810b0e28c78b3a332c68db1d01049448479f23894e57164ef636b0811",
        "sourceBytes": 86406,
        "sourceDurationSeconds": null,
        "sourceFps": null,
        "timelineSeconds": [
          25.88,
          27.88
        ],
        "presentationDurationSeconds": 2.0,
        "editorialSpeedChange": false,
        "sourceStartSeconds": null,
        "sourceSelectedRangeSeconds": null,
        "outputCadencePaddingSeconds": 0,
        "fullOriginalSelected": false,
        "fullOriginalTimelineSelected": false,
        "fullOriginalViewportSelected": true,
        "sourcePlaybackNote": "Authentic PNG held for the stated presentation duration. A still has no source time range; no recorded motion is implied."
      },
      {
        "phase": "after",
        "sourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "checkoutRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "appBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "libraryBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "capturePhase": "automation-after",
        "captureOriginLabel": "capture-run-002",
        "servedBuildFingerprint": "d75a8350ef7e384f",
        "kind": "screenshot",
        "publicSourcePath": "automation-detail-theme-evidence/after/neutral-phone-header.png",
        "label": "After · Named detail roles",
        "subtitle": "Phone · Existing Draft and script frame",
        "caption": "After: Actual 390×844 Draft details. Existing phone layout and horizontal code overflow are preserved. Authentic PNG held 3 seconds.",
        "view": "Phone · Existing Draft and script frame",
        "cropDisclosure": "Full original viewport below separate editorial header.",
        "sourceSha256": "1d3f79076d96eff68a8eaba9e9cd36be717bfae78bd88a6f75d154cc1266ab91",
        "sourceBytes": 31357,
        "sourceDurationSeconds": null,
        "sourceFps": null,
        "timelineSeconds": [
          27.88,
          30.88
        ],
        "presentationDurationSeconds": 3.0,
        "editorialSpeedChange": false,
        "sourceStartSeconds": null,
        "sourceSelectedRangeSeconds": null,
        "outputCadencePaddingSeconds": 0,
        "fullOriginalSelected": false,
        "fullOriginalTimelineSelected": false,
        "fullOriginalViewportSelected": true,
        "sourcePlaybackNote": "Authentic PNG held for the stated presentation duration. A still has no source time range; no recorded motion is implied."
      },
      {
        "phase": "after",
        "sourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "checkoutRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "appBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "libraryBuildSourceRevision": "4506f4ff98958f68283e7121f1763367f96a8ab1",
        "capturePhase": "automation-after",
        "captureOriginLabel": "capture-run-002",
        "servedBuildFingerprint": "d75a8350ef7e384f",
        "kind": "recording",
        "publicSourcePath": "automation-detail-theme-evidence/after/native-phone-draft-script.mp4",
        "label": "After · Named detail roles",
        "subtitle": "Phone · Native detail view",
        "caption": "After: Actual phone detail view at capture timing. Complete original MP4 at its existing 25 fps cadence; no editorial speed change. The recorder trims still lead-in and adds its final hold.",
        "view": "Phone · Native detail view",
        "cropDisclosure": "Full original viewport below separate editorial header.",
        "sourceClock": {
          "startedAt": "2026-10-25T21:27:35Z",
          "stoppedAt": "2026-10-25T21:27:35Z"
        },
        "recorder": {
          "seconds": 1,
          "recordedSeconds": 0.5,
          "size": "390x844",
          "fps": 25,
          "captures": 11,
          "changes": 1,
          "misses": 0,
          "capped": false,
          "cutSeconds": 0
        },
        "sourceSha256": "886f7307b33e5be8a9081dd2623379f1b8f9914495067d1f3afa50bf40f4d196",
        "sourceBytes": 16903,
        "sourceDurationSeconds": 1.0,
        "sourceFps": 25.0,
        "timelineSeconds": [
          30.88,
          31.88
        ],
        "presentationDurationSeconds": 1.0,
        "editorialSpeedChange": false,
        "sourceStartSeconds": 0,
        "sourceSelectedRangeSeconds": [
          0,
          1.0
        ],
        "outputCadencePaddingSeconds": 0,
        "fullOriginalSelected": true,
        "fullOriginalTimelineSelected": true,
        "fullOriginalViewportSelected": true,
        "sourcePlaybackNote": "Selected MP4 interval presented at its existing frame cadence. Recorder caps an initial static lead-in at 1 second and holds the final frame at least 1 second; action intervals retain capture timing. Presentation repeats frames only for output cadence; no motion interpolation."
      }
    ],
    "ambience": {
      "origin": "Original synthesized ambient pad; no external samples or provider.",
      "frequenciesHz": [
        174.61,
        220,
        261.63
      ],
      "amplitude": 0.004,
      "normalizationGain": 1.26899,
      "fadeInSeconds": 1.5,
      "fadeOutSeconds": 2,
      "meanDbfs": -52.5,
      "peakDbfs": -42.4,
      "applicationAudio": false
    },
    "encodingNote": "Each scene is independently decoded, then concatenated in one continuous H264 encode with 2-second keyframes; no stream-copy video concatenation.",
    "recipeSha256": "8280a29cab92135ce30c3f0f3459349ffeb0498932928669a75acc2289d69625"
  },
  "preview": {
    "file": "automation-detail-theme-poster.jpg",
    "dimensions": [
      1440,
      1120
    ],
    "type": "poster",
    "audio": false,
    "limitation": "Still poster. Play or download the MP4 for original native motion and quiet original ambience. Appearance is preserved."
  },
  "files": {
    "automation-detail-theme-comparison.json": {
      "sha256": "ef78d5b49d6c21fa8094d9ff277117d444e14e1110889b885f0fe09ef10c4704",
      "bytes": 227683
    },
    "automation-detail-theme-before-after.mp4": {
      "sha256": "04c48deff3f6d74c25909c2491ab2bb552b5b5e336467446d71f328ba485731c",
      "bytes": 1754678
    },
    "automation-detail-theme-capture-provenance.json": {
      "sha256": "cf1c0e942db2125671ba0fb0090486b23bf89a0518415953a0d3648ff656f026",
      "bytes": 68409
    },
    "automation-detail-theme-evidence.zip": {
      "sha256": "c46d29d53af14084c1f62a0b0b073cff3a7fe5a72557fab0233b4e21b840dae1",
      "bytes": 2730207
    },
    "automation-detail-theme-captions.vtt": {
      "sha256": "c9d06766e690e7d55608459df672b440aabde2c7c4b8cfb6a90ca7ebc7b9d578",
      "bytes": 3145
    },
    "automation-detail-theme-poster.jpg": {
      "sha256": "426a02d07e46fdb4d284ac2497729efaa068986e8b7a6323c683200bc8a620fc",
      "bytes": 108983
    }
  }
}
