{
  "schema": "goodscroll-authenticated-inapp-evidence-v2",
  "tool": {
    "name": "Prova autenticata locale · sviluppo",
    "version": "1.2.1"
  },
  "interval_utc": {
    "started_at": "2026-08-02T17:02:59.398Z",
    "finished_at": "2026-08-02T17:21:19.849Z",
    "maximum_minutes": 30
  },
  "application": {
    "version": "1.10.41",
    "secure_context": true,
    "display_mode": "standalone",
    "origin_class": "production_canonical"
  },
  "authorization": {
    "approved": true,
    "can_run_diagnostics": true,
    "fresh_server_check": true
  },
  "phases": [
    {
      "id": "provenance_baseline",
      "status": "complete",
      "checks": {
        "baseline_captured": true,
        "storage_inventory_complete": true,
        "semantic_app_version": true,
        "secure_context": true,
        "standalone_display": true,
        "canonical_origin": true
      }
    },
    {
      "id": "content_lifecycle",
      "status": "complete",
      "checks": {
        "clean_target_server_confirmed": true,
        "reaction_present": true,
        "reaction_absent_after": true,
        "echo_present": true,
        "echo_absent_after": true,
        "note_present": true,
        "note_absent_after": true,
        "server_cleanup_confirmed": true
      }
    },
    {
      "id": "story_non_mutation_boundary",
      "status": "complete",
      "checks": {
        "write_gate_active": true,
        "no_story_write_confirmed": true,
        "completion_state_untouched": true
      }
    },
    {
      "id": "vault_locked_boundary",
      "status": "complete",
      "checks": {
        "locked_observed": true,
        "editor_closed": true,
        "note_write_not_confirmed": true
      }
    },
    {
      "id": "lumi_minimal",
      "status": "complete",
      "checks": {
        "opened": true,
        "minimal_interaction_completed": true,
        "closed": true
      }
    },
    {
      "id": "tts_outcome",
      "status": "complete",
      "checks": {
        "attempt_observed": true,
        "playback_started": false,
        "failure_classified": true,
        "stopped_or_absent": true
      }
    },
    {
      "id": "performance_diagnostic",
      "status": "complete",
      "checks": {
        "clean_target_server_confirmed": true,
        "started": true,
        "reaction_present": true,
        "sealed": true,
        "cleared": true,
        "reaction_absent_after": true,
        "server_cleanup_confirmed": true
      }
    },
    {
      "id": "visibility_resume",
      "status": "complete",
      "checks": {
        "hidden_observed": true,
        "visible_observed": true,
        "minimum_interval_met": true
      }
    },
    {
      "id": "final_snapshot_cleanup",
      "status": "complete",
      "checks": {
        "final_snapshot_captured": true,
        "storage_inventory_complete": true,
        "snapshot_delta_allowed": true,
        "cleanup_debt_absent": true,
        "server_cleanup_confirmed": true
      }
    }
  ],
  "snapshots": {
    "baseline": {
      "local_storage": {
        "supported": true,
        "total_count": 8,
        "known": {
          "version_marker": true,
          "update_notice": false,
          "authenticated_session": true,
          "story_progress": true,
          "story_read_day": true,
          "lumi_prompt_day": true,
          "lumi_room_gift_day": true,
          "pkce_verifier": false,
          "privacy_notice": true,
          "pwa_install_notice": true
        },
        "unknown_count": 0
      },
      "session_storage": {
        "supported": true,
        "total_count": 0,
        "known": {
          "performance_diagnostics": false
        },
        "unknown_count": 0
      },
      "script_visible_cookies": {
        "supported": false,
        "observation": "not_read_by_design",
        "visible_count": null
      },
      "indexed_db": {
        "supported": true,
        "count": 0
      },
      "cache_storage": {
        "supported": true,
        "count": 1
      },
      "service_workers": {
        "supported": true,
        "count": 1
      }
    },
    "final": {
      "local_storage": {
        "supported": true,
        "total_count": 8,
        "known": {
          "version_marker": true,
          "update_notice": false,
          "authenticated_session": true,
          "story_progress": true,
          "story_read_day": true,
          "lumi_prompt_day": true,
          "lumi_room_gift_day": true,
          "pkce_verifier": false,
          "privacy_notice": true,
          "pwa_install_notice": true
        },
        "unknown_count": 0
      },
      "session_storage": {
        "supported": true,
        "total_count": 0,
        "known": {
          "performance_diagnostics": false
        },
        "unknown_count": 0
      },
      "script_visible_cookies": {
        "supported": false,
        "observation": "not_read_by_design",
        "visible_count": null
      },
      "indexed_db": {
        "supported": true,
        "count": 0
      },
      "cache_storage": {
        "supported": true,
        "count": 1
      },
      "service_workers": {
        "supported": true,
        "count": 1
      }
    }
  },
  "cleanup": {
    "debt_present": false,
    "outstanding_categories": {
      "content_reaction": false,
      "content_echo": false,
      "content_note": false,
      "story_reaction": false,
      "story_echo": false,
      "story_note": false
    },
    "server_confirmed": true,
    "server_recheck": {
      "content_targets_checked": 1,
      "story_targets_checked": 0
    },
    "snapshot_delta_allowed": true,
    "cleanup_verified": true
  },
  "limitations": [
    "Raccolta guidata di prima parte: non è un osservatore indipendente.",
    "La prova non legge document.cookie; cookie HttpOnly e contenitori non esposti alla pagina non sono osservabili.",
    "Cache HTTP, BFCache e uso complessivo dell’origine non sono osservati.",
    "Una singola esecuzione non prova RLS, ACL o isolamento generale tra account.",
    "La prova va eseguita senza un’altra sessione attiva dello stesso account: verifiche server e scritture non formano una singola transazione atomica.",
    "L’inventario senza valori non prova l’assenza assoluta di dati in ogni momento.",
    "L’intervallo hidden/visible non prova lo stato interno del processo Android.",
    "Backend, log, backup e fornitori richiedono verifiche separate.",
    "Una chiusura forzata della pagina può impedire la pulizia: in quel caso non viene prodotto alcun rapporto e gli input sintetici vanno rimossi manualmente.",
    "Il rapporto è prodotto dalla stessa app e può essere alterato con strumenti di sviluppo.",
    "L’hash SHA-256 controlla l’integrità del file: non è una firma né un’attestazione indipendente.",
    "Il rapporto non è una certificazione, un audit GDPR o un parere legale.",
    "L’esito vale soltanto per build, account, dispositivo e intervallo dichiarati."
  ],
  "completion": {
    "status": "supported",
    "reason_codes": []
  },
  "integrity": {
    "algorithm": "SHA-256",
    "canonicalization": "recursive_sorted_json_v1",
    "canonical_payload_sha256": "51d7b8d415df854df08ab16c4783c083ed71be19d386f03bf180d86f8310169e",
    "available": true
  }
}