{
  "labVersion": "1.0.0",
  "testedAt": "2026-10-05T06:38:21.261756+00:00",
  "runtime": {
    "n8n": "2.35.4",
    "node": "24.18.1",
    "image": "docker.n8n.io/n8nio/n8n:2.35.4",
    "mode": "single n8n process, HTTP webhook, private Docker network"
  },
  "scope": "Synthetic proposals and destination; separate SQLite decision and receipt databases; one authenticated reviewer credential mapped to fixed reviewer-a.",
  "faultModel": "Synthetic HTTP 503 before write and HTTP 504 after committed write; not a measured provider network timeout.",
  "restart": {
    "method": "SIGKILL then start both isolated containers",
    "startedAt": "2026-10-05T06:37:43.274793+00:00",
    "checkpoint": "One pending proposal; two approved actions pending recovery; tests had completed their webhook responses before SIGKILL."
  },
  "cases": [
    {
      "case": "authenticated-approval",
      "passed": true,
      "observedAt": "2026-10-05T06:37:33.898Z",
      "finalState": "approved",
      "deliveryState": "delivered",
      "decisionCount": 1,
      "receiptCount": 1,
      "receiptIds": [
        "synthetic-receipt-authenticated-approval-1"
      ]
    },
    {
      "case": "missing-auth",
      "passed": true,
      "observedAt": "2026-10-05T06:37:34.991Z",
      "finalState": "pending",
      "deliveryState": "none",
      "decisionCount": 0,
      "receiptCount": 0,
      "receiptIds": []
    },
    {
      "case": "wrong-auth",
      "passed": true,
      "observedAt": "2026-10-05T06:37:35.102Z",
      "finalState": "pending",
      "deliveryState": "none",
      "decisionCount": 0,
      "receiptCount": 0,
      "receiptIds": []
    },
    {
      "case": "wrong-owner",
      "passed": true,
      "observedAt": "2026-10-05T06:37:35.301Z",
      "finalState": "pending",
      "deliveryState": "none",
      "decisionCount": 0,
      "receiptCount": 0,
      "receiptIds": []
    },
    {
      "case": "spoofed-body-identity",
      "passed": true,
      "observedAt": "2026-10-05T06:37:35.712Z",
      "finalState": "pending",
      "deliveryState": "none",
      "decisionCount": 0,
      "receiptCount": 0,
      "receiptIds": []
    },
    {
      "case": "changed-note",
      "passed": true,
      "observedAt": "2026-10-05T06:37:36.098Z",
      "finalState": "pending",
      "deliveryState": "none",
      "decisionCount": 0,
      "receiptCount": 0,
      "receiptIds": []
    },
    {
      "case": "changed-target",
      "passed": true,
      "observedAt": "2026-10-05T06:37:36.496Z",
      "finalState": "pending",
      "deliveryState": "none",
      "decisionCount": 0,
      "receiptCount": 0,
      "receiptIds": []
    },
    {
      "case": "old-version",
      "passed": true,
      "observedAt": "2026-10-05T06:37:36.772Z",
      "finalState": "pending",
      "deliveryState": "none",
      "decisionCount": 0,
      "receiptCount": 0,
      "receiptIds": []
    },
    {
      "case": "reject-then-approve",
      "passed": true,
      "observedAt": "2026-10-05T06:37:37.044Z",
      "finalState": "rejected",
      "deliveryState": "none",
      "decisionCount": 1,
      "receiptCount": 0,
      "receiptIds": []
    },
    {
      "case": "expired-server-clock",
      "passed": true,
      "observedAt": "2026-10-05T06:37:37.566Z",
      "finalState": "expired",
      "deliveryState": "none",
      "decisionCount": 0,
      "receiptCount": 0,
      "receiptIds": []
    },
    {
      "case": "invalid-decision",
      "passed": true,
      "observedAt": "2026-10-05T06:37:37.847Z",
      "finalState": "pending",
      "deliveryState": "none",
      "decisionCount": 0,
      "receiptCount": 0,
      "receiptIds": []
    },
    {
      "case": "ten-concurrent-approvals",
      "passed": true,
      "observedAt": "2026-10-05T06:37:38.089Z",
      "finalState": "approved",
      "deliveryState": "delivered",
      "decisionCount": 1,
      "receiptCount": 1,
      "receiptIds": [
        "synthetic-receipt-ten-concurrent-approvals-1"
      ]
    },
    {
      "case": "concurrent-approve-reject",
      "passed": true,
      "observedAt": "2026-10-05T06:37:41.365Z",
      "finalState": "approved",
      "deliveryState": "delivered",
      "decisionCount": 1,
      "receiptCount": 1,
      "receiptIds": [
        "synthetic-receipt-concurrent-approve-reject-1"
      ]
    },
    {
      "case": "target-version-conflict",
      "passed": true,
      "observedAt": "2026-10-05T06:37:41.878Z",
      "finalState": "approved",
      "deliveryState": "conflict",
      "decisionCount": 1,
      "receiptCount": 0,
      "receiptIds": []
    },
    {
      "case": "changed-replay-after-write",
      "passed": true,
      "observedAt": "2026-10-05T06:37:42.154Z",
      "finalState": "approved",
      "deliveryState": "delivered",
      "decisionCount": 1,
      "receiptCount": 1,
      "receiptIds": [
        "synthetic-receipt-changed-replay-after-write-1"
      ]
    },
    {
      "case": "pending-through-restart",
      "passed": true,
      "observedAt": "2026-10-05T06:38:19.552Z",
      "finalState": "approved",
      "deliveryState": "delivered",
      "decisionCount": 1,
      "receiptCount": 1,
      "receiptIds": [
        "synthetic-receipt-pending-through-restart-1"
      ]
    },
    {
      "case": "failure-before-write",
      "passed": true,
      "observedAt": "2026-10-05T06:38:20.534Z",
      "finalState": "approved",
      "deliveryState": "delivered",
      "decisionCount": 1,
      "receiptCount": 1,
      "receiptIds": [
        "synthetic-receipt-failure-before-write-1"
      ]
    },
    {
      "case": "lost-response-after-write",
      "passed": true,
      "observedAt": "2026-10-05T06:38:20.938Z",
      "finalState": "approved",
      "deliveryState": "delivered",
      "decisionCount": 1,
      "receiptCount": 1,
      "receiptIds": [
        "synthetic-receipt-lost-response-after-write-1"
      ]
    }
  ],
  "total": 18,
  "passed": 18,
  "executions": [
    {
      "id": 1,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:34.438",
      "stoppedAt": "2026-10-05 06:37:34.878"
    },
    {
      "id": 2,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:35.421",
      "stoppedAt": "2026-10-05 06:37:35.673"
    },
    {
      "id": 3,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:35.756",
      "stoppedAt": "2026-10-05 06:37:36.030"
    },
    {
      "id": 4,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:36.234",
      "stoppedAt": "2026-10-05 06:37:36.478"
    },
    {
      "id": 5,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:36.539",
      "stoppedAt": "2026-10-05 06:37:36.748"
    },
    {
      "id": 6,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:36.804",
      "stoppedAt": "2026-10-05 06:37:36.984"
    },
    {
      "id": 7,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:37.077",
      "stoppedAt": "2026-10-05 06:37:37.268"
    },
    {
      "id": 8,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:37.333",
      "stoppedAt": "2026-10-05 06:37:37.547"
    },
    {
      "id": 9,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:37.603",
      "stoppedAt": "2026-10-05 06:37:37.828"
    },
    {
      "id": 10,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:37.877",
      "stoppedAt": "2026-10-05 06:37:38.071"
    },
    {
      "id": 11,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:38.229",
      "stoppedAt": "2026-10-05 06:37:39.329"
    },
    {
      "id": 12,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:39.858",
      "stoppedAt": "2026-10-05 06:37:40.132"
    },
    {
      "id": 13,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:39.931",
      "stoppedAt": "2026-10-05 06:37:41.247"
    },
    {
      "id": 14,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:39.943",
      "stoppedAt": "2026-10-05 06:37:41.233"
    },
    {
      "id": 15,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:39.951",
      "stoppedAt": "2026-10-05 06:37:41.242"
    },
    {
      "id": 16,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:39.961",
      "stoppedAt": "2026-10-05 06:37:41.251"
    },
    {
      "id": 17,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:39.971",
      "stoppedAt": "2026-10-05 06:37:41.258"
    },
    {
      "id": 18,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:39.980",
      "stoppedAt": "2026-10-05 06:37:41.259"
    },
    {
      "id": 19,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:39.987",
      "stoppedAt": "2026-10-05 06:37:41.264"
    },
    {
      "id": 20,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:39.995",
      "stoppedAt": "2026-10-05 06:37:40.929"
    },
    {
      "id": 21,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:41.428",
      "stoppedAt": "2026-10-05 06:37:41.768"
    },
    {
      "id": 22,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:41.638",
      "stoppedAt": "2026-10-05 06:37:41.858"
    },
    {
      "id": 23,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:41.905",
      "stoppedAt": "2026-10-05 06:37:42.136"
    },
    {
      "id": 24,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:42.183",
      "stoppedAt": "2026-10-05 06:37:42.393"
    },
    {
      "id": 25,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:42.434",
      "stoppedAt": "2026-10-05 06:37:42.660"
    },
    {
      "id": 26,
      "status": "error",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:42.717",
      "stoppedAt": "2026-10-05 06:37:42.965"
    },
    {
      "id": 27,
      "status": "error",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:37:43.037",
      "stoppedAt": "2026-10-05 06:37:43.242"
    },
    {
      "id": 28,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:38:20.089",
      "stoppedAt": "2026-10-05 06:38:20.495"
    },
    {
      "id": 29,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:38:20.567",
      "stoppedAt": "2026-10-05 06:38:20.845"
    },
    {
      "id": 30,
      "status": "success",
      "workflowId": "marsenRecoveryLabV1",
      "startedAt": "2026-10-05 06:38:20.967",
      "stoppedAt": "2026-10-05 06:38:21.136"
    }
  ],
  "preRestartEvidence": {
    "before": {
      "proposal": {
        "id": "failure-before-write",
        "version": 1,
        "reviewer": "reviewer-a",
        "target": "fictional-failure-before-write",
        "note": "Fictional approval lab note",
        "payload_hash": "826ce197e88d699e2fd56147928efae93c90b2067a40b46aca958566173b5114",
        "expires_at": 1791182862686,
        "expected_target_version": 1,
        "status": "approved",
        "decided_at": 1791182262881,
        "action_id": "lab-action:failure-before-write:1",
        "delivery_status": "pending"
      },
      "decisions": [
        {
          "proposal_id": "failure-before-write",
          "reviewer": "reviewer-a",
          "decision": "approve",
          "decided_at": 1791182262881
        }
      ],
      "receipts": []
    },
    "after": {
      "proposal": {
        "id": "lost-response-after-write",
        "version": 1,
        "reviewer": "reviewer-a",
        "target": "fictional-lost-response-after-write",
        "note": "Fictional approval lab note",
        "payload_hash": "ce18884eb1eacf2a0bca518e25b22ad223d6652efb6e25d200df10897175b6b6",
        "expires_at": 1791182863000,
        "expected_target_version": 1,
        "status": "approved",
        "decided_at": 1791182263179,
        "action_id": "lab-action:lost-response-after-write:1",
        "delivery_status": "pending"
      },
      "decisions": [
        {
          "proposal_id": "lost-response-after-write",
          "reviewer": "reviewer-a",
          "decision": "approve",
          "decided_at": 1791182263179
        }
      ],
      "receipts": [
        {
          "action_id": "lab-action:lost-response-after-write:1",
          "target": "fictional-lost-response-after-write",
          "note": "Fictional approval lab note",
          "payload_hash": "ce18884eb1eacf2a0bca518e25b22ad223d6652efb6e25d200df10897175b6b6",
          "receipt_id": "synthetic-receipt-lost-response-after-write-1",
          "committed_at": 1791182263233
        }
      ]
    }
  },
  "limits": [
    "No real CRM or customer data",
    "No Wait-node resumption test",
    "No human approval portal or multi-reviewer authentication",
    "No multi-worker/queue-mode or multi-process database contention test",
    "No SIGKILL during the destination database transaction",
    "No load, availability, throughput or production reliability claim"
  ]
}
