{
  "schema_version": 2,
  "task": "26. Hands-on QA",
  "reviewer_task_id": "st_019fff11",
  "recorded_at_utc": "2026-08-14T07:29:28Z",
  "verdict": "PASS",
  "scope": "Task24/Task25 offline-only QA replay. No Telegram, provider, customer, service, profile, commit, push, release, or activation mutation was performed.",
  "candidate": {
    "manifest_path": ".omo/evidence/task26/task24-task25-final-candidate-manifest.json",
    "manifest_sha256": "208429b3d8fcdcc7d250be49d86be7478c6ea272e7f666a9cb00fa3e365c6c60",
    "candidate_digest": "9b102fdeb73c7dd5927734c208a633c03f14bd65698758408754f3d90faf4338",
    "verifier_path": ".omo/evidence/task26/verify-task24-task25-final-candidate.py",
    "verifier_result": "PASS: valid=true; input_count=37"
  },
  "validated": {
    "task24_terminal_replay": {
      "report_path": ".omo/evidence/task26/task24-terminal-replay-report.json",
      "report_sha256": "7e8d38820a94143a73778c8eaedd244a1e00f149ea4689c0483f5e76b37a2d42",
      "archive_digest": "644d74b05bc8115f9e3aeeba035188da195a7de18f1bc737648931d64bf43bcf",
      "deterministic_replay_clock_utc": "2026-08-12T16:44:00+00:00",
      "network": "bubblewrap-unshare-net",
      "callbacks": {
        "wrong_role": 1,
        "repeat_send": 1,
        "stale_regenerate": 1,
        "post_callback_restart": 1
      },
      "effects": {
        "customer_sends": 0,
        "provider_requests": 0,
        "durable_mutations": 0,
        "fixture_tree_unchanged": true,
        "live_profile_unchanged": true
      },
      "command": "python -m pytest -q -m integration tests/gateway/test_task24_preflight_integration.py -k terminal --maxfail=1",
      "result": "1 passed, 1 deselected in 2.51s"
    },
    "task25_cleanup": {
      "report_path": ".omo/evidence/task26/task25-offline-revalidation.json",
      "report_sha256": "20ef2be32388fa2c3e60943487b370f83458374d25ef01f32dc605a311da576d",
      "archive_verified": true,
      "archive_scope_count": 23,
      "suite_command": "python -m pytest -q tests/gateway/test_rehearsal_reset.py --maxfail=1",
      "suite_result": "85 passed in 5.29s",
      "current_state": {
        "gateway": "inactive/dead",
        "enabled_customers": 0,
        "delivery_enabled": false,
        "delivery_ledger_present": false,
        "gateway_lock_present": false,
        "gateway_pid_present": false,
        "profile_process_count": 0
      }
    }
  },
  "repair": {
    "terminal_fixture": "Archive-derived copied profile, sealed by its full-tree digest and a deterministic replay clock. Historical trainer review projection is removed rather than reattributed; the sealed terminal projection retains only the required terminal state and lineage.",
    "restart_safety": "Superseded draft-generation lineage parents are excluded from card recovery, preventing stale-card replay during restart."
  },
  "decision": "Task24/Task25 QA gate passes for the exact manifest-bound candidate. This is not a whole-worktree release approval; no release or activation decision is made here.",
  "privacy": "Redacted receipt: no customer text, model output, credentials, addresses, or raw Telegram/profile payloads.",
  "mode_required": "0600"
}
