{
  "startedAt": "2026-10-14T15:08:03.372Z",
  "pathsRedacted": true,
  "source": {
    "name": "Tably",
    "root": "[approved-adopter]",
    "base": "4d18cc92878509eb344c5fe924f525f30bcf49f5",
    "approved": "e5ea48dbf0ac37319c0fb2570fd885dacff46af5",
    "app": "6c2b4dfe-00b7-4993-ab8a-6984102f580d",
    "db": "crust_tably_roadmap_test"
  },
  "transcript": [
    {
      "seconds": 0.0004832080000000474,
      "at": "2026-10-14T15:08:03.372Z",
      "event": "start",
      "data": {
        "label": "Actual internal clean-copy coding-agent fixture workflow, not an external developer session",
        "runtime": "v22.13.0",
        "spec": {
          "name": "Tably",
          "root": "[approved-adopter]",
          "base": "4d18cc92878509eb344c5fe924f525f30bcf49f5",
          "approved": "e5ea48dbf0ac37319c0fb2570fd885dacff46af5",
          "app": "6c2b4dfe-00b7-4993-ab8a-6984102f580d",
          "db": "crust_tably_roadmap_test"
        },
        "copy": "[clean-copy]"
      }
    },
    {
      "seconds": 0.0012457500000000437,
      "at": "2026-10-14T15:08:03.373Z",
      "event": "command",
      "data": {
        "command": "git",
        "args": [
          "-C",
          "[approved-adopter]",
          "archive",
          "--format=tar",
          "--output=[clean-copy]/baseline.tar",
          "4d18cc92878509eb344c5fe924f525f30bcf49f5"
        ],
        "cwd": "[clean-copy]"
      }
    },
    {
      "seconds": 0.029022792000000037,
      "at": "2026-10-14T15:08:03.401Z",
      "event": "command_result",
      "data": {
        "code": 0,
        "output": ""
      }
    },
    {
      "seconds": 0.029209667000000026,
      "at": "2026-10-14T15:08:03.401Z",
      "event": "command",
      "data": {
        "command": "tar",
        "args": [
          "-xf",
          "[clean-copy]/baseline.tar",
          "-C",
          "[clean-copy]"
        ],
        "cwd": "[clean-copy]"
      }
    },
    {
      "seconds": 0.06867937500000006,
      "at": "2026-10-14T15:08:03.441Z",
      "event": "command_result",
      "data": {
        "code": 0,
        "output": ""
      }
    },
    {
      "seconds": 0.06875179200000002,
      "at": "2026-10-14T15:08:03.441Z",
      "event": "command",
      "data": {
        "command": "git",
        "args": [
          "-C",
          "[approved-adopter]",
          "diff",
          "--binary",
          "4d18cc92878509eb344c5fe924f525f30bcf49f5",
          "e5ea48dbf0ac37319c0fb2570fd885dacff46af5"
        ],
        "cwd": "[clean-copy]"
      }
    },
    {
      "seconds": 0.08729579200000001,
      "at": "2026-10-14T15:08:03.459Z",
      "event": "command_result",
      "data": {
        "code": 0,
        "patchBytes": 130774,
        "sha256": "cb1db72313ed09c14c93e716a757b6505ec8f2f793236347fda10f9904dbf417"
      }
    },
    {
      "seconds": 0.08808895800000005,
      "at": "2026-10-14T15:08:03.460Z",
      "event": "command",
      "data": {
        "command": "git",
        "args": [
          "apply",
          "-"
        ],
        "cwd": "[clean-copy]"
      }
    },
    {
      "seconds": 0.09801158300000003,
      "at": "2026-10-14T15:08:03.470Z",
      "event": "command_result",
      "data": {
        "code": 0,
        "output": ""
      }
    },
    {
      "seconds": 0.09862354200000004,
      "at": "2026-10-14T15:08:03.471Z",
      "event": "dependencies",
      "data": {
        "mode": "Reuse exact approved installed app dependencies via symlink; no claim of fresh npm ci",
        "packageLockSha256": "a25179be0a398f4c4875e58bd905b2f39ef269f083acc0ee808fa282b6bc51ba"
      }
    },
    {
      "seconds": 0.10660541700000005,
      "at": "2026-10-14T15:08:03.479Z",
      "event": "fixture_identity_substitution",
      "data": {
        "file": "app/utils/crustTracking.server.js",
        "originalAppId": "6c2b4dfe-00b7-4993-ab8a-6984102f580d",
        "isolatedAppId": "b72f10d2-04b7-478a-8cf9-5e8b6212a8d1",
        "approvedSourceUnchanged": true
      }
    },
    {
      "seconds": 0.113877792,
      "at": "2026-10-14T15:08:03.486Z",
      "event": "mcp_get_instrumentation_plan",
      "data": {
        "appId": "b72f10d2-04b7-478a-8cf9-5e8b6212a8d1",
        "profile": {
          "name": "Tably clean setup",
          "description": null,
          "firstStep": null
        },
        "events": [
          {
            "category": "setup",
            "definition": {
              "name": "setup_started",
              "label": "Setup started",
              "description": "A verified merchant begins setup.",
              "allowedProperties": [
                "result_code"
              ],
              "expectedOrigin": "app_reported"
            },
            "analyticsHandle": "crust.analytics.setup_started"
          },
          {
            "category": "setup",
            "definition": {
              "name": "setup_completed",
              "label": "Setup completed",
              "description": "Confirm persisted completion of: your app setup",
              "allowedProperties": [
                "result_code"
              ],
              "expectedOrigin": "app_reported"
            },
            "analyticsHandle": "crust.analytics.setup_completed"
          },
          {
            "category": "value",
            "definition": {
              "name": "first_value",
              "label": "First value delivered",
              "description": "Confirm the useful outcome described by your app profile: Tably clean setup",
              "allowedProperties": [
                "result_code"
              ],
              "expectedOrigin": "app_reported"
            },
            "analyticsHandle": "crust.analytics.first_value"
          },
          {
            "category": "feature",
            "definition": {
              "name": "feature_used",
              "label": "Feature used",
              "description": "A core feature succeeds on the server.",
              "allowedProperties": [
                "result_code"
              ],
              "expectedOrigin": "app_reported"
            },
            "analyticsHandle": "crust.analytics.feature_used"
          },
          {
            "category": "error",
            "definition": {
              "name": "action_failed",
              "label": "Action failed",
              "description": "A core feature fails with a safe non-identifying reason code.",
              "allowedProperties": [
                "action",
                "error_code",
                "step"
              ],
              "expectedOrigin": "app_reported"
            },
            "analyticsHandle": "crust.analytics.action_failed"
          },
          {
            "category": "error",
            "definition": {
              "name": "setup_failed",
              "label": "Setup failed",
              "description": "Setup fails; do not include raw errors or merchant contact data.",
              "allowedProperties": [
                "result_code"
              ],
              "expectedOrigin": "app_reported"
            },
            "analyticsHandle": "crust.analytics.setup_failed"
          }
        ],
        "registered": null,
        "packageUrl": "/api/tracking/package",
        "notes": [
          "This is a downloadable local Node ESM package, not an npm publication.",
          "Registration pins catalog definitions and one default funnel. It does not declare source coverage, send events or activate flows.",
          "Missing observations remain unknown without coverage.",
          "Shopify custom monitoring handles must not be configured as pricing meters. 202 + success=true is transport acceptance only; Analytics preview access/declarations are separate. No generic read/backfill API is assumed."
        ]
      }
    },
    {
      "seconds": 0.11653279200000002,
      "at": "2026-10-14T15:08:03.488Z",
      "event": "mcp_generate_tracking_code",
      "data": {
        "appId": "b72f10d2-04b7-478a-8cf9-5e8b6212a8d1",
        "framework": "node",
        "packageUrl": "/api/tracking/package",
        "code": "import { createTracker, normalizeTrackingEvent, createDeliveryTransport, createDeliveryReport, createDeliveryReporter } from './crust-tracking/index.mjs';\n\n// Server module singleton; CRUST_QUEUE_DIR must be a persistent local volume.\nconst trackingConfig = {\n  queueDir: process.env.CRUST_QUEUE_DIR,\n  appId: \"b72f10d2-04b7-478a-8cf9-5e8b6212a8d1\",\n  crust: {endpoint: process.env.CRUST_EVENTS_URL || \"https://heycrust.com/api/events\", apiKey: process.env.CRUST_API_KEY},\n  // Optional Shopify monitoring: review handles against pricing meters first.\n  // Events with a cleared/null handle remain Crust-only.\n  ...(process.env.CRUST_MIRROR_SHOPIFY === 'true' ? {shopify: {\n    clientId: process.env.SHOPIFY_API_KEY, clientSecret: process.env.SHOPIFY_API_SECRET,\n    handles: {}\n  }} : {})\n};\nconst tracker = createTracker(trackingConfig);\n// New deliveries use protocol: \"crust.portable.v1\".\n\n// Prepare ONCE with the operation's durable ID and original occurrence time.\n// Persist the entire returned event with the actual business write, including\n// its original verified shop identity and properties. Never reconstruct it on retry.\nexport function prepareSetupCompleted(verifiedShop, operation) {\n  return normalizeTrackingEvent(trackingConfig, {name: \"setup_completed\",\n    eventId: operation.eventId, occurredAt: operation.occurredAt,\n    shopDomain: verifiedShop.shopDomain, shopId: verifiedShop.shopId, properties: {}});\n}\nexport async function recordSetupCompleted(persistedEvent) {\n  // Call AFTER the business write. Reuse this exact persisted event on every retry,\n  // even after both targets accepted or this process restarted.\n  return tracker.track(persistedEvent); // Inspect queued=false in operational monitoring.\n}\n\n// Concrete backend helpers for every reviewed event. Persist prepare() with the\n// business write; record() is called after commit with that exact saved event.\nexport const trackingEvents = {\n  [\"setup_started\"]: {\n    prepare(verifiedShop, operation, properties = {}) {\n      const allowed = [\"result_code\"];\n      if (Object.keys(properties).some(key => !allowed.includes(key))) throw new Error('Unreviewed event attribute');\n      return normalizeTrackingEvent(trackingConfig, {name: \"setup_started\", eventId: operation.eventId, occurredAt: operation.occurredAt, shopDomain: verifiedShop.shopDomain, shopId: verifiedShop.shopId, properties});\n    },\n    record(persistedEvent) { return tracker.track(persistedEvent); }\n  },\n  [\"setup_completed\"]: {\n    prepare(verifiedShop, operation, properties = {}) {\n      const allowed = [\"result_code\"];\n      if (Object.keys(properties).some(key => !allowed.includes(key))) throw new Error('Unreviewed event attribute');\n      return normalizeTrackingEvent(trackingConfig, {name: \"setup_completed\", eventId: operation.eventId, occurredAt: operation.occurredAt, shopDomain: verifiedShop.shopDomain, shopId: verifiedShop.shopId, properties});\n    },\n    record(persistedEvent) { return tracker.track(persistedEvent); }\n  },\n  [\"first_value\"]: {\n    prepare(verifiedShop, operation, properties = {}) {\n      const allowed = [\"result_code\"];\n      if (Object.keys(properties).some(key => !allowed.includes(key))) throw new Error('Unreviewed event attribute');\n      return normalizeTrackingEvent(trackingConfig, {name: \"first_value\", eventId: operation.eventId, occurredAt: operation.occurredAt, shopDomain: verifiedShop.shopDomain, shopId: verifiedShop.shopId, properties});\n    },\n    record(persistedEvent) { return tracker.track(persistedEvent); }\n  },\n  [\"feature_used\"]: {\n    prepare(verifiedShop, operation, properties = {}) {\n      const allowed = [\"result_code\"];\n      if (Object.keys(properties).some(key => !allowed.includes(key))) throw new Error('Unreviewed event attribute');\n      return normalizeTrackingEvent(trackingConfig, {name: \"feature_used\", eventId: operation.eventId, occurredAt: operation.occurredAt, shopDomain: verifiedShop.shopDomain, shopId: verifiedShop.shopId, properties});\n    },\n    record(persistedEvent) { return tracker.track(persistedEvent); }\n  },\n  [\"action_failed\"]: {\n    prepare(verifiedShop, operation, properties = {}) {\n      const allowed = [\"action\",\"error_code\",\"step\"];\n      if (Object.keys(properties).some(key => !allowed.includes(key))) throw new Error('Unreviewed event attribute');\n      return normalizeTrackingEvent(trackingConfig, {name: \"action_failed\", eventId: operation.eventId, occurredAt: operation.occurredAt, shopDomain: verifiedShop.shopDomain, shopId: verifiedShop.shopId, properties});\n    },\n    record(persistedEvent) { return tracker.track(persistedEvent); }\n  },\n  [\"setup_failed\"]: {\n    prepare(verifiedShop, operation, properties = {}) {\n      const allowed = [\"result_code\"];\n      if (Object.keys(properties).some(key => !allowed.includes(key))) throw new Error('Unreviewed event attribute');\n      return normalizeTrackingEvent(trackingConfig, {name: \"setup_failed\", eventId: operation.eventId, occurredAt: operation.occurredAt, shopDomain: verifiedShop.shopDomain, shopId: verifiedShop.shopId, properties});\n    },\n    record(persistedEvent) { return tracker.track(persistedEvent); }\n  },\n  [\"tably_table_created\"]: {\n    prepare(verifiedShop, operation, properties = {}) {\n      const allowed = [\"table_type\"];\n      if (Object.keys(properties).some(key => !allowed.includes(key))) throw new Error('Unreviewed event attribute');\n      return normalizeTrackingEvent(trackingConfig, {name: \"tably_table_created\", eventId: operation.eventId, occurredAt: operation.occurredAt, shopDomain: verifiedShop.shopDomain, shopId: verifiedShop.shopId, properties});\n    },\n    record(persistedEvent) { return tracker.track(persistedEvent); }\n  }\n};\n// Existing host outbox: use this transport instead of the tracker queue.\nexport const delivery = createDeliveryTransport(trackingConfig);\nexport const reporter = createDeliveryReporter(trackingConfig);\n// Under your shared lifecycle/redaction fence, call:\n// delivery.send(target, savedEvent, {signal: epochAbortSignal, authorize: checkRetainedEpoch});\n// Atomically persist createDeliveryReport(trackingConfig, savedEvent, target, result, attempt, undefined, savedConfiguredTargets)\n// with the target receipt; keep the original targets and Shopify handle from enqueue.\n// Report construction failures must not roll back delivery ACKs. Later reporter.send(savedReports, {signal, authorize})\n// uses that same fence. Never reconstruct ID/time/identity on retry.\n\n// In your authenticated server handler, use verified Shopify session/identify\n// evidence, never request.body identity. Prepare and save the immutable event\n// with the business operation; after commit call recordSetupCompleted(savedEvent).\n// Poll tracker.status() for saturation/dead letters; close on graceful shutdown.\nexport {tracker};\n",
        "instructions": [
          "This is a downloadable local Node ESM package, not an npm publication.",
          "Registration pins catalog definitions and one default funnel. It does not declare source coverage, send events or activate flows.",
          "Missing observations remain unknown without coverage.",
          "Shopify custom monitoring handles must not be configured as pricing meters. 202 + success=true is transport acceptance only; Analytics preview access/declarations are separate. No generic read/backfill API is assumed."
        ],
        "environment": [
          "CRUST_API_KEY",
          "CRUST_EVENTS_URL (HTTPS /api/events)",
          "CRUST_QUEUE_DIR (persistent local disk)",
          "Optional: CRUST_MIRROR_SHOPIFY=true, SHOPIFY_API_KEY, SHOPIFY_API_SECRET"
        ],
        "identity": "Verified server session/Admin shop data or identify evidence only; never client-provided domain",
        "npmPublished": false
      }
    },
    {
      "seconds": 0.13191262500000006,
      "at": "2026-10-14T15:08:03.504Z",
      "event": "mcp_register_events",
      "data": {
        "id": "d7d12ae8-51b2-4aa1-beb3-09e093938b23",
        "appId": "b72f10d2-04b7-478a-8cf9-5e8b6212a8d1",
        "events": [
          {
            "category": "setup",
            "definition": {
              "name": "setup_started",
              "label": "Setup started",
              "description": "A verified merchant begins setup.",
              "allowedProperties": [
                "result_code"
              ],
              "expectedOrigin": "app_reported"
            },
            "analyticsHandle": null,
            "definitionId": "5560d4af-a7da-4474-ae6c-0f11784e287e",
            "definitionVersion": 1
          },
          {
            "category": "setup",
            "definition": {
              "name": "setup_completed",
              "label": "Setup completed",
              "description": "Confirm persisted completion of: your app setup",
              "allowedProperties": [
                "result_code"
              ],
              "expectedOrigin": "app_reported"
            },
            "analyticsHandle": null,
            "definitionId": "44da29ac-cd01-470d-b983-a0d5aa3bb2d3",
            "definitionVersion": 1
          },
          {
            "category": "value",
            "definition": {
              "name": "first_value",
              "label": "First value delivered",
              "description": "Confirm the useful outcome described by your app profile: Tably clean setup",
              "allowedProperties": [
                "result_code"
              ],
              "expectedOrigin": "app_reported"
            },
            "analyticsHandle": null,
            "definitionId": "eafcaa1f-c107-409f-a24b-f320fa797524",
            "definitionVersion": 1
          },
          {
            "category": "feature",
            "definition": {
              "name": "feature_used",
              "label": "Feature used",
              "description": "A core feature succeeds on the server.",
              "allowedProperties": [
                "result_code"
              ],
              "expectedOrigin": "app_reported"
            },
            "analyticsHandle": null,
            "definitionId": "9cb0d3a0-16cf-44d0-9fa5-04e13c50556e",
            "definitionVersion": 1
          },
          {
            "category": "error",
            "definition": {
              "name": "action_failed",
              "label": "Action failed",
              "description": "A core feature fails with a safe non-identifying reason code.",
              "allowedProperties": [
                "action",
                "error_code",
                "step"
              ],
              "expectedOrigin": "app_reported"
            },
            "analyticsHandle": null,
            "definitionId": "81e4b094-6a0e-44f2-b599-5c4c02af9609",
            "definitionVersion": 1
          },
          {
            "category": "error",
            "definition": {
              "name": "setup_failed",
              "label": "Setup failed",
              "description": "Setup fails; do not include raw errors or merchant contact data.",
              "allowedProperties": [
                "result_code"
              ],
              "expectedOrigin": "app_reported"
            },
            "analyticsHandle": null,
            "definitionId": "ea4c5901-2849-4de5-8672-03295e2a4191",
            "definitionVersion": 1
          },
          {
            "category": "feature",
            "definition": {
              "name": "tably_table_created",
              "label": "Actual saved host business event",
              "description": "",
              "allowedProperties": [
                "table_type"
              ],
              "expectedOrigin": "app_reported"
            },
            "analyticsHandle": null,
            "definitionId": "f53f1997-ee9a-4734-951c-ba31df91c4c9",
            "definitionVersion": 1
          }
        ],
        "funnel": {
          "id": "b27bb4f5-a03c-4459-a93a-b3caf94acf67",
          "tenantId": "f8242f77-70ea-49db-8699-191296ba7d27",
          "appId": "b72f10d2-04b7-478a-8cf9-5e8b6212a8d1",
          "version": 1,
          "definition": {
            "name": "App setup and first value",
            "description": "Reported observations only. Missing steps remain unknown without declared deployment coverage.",
            "entry": {
              "kind": "install"
            },
            "mode": "sequence",
            "windowDays": 30,
            "stages": [
              {
                "id": "step_0",
                "label": "Setup started",
                "match": "all",
                "requirements": [
                  {
                    "kind": "custom",
                    "definitionId": "5560d4af-a7da-4474-ae6c-0f11784e287e",
                    "definitionVersion": 1,
                    "origins": [
                      "app_reported"
                    ],
                    "properties": []
                  }
                ]
              },
              {
                "id": "step_1",
                "label": "Setup completed",
                "match": "all",
                "requirements": [
                  {
                    "kind": "custom",
                    "definitionId": "44da29ac-cd01-470d-b983-a0d5aa3bb2d3",
                    "definitionVersion": 1,
                    "origins": [
                      "app_reported"
                    ],
                    "properties": []
                  }
                ]
              },
              {
                "id": "step_2",
                "label": "First value delivered",
                "match": "all",
                "requirements": [
                  {
                    "kind": "custom",
                    "definitionId": "eafcaa1f-c107-409f-a24b-f320fa797524",
                    "definitionVersion": 1,
                    "origins": [
                      "app_reported"
                    ],
                    "properties": []
                  }
                ]
              }
            ]
          },
          "archived": false,
          "createdAt": "2026-10-14T15:08:03.494Z"
        },
        "coverageDeclared": false
      }
    },
    {
      "seconds": 0.1393745,
      "at": "2026-10-14T15:08:03.511Z",
      "event": "mcp_verify_events",
      "data": {
        "status": "available",
        "appId": "b72f10d2-04b7-478a-8cf9-5e8b6212a8d1",
        "planId": "d7d12ae8-51b2-4aa1-beb3-09e093938b23",
        "from": "2026-10-14T15:08:03.372Z",
        "to": "2026-10-14T15:08:04.504Z",
        "events": [
          {
            "name": "setup_started",
            "definitionId": "5560d4af-a7da-4474-ae6c-0f11784e287e",
            "definitionVersion": 1,
            "state": "missing",
            "count": 0,
            "receipts": [],
            "receiptsTruncated": false
          },
          {
            "name": "setup_completed",
            "definitionId": "44da29ac-cd01-470d-b983-a0d5aa3bb2d3",
            "definitionVersion": 1,
            "state": "missing",
            "count": 0,
            "receipts": [],
            "receiptsTruncated": false
          },
          {
            "name": "first_value",
            "definitionId": "eafcaa1f-c107-409f-a24b-f320fa797524",
            "definitionVersion": 1,
            "state": "missing",
            "count": 0,
            "receipts": [],
            "receiptsTruncated": false
          },
          {
            "name": "feature_used",
            "definitionId": "9cb0d3a0-16cf-44d0-9fa5-04e13c50556e",
            "definitionVersion": 1,
            "state": "missing",
            "count": 0,
            "receipts": [],
            "receiptsTruncated": false
          },
          {
            "name": "action_failed",
            "definitionId": "81e4b094-6a0e-44f2-b599-5c4c02af9609",
            "definitionVersion": 1,
            "state": "missing",
            "count": 0,
            "receipts": [],
            "receiptsTruncated": false
          },
          {
            "name": "setup_failed",
            "definitionId": "ea4c5901-2849-4de5-8672-03295e2a4191",
            "definitionVersion": 1,
            "state": "missing",
            "count": 0,
            "receipts": [],
            "receiptsTruncated": false
          },
          {
            "name": "tably_table_created",
            "definitionId": "f53f1997-ee9a-4734-951c-ba31df91c4c9",
            "definitionVersion": 1,
            "state": "missing",
            "count": 0,
            "receipts": [],
            "receiptsTruncated": false
          }
        ],
        "testShopsExcluded": true,
        "missingMeaning": "No matching app-reported receipt in this UTC window. Merchant inactivity is unknown without coverage.",
        "shopifyAnalytics": "unavailable; Crust receipts do not prove Shopify transport or Analytics processing"
      }
    },
    {
      "seconds": 0.14366262500000004,
      "at": "2026-10-14T15:08:03.516Z",
      "event": "command",
      "data": {
        "command": "[node22.13-runtime]/node/bin/node",
        "args": [
          "[node22.13-runtime]/npm/bin/npm-cli.js",
          "install",
          "./crust-tracking",
          "--offline",
          "--ignore-scripts",
          "--no-audit",
          "--no-fund"
        ],
        "cwd": "[clean-copy]/acceptance-runtime"
      }
    },
    {
      "seconds": 0.47912416700000005,
      "at": "2026-10-14T15:08:03.851Z",
      "event": "command_result",
      "data": {
        "code": 0,
        "output": "\nadded 1 package in 232ms\n"
      }
    },
    {
      "seconds": 0.482234833,
      "at": "2026-10-14T15:08:03.854Z",
      "event": "command",
      "data": {
        "command": "[node22.13-runtime]/node/bin/node",
        "args": [
          "run.mjs"
        ],
        "cwd": "[clean-copy]/acceptance-runtime"
      }
    },
    {
      "seconds": 0.5883708750000001,
      "at": "2026-10-14T15:08:03.960Z",
      "event": "command_result",
      "data": {
        "code": 0,
        "output": "(node:6666) ExperimentalWarning: SQLite is an experimental feature and might change at any time\n(Use `node --trace-warnings ...` to show where the warning was created)\n{\"allHelpers\":[{\"name\":\"setup_started\",\"eventId\":\"b45a9662-6dcd-45a3-bd51-23e94bda24ec\",\"occurredAt\":\"2026-10-14T15:08:03.892Z\"},{\"name\":\"setup_completed\",\"eventId\":\"b33b29ad-b392-446d-a773-5f98ab95fd04\",\"occurredAt\":\"2026-10-14T15:08:03.898Z\"},{\"name\":\"first_value\",\"eventId\":\"11153892-8082-49e4-a0f7-499aa63f3aca\",\"occurredAt\":\"2026-10-14T15:08:03.898Z\"},{\"name\":\"feature_used\",\"eventId\":\"e700f001-9697-4129-9d7d-63ff31cd3273\",\"occurredAt\":\"2026-10-14T15:08:03.899Z\"},{\"name\":\"action_failed\",\"eventId\":\"b81a73b3-6d7b-47ea-b2ee-775502e1fd1b\",\"occurredAt\":\"2026-10-14T15:08:03.899Z\"},{\"name\":\"setup_failed\",\"eventId\":\"245f5693-a7c5-42be-b699-bb84c3e03182\",\"occurredAt\":\"2026-10-14T15:08:03.900Z\"},{\"name\":\"tably_table_created\",\"eventId\":\"507306c6-9e75-4660-b8e3-4834b8d05c3a\",\"occurredAt\":\"2026-10-14T15:08:03.900Z\"}],\"businessPersistence\":\"actual isolated JSON operation journal; host business SQL is a separate recorded step\"}\n"
      }
    },
    {
      "seconds": 0.588727875,
      "at": "2026-10-14T15:08:03.961Z",
      "event": "command",
      "data": {
        "command": "[node22.13-runtime]/node/bin/node",
        "args": [
          "host.mjs"
        ],
        "cwd": "[clean-copy]/acceptance-runtime"
      }
    },
    {
      "seconds": 0.7336900000000001,
      "at": "2026-10-14T15:08:04.106Z",
      "event": "command_result",
      "data": {
        "code": 0,
        "output": "{\"actualBusinessSQLCommitted\":true,\"eventId\":\"30d37b975e163fad7a15d175290bec1ea40a75e9051befe28535780e000479d4\",\"occurredAt\":\"2026-10-14T15:08:04.065Z\",\"name\":\"tably_table_created\"}\n"
      }
    },
    {
      "seconds": 0.7402213329999999,
      "at": "2026-10-14T15:08:04.112Z",
      "event": "mcp_verify_events",
      "data": {
        "status": "available",
        "appId": "b72f10d2-04b7-478a-8cf9-5e8b6212a8d1",
        "planId": "d7d12ae8-51b2-4aa1-beb3-09e093938b23",
        "from": "2026-10-14T15:08:03.372Z",
        "to": "2026-10-14T15:08:05.106Z",
        "events": [
          {
            "name": "setup_started",
            "definitionId": "5560d4af-a7da-4474-ae6c-0f11784e287e",
            "definitionVersion": 1,
            "state": "received",
            "count": 1,
            "receipts": [
              {
                "eventId": "b45a9662-6dcd-45a3-bd51-23e94bda24ec",
                "receivedAt": "2026-10-14T15:08:03.917Z",
                "occurredAt": "2026-10-14T15:08:03.892Z"
              }
            ],
            "receiptsTruncated": false
          },
          {
            "name": "setup_completed",
            "definitionId": "44da29ac-cd01-470d-b983-a0d5aa3bb2d3",
            "definitionVersion": 1,
            "state": "received",
            "count": 1,
            "receipts": [
              {
                "eventId": "b33b29ad-b392-446d-a773-5f98ab95fd04",
                "receivedAt": "2026-10-14T15:08:03.920Z",
                "occurredAt": "2026-10-14T15:08:03.898Z"
              }
            ],
            "receiptsTruncated": false
          },
          {
            "name": "first_value",
            "definitionId": "eafcaa1f-c107-409f-a24b-f320fa797524",
            "definitionVersion": 1,
            "state": "received",
            "count": 1,
            "receipts": [
              {
                "eventId": "11153892-8082-49e4-a0f7-499aa63f3aca",
                "receivedAt": "2026-10-14T15:08:03.920Z",
                "occurredAt": "2026-10-14T15:08:03.898Z"
              }
            ],
            "receiptsTruncated": false
          },
          {
            "name": "feature_used",
            "definitionId": "9cb0d3a0-16cf-44d0-9fa5-04e13c50556e",
            "definitionVersion": 1,
            "state": "received",
            "count": 1,
            "receipts": [
              {
                "eventId": "e700f001-9697-4129-9d7d-63ff31cd3273",
                "receivedAt": "2026-10-14T15:08:03.919Z",
                "occurredAt": "2026-10-14T15:08:03.899Z"
              }
            ],
            "receiptsTruncated": false
          },
          {
            "name": "action_failed",
            "definitionId": "81e4b094-6a0e-44f2-b599-5c4c02af9609",
            "definitionVersion": 1,
            "state": "received",
            "count": 1,
            "receipts": [
              {
                "eventId": "b81a73b3-6d7b-47ea-b2ee-775502e1fd1b",
                "receivedAt": "2026-10-14T15:08:03.934Z",
                "occurredAt": "2026-10-14T15:08:03.899Z"
              }
            ],
            "receiptsTruncated": false
          },
          {
            "name": "setup_failed",
            "definitionId": "ea4c5901-2849-4de5-8672-03295e2a4191",
            "definitionVersion": 1,
            "state": "received",
            "count": 1,
            "receipts": [
              {
                "eventId": "245f5693-a7c5-42be-b699-bb84c3e03182",
                "receivedAt": "2026-10-14T15:08:03.933Z",
                "occurredAt": "2026-10-14T15:08:03.900Z"
              }
            ],
            "receiptsTruncated": false
          },
          {
            "name": "tably_table_created",
            "definitionId": "f53f1997-ee9a-4734-951c-ba31df91c4c9",
            "definitionVersion": 1,
            "state": "received",
            "count": 2,
            "receipts": [
              {
                "eventId": "30d37b975e163fad7a15d175290bec1ea40a75e9051befe28535780e000479d4",
                "receivedAt": "2026-10-14T15:08:04.092Z",
                "occurredAt": "2026-10-14T15:08:04.065Z"
              },
              {
                "eventId": "507306c6-9e75-4660-b8e3-4834b8d05c3a",
                "receivedAt": "2026-10-14T15:08:03.935Z",
                "occurredAt": "2026-10-14T15:08:03.900Z"
              }
            ],
            "receiptsTruncated": false
          }
        ],
        "testShopsExcluded": true,
        "missingMeaning": "No matching app-reported receipt in this UTC window. Merchant inactivity is unknown without coverage.",
        "shopifyAnalytics": "unavailable; Crust receipts do not prove Shopify transport or Analytics processing"
      }
    },
    {
      "seconds": 0.741430167,
      "at": "2026-10-14T15:08:04.113Z",
      "event": "mcp_verify_events",
      "data": {
        "status": "invalid-plan",
        "appId": "b72f10d2-04b7-478a-8cf9-5e8b6212a8d1",
        "planId": "b2e97902-2b91-4306-ab77-13506c160ea9",
        "from": "2026-10-14T15:08:03.372Z",
        "to": "2026-10-14T15:08:05.112Z",
        "reason": "No registered plan for this app"
      }
    },
    {
      "seconds": 0.742251667,
      "at": "2026-10-14T15:08:04.114Z",
      "event": "malformed_verification",
      "data": {
        "rejected": true
      }
    },
    {
      "seconds": 0.7422819999999999,
      "at": "2026-10-14T15:08:04.114Z",
      "event": "finished",
      "data": {
        "elapsedSeconds": 0.74227275,
        "firstActualSQLReceipt": {
          "name": "tably_table_created",
          "definitionId": "f53f1997-ee9a-4734-951c-ba31df91c4c9",
          "definitionVersion": 1,
          "state": "received",
          "count": 2,
          "receipts": [
            {
              "eventId": "30d37b975e163fad7a15d175290bec1ea40a75e9051befe28535780e000479d4",
              "receivedAt": "2026-10-14T15:08:04.092Z",
              "occurredAt": "2026-10-14T15:08:04.065Z"
            },
            {
              "eventId": "507306c6-9e75-4660-b8e3-4834b8d05c3a",
              "receivedAt": "2026-10-14T15:08:03.935Z",
              "occurredAt": "2026-10-14T15:08:03.900Z"
            }
          ],
          "receiptsTruncated": false
        },
        "defaultFunnelId": "b27bb4f5-a03c-4459-a93a-b3caf94acf67",
        "externalDevelopers": 0,
        "providerCalls": 0
      }
    }
  ]
}
