{
  "base": "http://127.0.0.1:51840/",
  "ranAt": "2026-10-02T00:13:31.097Z",
  "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": "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": []
}