{
  "base": "https://review.clientsflow.hu/komplex-journey-2026-10-02-v1/",
  "ranAt": "2026-10-02T02:05:19.598Z",
  "viewportWidths": [
    360,
    390,
    430
  ],
  "checks": [
    {
      "id": "rita direct exploration: send is disabled and handler cannot create participant readback",
      "pass": true,
      "detail": "No-video editor is clearly labelled, preview and draft remain usable, forced send is rejected, and participant readback stays empty after reload."
    },
    {
      "id": "Rita normal submitted-video loop and participant/day isolation",
      "pass": true,
      "detail": "Fixture submit, draft save, edit, preview, send, exact participant readback, day switch and second-participant isolation all passed."
    },
    {
      "id": "initial fixture selection: localStorage failure is labelled and reload returns saved state",
      "pass": true,
      "detail": "Unsaved in-memory fixture remained usable with an explicit label; reload confirmed it was not persisted."
    },
    {
      "id": "daily fixture selection: localStorage failure is labelled and reload returns saved state",
      "pass": true,
      "detail": "Unsaved daily fixture remained playable with an explicit label; reload confirmed no participant video record was created."
    },
    {
      "id": "daily remove: localStorage failure preserves IndexedDB video, metadata, preview and reload readback",
      "pass": true,
      "detail": "A failed metadata write prevented IndexedDB deletion; both the preview and saved record returned after a real reload."
    },
    {
      "id": "initial remove: localStorage failure preserves IndexedDB video, metadata, preview and reload readback",
      "pass": true,
      "detail": "The initial-video removal path also preserves metadata and IndexedDB bytes when localStorage rejects the removal."
    },
    {
      "id": "daily fixture replacement: IndexedDB cleanup failure is disclosed and the fixture state remains usable",
      "pass": true,
      "detail": "Fixture metadata was saved, old IndexedDB cleanup failure was shown, and fixture preview remained available after reload."
    },
    {
      "id": "initial fixture replacement: IndexedDB cleanup failure is disclosed and the fixture state remains usable",
      "pass": true,
      "detail": "Initial fixture metadata was saved, old IndexedDB cleanup failure was shown, and fixture preview remained available after reload."
    },
    {
      "id": "daily remove: IndexedDB failure is disclosed after metadata removal and never claimed as complete",
      "pass": true,
      "detail": "The UI states that file cleanup could not be verified, metadata remains removed after reload, and the test read back the surviving IndexedDB blob."
    },
    {
      "id": "direct free-feedback visit: exploration does not create a received state without simulated submission",
      "pass": true,
      "detail": "Bare feedback and receipt routes show exploration/sample state only; force-enabling receipt without freeSubmission still cannot write eligibility."
    },
    {
      "id": "explicit sample receipt: simulated context is required, marketing remains independent, and the state survives reload",
      "pass": true,
      "detail": "Only the explicit transition with a matching simulated freeSubmission produced availability; reload and consent readback preserved it without enabling marketing."
    },
    {
      "id": "normal upload → receipt → explicit feedback → nurture preview flow",
      "pass": true,
      "detail": "Validated free-video submission read back on receipt, explicit receipt transition persisted, marketing stayed off, and nurture remained preview-only."
    },
    {
      "id": "daily local-file replacement: localStorage failure preserves exact legacy metadata and old bytes across reload",
      "pass": true,
      "detail": "{\"metadataBefore\":{\"name\":\"old.mp4\",\"kind\":\"local\",\"type\":\"video/mp4\",\"bytesSaved\":true},\"metadataAfterFailure\":{\"name\":\"old.mp4\",\"kind\":\"local\",\"type\":\"video/mp4\",\"bytesSaved\":true},\"metadataAfterReload\":{\"name\":\"old.mp4\",\"kind\":\"local\",\"type\":\"video/mp4\",\"bytesSaved\":true},\"priorSha256\":\"95b4c8d371fca105c04aaf0090430f074595f72afebe3e7a717875b17e50ae73\",\"afterFailureSha256\":\"95b4c8d371fca105c04aaf0090430f074595f72afebe3e7a717875b17e50ae73\",\"afterReloadSha256\":\"95b4c8d371fca105c04aaf0090430f074595f72afebe3e7a717875b17e50ae73\",\"selectedFileSha256\":\"2ee832cc3f2440fa485aa28efbb18bbbb8a6ed8f2c9cb9083d1d9f71146c8673\",\"result\":\"legacy metadata and bytes preserved; replacement stayed preview-only\"}"
    },
    {
      "id": "initial local-file replacement: localStorage failure preserves exact legacy metadata and old bytes across reload",
      "pass": true,
      "detail": "{\"metadataBefore\":{\"name\":\"old-initial.mp4\",\"kind\":\"local\",\"bytesSaved\":true},\"metadataAfterFailure\":{\"name\":\"old-initial.mp4\",\"kind\":\"local\",\"bytesSaved\":true},\"metadataAfterReload\":{\"name\":\"old-initial.mp4\",\"kind\":\"local\",\"bytesSaved\":true},\"priorSha256\":\"bc204f57aa17ed977212f8f7a5bfe501dbce398e28f577ffc7f9a92cae8e42cd\",\"afterFailureSha256\":\"bc204f57aa17ed977212f8f7a5bfe501dbce398e28f577ffc7f9a92cae8e42cd\",\"afterReloadSha256\":\"bc204f57aa17ed977212f8f7a5bfe501dbce398e28f577ffc7f9a92cae8e42cd\",\"selectedFileSha256\":\"2ee832cc3f2440fa485aa28efbb18bbbb8a6ed8f2c9cb9083d1d9f71146c8673\",\"result\":\"legacy metadata and bytes preserved; replacement stayed preview-only\"}"
    },
    {
      "id": "daily IndexedDB put failure: replacement stays unsaved and prior record survives reload",
      "pass": true,
      "detail": "{\"metadataBefore\":{\"name\":\"old.mp4\",\"kind\":\"local\",\"type\":\"video/mp4\",\"bytesSaved\":true},\"metadataAfterReload\":{\"name\":\"old.mp4\",\"kind\":\"local\",\"type\":\"video/mp4\",\"bytesSaved\":true},\"priorSha256\":\"c8651410bede8dce37acd0ef663e8561da26612ea7e19a6d8bb4be9456fc2b00\",\"afterReloadSha256\":\"c8651410bede8dce37acd0ef663e8561da26612ea7e19a6d8bb4be9456fc2b00\",\"attemptedFileSha256\":\"2ee832cc3f2440fa485aa28efbb18bbbb8a6ed8f2c9cb9083d1d9f71146c8673\",\"result\":\"put failure left prior saved record untouched\"}"
    },
    {
      "id": "initial IndexedDB put failure: replacement stays unsaved and prior record survives reload",
      "pass": true,
      "detail": "{\"metadataBefore\":{\"name\":\"old-initial.mp4\",\"kind\":\"local\",\"bytesSaved\":true},\"metadataAfterReload\":{\"name\":\"old-initial.mp4\",\"kind\":\"local\",\"bytesSaved\":true},\"priorSha256\":\"1ebf4ae5aa14f067fb4a931c638ed44b2286cf1bfa5850b02740438b08f2d7a4\",\"afterReloadSha256\":\"1ebf4ae5aa14f067fb4a931c638ed44b2286cf1bfa5850b02740438b08f2d7a4\",\"attemptedFileSha256\":\"2ee832cc3f2440fa485aa28efbb18bbbb8a6ed8f2c9cb9083d1d9f71146c8673\",\"result\":\"put failure left prior saved record untouched\"}"
    },
    {
      "id": "daily local-file replacement: committed metadata references playable new bytes after reload",
      "pass": true,
      "detail": "{\"metadataBefore\":{\"name\":\"old.mp4\",\"kind\":\"local\",\"type\":\"video/mp4\",\"bytesSaved\":true},\"metadataAfter\":{\"name\":\"demo-video.mp4\",\"size\":20551,\"type\":\"video/mp4\",\"kind\":\"local\",\"bytesSaved\":true,\"storageKey\":\"01-revision-05bfeaf8-a0db-4b15-afd3-a60a4ea45b29\"},\"metadataAfterReload\":{\"name\":\"demo-video.mp4\",\"size\":20551,\"type\":\"video/mp4\",\"kind\":\"local\",\"bytesSaved\":true,\"storageKey\":\"01-revision-05bfeaf8-a0db-4b15-afd3-a60a4ea45b29\"},\"oldBlobSha256\":\"03514a12119a1901b2a4fd363c8048830199e222caf720dd999fd056c3529276\",\"newBlobSha256\":\"2ee832cc3f2440fa485aa28efbb18bbbb8a6ed8f2c9cb9083d1d9f71146c8673\",\"reloadBlobSha256\":\"2ee832cc3f2440fa485aa28efbb18bbbb8a6ed8f2c9cb9083d1d9f71146c8673\",\"selectedFileSha256\":\"2ee832cc3f2440fa485aa28efbb18bbbb8a6ed8f2c9cb9083d1d9f71146c8673\",\"previewAfterReload\":{\"readyState\":4,\"duration\":8},\"result\":\"new metadata and playable bytes match after reload\"}"
    },
    {
      "id": "initial local-file replacement: committed metadata references playable new bytes after reload",
      "pass": true,
      "detail": "{\"metadataBefore\":{\"name\":\"old-initial.mp4\",\"kind\":\"local\",\"bytesSaved\":true},\"metadataAfter\":{\"name\":\"demo-video.mp4\",\"size\":20551,\"type\":\"video/mp4\",\"kind\":\"local\",\"bytesSaved\":true,\"storageKey\":\"initial-revision-9e800155-e20c-401e-9cff-554eff1b792f\"},\"metadataAfterReload\":{\"name\":\"demo-video.mp4\",\"size\":20551,\"type\":\"video/mp4\",\"kind\":\"local\",\"bytesSaved\":true,\"storageKey\":\"initial-revision-9e800155-e20c-401e-9cff-554eff1b792f\"},\"oldBlobSha256\":\"b39518a2ab5495cb1ae36067b659ead130cfa32e94c7c8b0da31a64739d36e51\",\"newBlobSha256\":\"2ee832cc3f2440fa485aa28efbb18bbbb8a6ed8f2c9cb9083d1d9f71146c8673\",\"reloadBlobSha256\":\"2ee832cc3f2440fa485aa28efbb18bbbb8a6ed8f2c9cb9083d1d9f71146c8673\",\"selectedFileSha256\":\"2ee832cc3f2440fa485aa28efbb18bbbb8a6ed8f2c9cb9083d1d9f71146c8673\",\"previewAfterReload\":{\"readyState\":4,\"duration\":8},\"result\":\"new metadata and playable bytes match after reload\"}"
    },
    {
      "id": "failed metadata save plus IndexedDB cleanup failure is disclosed for both replacement paths",
      "pass": true,
      "detail": "[{\"initial\":false,\"metadataBefore\":{\"name\":\"old.mp4\",\"kind\":\"local\",\"type\":\"video/mp4\",\"bytesSaved\":true},\"metadataAfter\":{\"name\":\"old.mp4\",\"kind\":\"local\",\"type\":\"video/mp4\",\"bytesSaved\":true},\"metadataAfterReload\":{\"name\":\"old.mp4\",\"kind\":\"local\",\"type\":\"video/mp4\",\"bytesSaved\":true},\"priorSha256\":\"e5d05016c3e82c4e6212c38806ec428515bfae8e237bc17f5071c3c55917be11\",\"afterFailureSha256\":\"e5d05016c3e82c4e6212c38806ec428515bfae8e237bc17f5071c3c55917be11\",\"afterReloadSha256\":\"e5d05016c3e82c4e6212c38806ec428515bfae8e237bc17f5071c3c55917be11\",\"unreferencedOrphanKey\":\"01-revision-11eddd65-7b60-47c8-ab43-dc00a0f102b9\",\"message\":\"Az új videó csak ezen az oldalon érhető el, mert a böngésző nem mentette a metaadatot. A korábbi mentett videó és metaadata változatlan maradt. A félkész új fájl törlése nem sikerült, a korábbi metaadat nem hivatkozik rá.\"},{\"initial\":true,\"metadataBefore\":{\"name\":\"old-initial.mp4\",\"kind\":\"local\",\"bytesSaved\":true},\"metadataAfter\":{\"name\":\"old-initial.mp4\",\"kind\":\"local\",\"bytesSaved\":true},\"metadataAfterReload\":{\"name\":\"old-initial.mp4\",\"kind\":\"local\",\"bytesSaved\":true},\"priorSha256\":\"995a2385a9f99bf5a38b49ce20a9a6bcdf63b1abc0e27a6774f88a953fa251e7\",\"afterFailureSha256\":\"995a2385a9f99bf5a38b49ce20a9a6bcdf63b1abc0e27a6774f88a953fa251e7\",\"afterReloadSha256\":\"995a2385a9f99bf5a38b49ce20a9a6bcdf63b1abc0e27a6774f88a953fa251e7\",\"unreferencedOrphanKey\":\"initial-revision-c232aa8c-2640-486c-b593-a5116531a090\",\"message\":\"Az új kezdő videó csak ezen az oldalon érhető el, mert a böngésző nem mentette a metaadatot. A korábbi mentett videó és metaadata változatlan maradt. A félkész új fájl törlése nem sikerült, a korábbi metaadat nem hivatkozik rá.\"}]"
    },
    {
      "id": "responsive coverage: all required app, feedback and receipt routes at 360/390/430",
      "pass": true,
      "detail": "No horizontal overflow or out-of-viewport buttons, textareas or selects at 360px, 390px and 430px."
    }
  ],
  "pageErrors": [],
  "badResponses": [],
  "nonGetRequests": []
}