{
  "release": "0.24.0",
  "scope": "Repeated explicitly reviewed selected-job customer corrections and chronological ownership history",
  "local_only": true,
  "full_backend_tests": 774,
  "full_backend_seconds": 221.598,
  "client_tests": 206,
  "new_correction_backend_cases": 31,
  "actual_react_component_interactions": {
    "correction": 7,
    "retained_device_note_regression": 18,
    "total": 25,
    "environment": "Actual production React components/effects/DOM events in jsdom 30.1.3; mocked HTTP outcomes; not authenticated browser proof"
  },
  "structural_render_cases": 90,
  "build_passed": true,
  "route_policies": 215,
  "schema_changed": true,
  "recovery_format": 13,
  "backup_metadata": "0.24.0",
  "old_formats_pinned": [
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12
  ],
  "genuine_legacy_fixture": "tests/fixtures/v0.23-customer-moves-format12.json",
  "legacy_validator_preserved_byte_for_byte": true,
  "tested_sequences": [
    "A to B to C",
    "A to B to A",
    "A to B to C to A",
    "A to B to A to B to A"
  ],
  "boundaries": [
    "Whole-batch rollback after late injected failure",
    "Current owner role, revoked membership and foreign business even for cached outcome",
    "New association, customer state, portal invite/reset token and active work stale or block preview",
    "Same-operation concurrency and reply loss return one durable result even after cache pruning",
    "Old sessions, passwords, setup codes, feedback access, photo/publication permission stay revoked on returns",
    "Old device note key scopes and receipts cannot return",
    "Old follow-up generations and retired recurrence definitions cannot reactivate",
    "Original documents, receipt/source/field/calendar/photo/intake evidence and report values retained",
    "Strict old/current recovery, ordered ledger tamper rejection, fresh restore and second backup"
  ],
  "initial_full_run": {
    "passed": 766,
    "failed": 6,
    "resolution": "One longer-return follow-up suppression defect fixed. New note fixtures moved work to accepted state before correcting; stale-note fixture made eligible for notes. Old source-draft scenario now explicitly ends in-progress work. Synthetic old-format tests now build the pinned old table contract or use the genuine v0.23 format12 fixture instead of relabelling the new schema. Final full run passes."
  },
  "earlier_development_repairs": [
    "Chain helper reads tuple-based recovery connections without changing their row factory.",
    "New unsaved recurrence definitions have no ID yet; permanent historical binding check applies only to saved definitions.",
    "Uncertain successful replies with malformed result keep the same explicit operation for retry."
  ],
  "warnings": [
    "Existing large JavaScript bundle notice",
    "TestClient deprecation notice",
    "Intentional oversized-image warning in the pixel-limit test"
  ],
  "production_and_test_dependency_locks_unchanged": true,
  "supervised_image_input_fix_preserved": true,
  "private_signed_in_browser_verified": false,
  "new_browser_sign_in_requested": false,
  "phone_verified": false,
  "full_offline_verified": false,
  "second_machine_recovery_verified": false,
  "capabilities": 45,
  "changed_capability_objects": [
    "CUS02"
  ],
  "unchanged_capability_objects": 44,
  "original_findings_open_and_unchanged": 14,
  "live_approved": false,
  "protected_review": "v0.19 PID58260 on8789; listener-only check, no operation",
  "pending_owner_demo": "v0.23 PID89816 on8796; existing question still pending, no sign-in or runtime change",
  "checked_at": "2026-10-31T11:49:20.245329+00:00"
}
