{
  "at": "2026-10-30T11:48:51.875038+00:00",
  "version": "0.20.1",
  "backend_backup_metadata": "0.20.0",
  "layer": "Stopped-data recovery and in-process TestClient API checks; no browser recovery or new customer/staff login",
  "source_records": "API-seeded synthetic enquiries, then actual browser review/share/gallery lifecycle actions",
  "source_path_made_unavailable_by_rename": true,
  "original_source_retained_not_deleted": true,
  "source_retained": "/Users/sandyrestall/Documents/Codex/2026-10-27/t/work/v0.20-gallery-journey/qa-source-retained",
  "restored_into_fresh_folder": true,
  "recovery_format": 12,
  "snapshot_sha256": "ca05c6a87b395bd2abe9cad5b7ebf388e6c31b3fe04c58ec30b3d96a36d33a7a",
  "second_snapshot_sha256": "efb0e0679166ca2cc1b35833ed7fd9a9b6cba5ba1ccad99f9ed46c0b3b38785c",
  "businesses": 2,
  "jobs": 2,
  "private_photos": 3,
  "projects": 1,
  "original_facts_hashes_names_order_and_source_sizes_preserved": true,
  "normalized_png_bytes_preserved": true,
  "photo_sha256": {
    "oak": {
      "ab6e01332699e96d3e756ffa3b2853fb.png": "28f14a18fb77bacbfe13bb0c4a207a4b0b8bd8640412c201af47adeb643b48e5",
      "7e939829d6a11cb966ad4917183b2a62.png": "9971f7bf423ae3984e21f301a6bc94987112886ca03bedd2afd52720c07cf2ce",
      "9c7c5e57984c17fb93d59ffdb0b49099.png": "e95ac624388252ee82a7de554b69681678393e600c1f8cbfa7c8785ed65d9550"
    },
    "harbour": {}
  },
  "all_existing_photo_and_gallery_history_rows_preserved": true,
  "photo_history_rows_before": 16,
  "photo_history_rows_after": 18,
  "gallery_history_rows_before": 15,
  "gallery_history_rows_after": 16,
  "saved_private_draft_preserved": true,
  "original_public_snapshot_retained_in_history": true,
  "review_and_customer_sharing_suspended": true,
  "archived_photo_still_archived": true,
  "public_page_json_images_index_and_sitemap_withdrawn": true,
  "republication_denied_before_review": 409,
  "republication_denied_without_permission": 422,
  "old_owner_sessions_denied": 2,
  "other_business_denied": true,
  "anonymous_private_images_denied": true,
  "unchanged_business_tables": {
    "oak": [
      "jobs",
      "quotes",
      "payments",
      "operations",
      "assets",
      "site",
      "site_history",
      "invoices",
      "quote_links",
      "document_events",
      "document_counters",
      "payment_stages",
      "payment_allocations",
      "payment_reversals",
      "payment_details",
      "customer_changes",
      "customer_links",
      "materials_catalogue",
      "job_materials",
      "material_audit",
      "team_resources",
      "time_entries",
      "workforce_audit",
      "calendar_bookings",
      "calendar_audit",
      "setup_progress",
      "staff_updates",
      "photo_blobs",
      "field_logs",
      "field_log_history",
      "field_sessions",
      "field_intervals",
      "field_resource_locks",
      "field_history",
      "field_time_links",
      "field_material_links",
      "document_sources",
      "source_history",
      "recurring_contracts",
      "recurrence_rules",
      "recurrence_blocks",
      "recurrence_occurrences",
      "recurrence_history",
      "recurrence_runs",
      "portal_accounts",
      "portal_tokens",
      "portal_events",
      "portal_migrations",
      "sales_settings",
      "sales_settings_history",
      "quote_responses",
      "payment_request_snapshots",
      "feedback_requests",
      "feedback_tokens",
      "feedback_responses",
      "feedback_consents",
      "feedback_publications",
      "feedback_history",
      "job_workflow",
      "job_workflow_history",
      "opportunity_settings",
      "opportunity_settings_history",
      "opportunity_reviews",
      "opportunity_history",
      "customer_records",
      "customer_record_history",
      "customer_pair_decisions",
      "customer_pair_history",
      "customer_transfers",
      "customer_transfer_jobs",
      "customer_completion_runs",
      "enquiry_intakes",
      "enquiry_photo_sources"
    ],
    "harbour": [
      "customers",
      "jobs",
      "quotes",
      "payments",
      "operations",
      "assets",
      "site",
      "site_history",
      "invoices",
      "quote_links",
      "document_events",
      "document_counters",
      "payment_stages",
      "payment_allocations",
      "payment_reversals",
      "payment_details",
      "customer_changes",
      "customer_links",
      "materials_catalogue",
      "job_materials",
      "material_audit",
      "team_resources",
      "time_entries",
      "workforce_audit",
      "calendar_bookings",
      "calendar_audit",
      "setup_progress",
      "staff_updates",
      "photo_blobs",
      "job_photos",
      "photo_history",
      "gallery_projects",
      "gallery_history",
      "field_logs",
      "field_log_history",
      "field_sessions",
      "field_intervals",
      "field_resource_locks",
      "field_history",
      "field_time_links",
      "field_material_links",
      "document_sources",
      "source_history",
      "recurring_contracts",
      "recurrence_rules",
      "recurrence_blocks",
      "recurrence_occurrences",
      "recurrence_history",
      "recurrence_runs",
      "portal_accounts",
      "portal_tokens",
      "portal_events",
      "portal_migrations",
      "sales_settings",
      "sales_settings_history",
      "quote_responses",
      "payment_request_snapshots",
      "feedback_requests",
      "feedback_tokens",
      "feedback_responses",
      "feedback_consents",
      "feedback_publications",
      "feedback_history",
      "job_workflow",
      "job_workflow_history",
      "opportunity_settings",
      "opportunity_settings_history",
      "opportunity_reviews",
      "opportunity_history",
      "customer_records",
      "customer_record_history",
      "customer_pair_decisions",
      "customer_pair_history",
      "customer_transfers",
      "customer_transfer_jobs",
      "customer_completion_runs",
      "enquiry_intakes",
      "enquiry_photo_sources"
    ]
  },
  "deliberately_changed_business_tables": {
    "oak": [
      "customers",
      "audit",
      "storage_identity",
      "job_photos",
      "photo_history",
      "gallery_projects",
      "gallery_history"
    ],
    "harbour": [
      "audit",
      "storage_identity"
    ]
  },
  "second_generation_verified": true,
  "browser_recovery_verified": false,
  "recovery_owner_credentials_read_only_inside_test_and_not_distributed": true,
  "protected_review_or_normal_data_operated": false,
  "harness_correction": "First comparison omitted expected fresh storage identity and appended recovery audit event; their exact changes were inspected. First restored folder retained, corrected comparison run against another fresh restore. No product change."
}
