{
  "schema": "forge.telemetry.handover.execution.v1",
  "state": "included_cloud_and_all_bundle_files_verified",
  "checked_at_utc": "2026-10-01T08:58:19.035923+00:00",
  "audit_source_sha256": "76306215f132e3dc7b5ab707fe4779f4559000bcde5f410645ffa6a342abf330",
  "reviewer_source_sha256": "03208ed25bc5494205d3ba669e2099c42536a32af4f342f5fe4c0187e9538e7c",
  "contract_sha256": "49c6a3bcdf21e9bbfb21b7423ef720dfb63b5cb4b3c0c0f326bf95c64168dc4e",
  "kit_sha256": "63317c7bd58878e008c1072acbbc2934a1e3fabd372d61d365d3194139a291a6",
  "local": {
    "python": "3.13.11",
    "tests": {
      "tests": 112,
      "failures": 0,
      "errors": 0,
      "skipped": 0
    },
    "scope": "Offline handover, metadata, consistency and 16 read-only OPC UA collector fixtures"
  },
  "cloud": {
    "provider": "Kaggle",
    "kernel": "sankalpsthakur/telemetry-handover-cpu-check",
    "version": 1,
    "status": "COMPLETE",
    "visibility": "private",
    "accelerator": "none",
    "internet_enabled": false,
    "python": "3.12.13",
    "tests": {
      "tests": 96,
      "failures": 0,
      "errors": 0,
      "skipped": 0
    },
    "scope": "Offline handover, metadata and consistency; no OPC UA wire tests",
    "payload_hashes_matched": 82,
    "receipt_sha256": "9c37ecdb4413c00001e4d5f413e53d06de62d4dc3a001b3bcb8a0c554d73ebd8",
    "results_zip_sha256": "068909fa10632be630d9dadd3de3e6863a60e44f35f6f0b721fccdd97512abe3"
  },
  "isolated_kit": {
    "payload_hashes_matched": 19,
    "all_six_file_bundle_comparisons": {
      "bounded-preview": {
        "all_six_bundle_files_exact": true,
        "profile_check_state": "passed_with_warnings",
        "exit_code": 0,
        "file_sha256": {
          "MANIFEST.json": "e4d0fc7882cad2c9eec29ea5195f5fe9968acb6286b537a5f6df937dcbd01af7",
          "REVIEW.md": "cd39f481fc0add7d5ad298c583f67f92e2d121381dae8fe85979a4f1603e521c",
          "audit.json": "d6ae0b741816307153958d74ce4c63cc894716981ecb1db0c2ce2b49c2f70eab",
          "capture.csv": "279fd631a04fb0080b447e7db86b44fe9ede72bcc437570f1e50b4cb36e45e7a",
          "profile.json": "9bd1118c26f7e23fb2f32b182788b5a23c3236cd6432454f26552d8629a187d5",
          "report.html": "4490c1248c4fcfd23910da2e270fb37fd8676bde810f039161a697b14c1d7b98"
        }
      },
      "empty": {
        "all_six_bundle_files_exact": true,
        "profile_check_state": "review_needed",
        "exit_code": 2,
        "file_sha256": {
          "MANIFEST.json": "ab87e7ac703ca02f265825d0ead31b86e6fa95caa2cfaf02cebb5b774799b5e0",
          "REVIEW.md": "6e9c3194ca90425e71a35b2ae0bb9186e82a37146ca30cad8e5a6cd339329d97",
          "audit.json": "3ddb1d7253298fbacc438fbcc0999ddc2c62c954920e645272215ddf4354e71d",
          "capture.csv": "98a76bc31a9067c305ad7cfde0dc5f7c42ed257491bf7185f8897df91b405b10",
          "profile.json": "9bd1118c26f7e23fb2f32b182788b5a23c3236cd6432454f26552d8629a187d5",
          "report.html": "8372e3fdac3425a2e2e2debcc0b4934424b1d2e7358e7533c46246a0ee0c3151"
        }
      },
      "faults": {
        "all_six_bundle_files_exact": true,
        "profile_check_state": "review_needed",
        "exit_code": 2,
        "file_sha256": {
          "MANIFEST.json": "945b5ff821b858ae0c267682b3a3b873beb71ae52f9f161a8721732398bfadc2",
          "REVIEW.md": "d09252ac6f4a281a54b136cc1149af9f241e15a93c140041841ac236db3cefbf",
          "audit.json": "c080aa275f9aa1c7ce8bfc8ce38f1a320f4bfa7747a73783872e1bde27681fc8",
          "capture.csv": "a3b96adbfaae5bb83d02b8c32db5e815d288eea8f475b4ca18aadd3ad1cd7b75",
          "profile.json": "9bd1118c26f7e23fb2f32b182788b5a23c3236cd6432454f26552d8629a187d5",
          "report.html": "7b52144e6be38af1a8082c9ee0b386234f42c3c437dda6a30e7e1fcc4aa1488b"
        }
      },
      "good": {
        "all_six_bundle_files_exact": true,
        "profile_check_state": "passed_with_warnings",
        "exit_code": 0,
        "file_sha256": {
          "MANIFEST.json": "eb9762505aeb7047193bd430486de01cec6e6750d2b84cc87b3069ab242c4925",
          "REVIEW.md": "502947eff6ece4788537cfaabc6917a05b2445d62901ac14405e519cfaaf8ae8",
          "audit.json": "4ffd336ce694c584241e6846e2b28a1daec845e4f3e8d714469cb8441d69c0fa",
          "capture.csv": "13ffc4b6a5bcb5bef010f0b47e68323673219b209c973505263456fe10ae204e",
          "profile.json": "9bd1118c26f7e23fb2f32b182788b5a23c3236cd6432454f26552d8629a187d5",
          "report.html": "9442b2b9c84265087a23adca5bd83affda5b23efa2e5468a6dd34ad0d6ad5a83"
        }
      },
      "precision": {
        "all_six_bundle_files_exact": true,
        "profile_check_state": "review_needed",
        "exit_code": 2,
        "file_sha256": {
          "MANIFEST.json": "f0a51743da45c3cd15ac4f189af77a1511d407b1ec68ce5db67f6d1c53eaa976",
          "REVIEW.md": "073c1b74a5e6fd483775900a7dbed04a0997e9eb6091d175321c7c8746ee7dcd",
          "audit.json": "41be069028af3405f512d297ebb68192a4bbc2051b11e5c4563d4ce9f99e39bf",
          "capture.csv": "9a26ca5b82f4469846d19f45e93a44eeb42e92f360e3fbfe5314f48cdf38c341",
          "profile.json": "bd878ad93d6efb87b6ee341888149a5c2c5c151739c6be214eba50c07829dad5",
          "report.html": "aa22c4940f7cfa2a42909aa0e9926d978226887babada34b8e92718ff945550a"
        }
      },
      "source-required": {
        "all_six_bundle_files_exact": true,
        "profile_check_state": "review_needed",
        "exit_code": 2,
        "file_sha256": {
          "MANIFEST.json": "8763f285219709a84488ff1b18fcf8bcc360f439492a55461cafe4fbb492b0cc",
          "REVIEW.md": "75dd9e2f9ec453fbcaf3edad9352432a5450e1a178f4a2e6381532898c4c7fee",
          "audit.json": "5779e544e880291bbd93c9a94ca960c9de94dd0ff09e01885626051c5193f384",
          "capture.csv": "13ffc4b6a5bcb5bef010f0b47e68323673219b209c973505263456fe10ae204e",
          "profile.json": "bd6ebc2061b7b54c23755d05d092e315e584419cc1eafd2abd4e8b50e36fa5ac",
          "report.html": "0d96af39a44d6f756fec9cbe8e0e04b4b7f23a2f76c34076376f661195cee4d7"
        }
      }
    }
  },
  "browser_audit_complete_export_content_comparisons": {
    "good": {
      "complete_python_serialization_exact": true,
      "report_sha256": "98e4c753196d0b6350333309e060268bb3f26cb162d95d5be10a11421fb1aeec"
    },
    "faults": {
      "complete_python_serialization_exact": true,
      "report_sha256": "232827fa4bfb6ded14ea36e2e451090bf2abfce4d98b08523c8b38e51bd22e35"
    },
    "precision": {
      "complete_python_serialization_exact": true,
      "report_sha256": "60c94bc8993758950038b2b1e5d972e44cd63d17bb34ae05bca46ada48af3505"
    }
  },
  "native_browser_file_save_verified": false,
  "plant_connection": "not_performed",
  "field_adoption": "not_established",
  "browser": {
    "state": "local_rendered_reports_and_browser_export_contents_verified",
    "navigation_basis": "Direct navigation to visible links; locator click did not navigate",
    "reports": {
      "good": {
        "document_width": 1280,
        "groups": "Showing the first 2 of 2 groups. All group findings remain in the audit.",
        "heading": "demo-pump: profile checks passed with warnings",
        "large_counter_visible": false,
        "links": [
          {
            "href": "audit.json",
            "text": "Full audit JSON"
          },
          {
            "href": "capture.csv",
            "text": "Original CSV bytes"
          },
          {
            "href": "profile.json",
            "text": "Original profile bytes"
          },
          {
            "href": "MANIFEST.json",
            "text": "Bundle manifest"
          },
          {
            "href": "REVIEW.md",
            "text": "Verification guide"
          }
        ],
        "records": "Showing the first 4 of 4 source rows. The full audit and original CSV retain every row, including rejected records.",
        "script_count": 0,
        "state": "Profile checks passed with warnings. Source and clock declarations remain unverified. Collector indexes are not PLC source counters.",
        "table_rows": [
          1,
          2,
          4,
          2,
          5
        ],
        "viewport": 1280
      },
      "faults": {
        "document_width": 1280,
        "groups": "Showing the first 8 of 8 groups. All group findings remain in the audit.",
        "heading": "demo-pump: review needed",
        "large_counter_visible": false,
        "links": [
          {
            "href": "audit.json",
            "text": "Full audit JSON"
          },
          {
            "href": "capture.csv",
            "text": "Original CSV bytes"
          },
          {
            "href": "profile.json",
            "text": "Original profile bytes"
          },
          {
            "href": "MANIFEST.json",
            "text": "Bundle manifest"
          },
          {
            "href": "REVIEW.md",
            "text": "Verification guide"
          }
        ],
        "records": "Showing the first 16 of 16 source rows. The full audit and original CSV retain every row, including rejected records.",
        "script_count": 0,
        "state": "Review needed. Source and clock declarations remain unverified. Collector indexes are not PLC source counters.",
        "table_rows": [
          5,
          1,
          2,
          16,
          8,
          5
        ],
        "viewport": 1280
      },
      "precision": {
        "document_width": 1280,
        "groups": "Showing the first 1 of 1 groups. All group findings remain in the audit.",
        "heading": "demo-pump: review needed",
        "large_counter_visible": true,
        "links": [
          {
            "href": "audit.json",
            "text": "Full audit JSON"
          },
          {
            "href": "capture.csv",
            "text": "Original CSV bytes"
          },
          {
            "href": "profile.json",
            "text": "Original profile bytes"
          },
          {
            "href": "MANIFEST.json",
            "text": "Bundle manifest"
          },
          {
            "href": "REVIEW.md",
            "text": "Verification guide"
          }
        ],
        "records": "Showing the first 2 of 2 source rows. The full audit and original CSV retain every row, including rejected records.",
        "script_count": 0,
        "state": "Review needed. Source and clock declarations remain unverified. Collector indexes are not PLC source counters.",
        "table_rows": [
          1,
          1,
          2,
          2,
          1,
          5
        ],
        "viewport": 1280
      },
      "source-required": {
        "document_width": 1280,
        "groups": "Showing the first 2 of 2 groups. All group findings remain in the audit.",
        "heading": "demo-pump: review needed",
        "large_counter_visible": false,
        "links": [
          {
            "href": "audit.json",
            "text": "Full audit JSON"
          },
          {
            "href": "capture.csv",
            "text": "Original CSV bytes"
          },
          {
            "href": "profile.json",
            "text": "Original profile bytes"
          },
          {
            "href": "MANIFEST.json",
            "text": "Bundle manifest"
          },
          {
            "href": "REVIEW.md",
            "text": "Verification guide"
          }
        ],
        "records": "Showing the first 4 of 4 source rows. The full audit and original CSV retain every row, including rejected records.",
        "script_count": 0,
        "state": "Review needed. Source and clock declarations remain unverified. Collector indexes are not PLC source counters.",
        "table_rows": [
          1,
          2,
          4,
          2,
          5
        ],
        "viewport": 1280
      },
      "empty": {
        "document_width": 1280,
        "groups": "Showing the first 0 of 0 groups. All group findings remain in the audit.",
        "heading": "demo-pump: review needed",
        "large_counter_visible": false,
        "links": [
          {
            "href": "audit.json",
            "text": "Full audit JSON"
          },
          {
            "href": "capture.csv",
            "text": "Original CSV bytes"
          },
          {
            "href": "profile.json",
            "text": "Original profile bytes"
          },
          {
            "href": "MANIFEST.json",
            "text": "Bundle manifest"
          },
          {
            "href": "REVIEW.md",
            "text": "Verification guide"
          }
        ],
        "records": "Showing the first 0 of 0 source rows. The full audit and original CSV retain every row, including rejected records.",
        "script_count": 0,
        "state": "Review needed. Source and clock declarations remain unverified. Collector indexes are not PLC source counters.",
        "table_rows": [
          2,
          0,
          0,
          5
        ],
        "viewport": 1280
      },
      "bounded-preview": {
        "document_width": 1280,
        "groups": "Showing the first 151 of 151 groups. All group findings remain in the audit.",
        "heading": "demo-pump: profile checks passed with warnings",
        "large_counter_visible": false,
        "links": [
          {
            "href": "audit.json",
            "text": "Full audit JSON"
          },
          {
            "href": "capture.csv",
            "text": "Original CSV bytes"
          },
          {
            "href": "profile.json",
            "text": "Original profile bytes"
          },
          {
            "href": "MANIFEST.json",
            "text": "Bundle manifest"
          },
          {
            "href": "REVIEW.md",
            "text": "Verification guide"
          }
        ],
        "records": "Showing the first 250 of 302 source rows. The full audit and original CSV retain every row, including rejected records.",
        "script_count": 0,
        "state": "Profile checks passed with warnings. Source and clock declarations remain unverified. Collector indexes are not PLC source counters.",
        "table_rows": [
          1,
          2,
          250,
          151,
          5
        ],
        "viewport": 1280
      }
    },
    "mobile": {
      "landing": {
        "document_width": 390,
        "heading": "Hand over a telemetry capture with its evidence.",
        "scrollable_tables": [],
        "width": 390
      },
      "precision": {
        "document_width": 390,
        "heading": "demo-pump: review needed",
        "scrollable_tables": [
          {
            "content_width": 316,
            "width": 316
          },
          {
            "content_width": 316,
            "width": 316
          },
          {
            "content_width": 600,
            "width": 316
          },
          {
            "content_width": 1500,
            "width": 316
          },
          {
            "content_width": 600,
            "width": 316
          },
          {
            "content_width": 316,
            "width": 316
          }
        ],
        "width": 390
      },
      "bounded-preview": {
        "document_width": 390,
        "heading": "demo-pump: profile checks passed with warnings",
        "scrollable_tables": [
          {
            "content_width": 316,
            "width": 316
          },
          {
            "content_width": 600,
            "width": 316
          },
          {
            "content_width": 1500,
            "width": 316
          },
          {
            "content_width": 600,
            "width": 316
          },
          {
            "content_width": 316,
            "width": 316
          }
        ],
        "width": 390
      }
    },
    "audit": {
      "runtime": "Browser Python 3.14.2 ready \u00b7 audit source matches kit manifest",
      "reports": {
        "faults": {
          "outcome": "Capture rejected: review row failures and incomplete or incoherent groups.",
          "large_counter_visible": false,
          "generated_link_content_saved": true
        },
        "good": {
          "outcome": "Profile checks passed. Review the retained warnings.",
          "large_counter_visible": false,
          "generated_link_content_saved": true
        },
        "precision": {
          "outcome": "Capture rejected: review row failures and incomplete or incoherent groups.",
          "large_counter_visible": true,
          "generated_link_content_saved": true
        }
      },
      "native_file_save_verified": false,
      "input_invalidation": {
        "hidden": true,
        "href": null,
        "outcome": "Inputs changed. Run checks to create a new report."
      },
      "duplicate_key_rejection": {
        "hidden": true,
        "href": null,
        "outcome": "Audit unavailable or invalid input: duplicate profile key: asset_id"
      },
      "button_activation_basis": "CUA CDP ordinary DOM activation; native pointer activation not verified"
    },
    "consistency": {
      "consistent": {
        "alert": "0",
        "consistent": "6",
        "error": "",
        "frame_rows": 6,
        "groups": "6",
        "message": "The intervals agree under the entered declarations. Common-mode errors and invalid declarations can still hide a fault.",
        "runtime": "Browser Python 3.14.2 ready \u00b7 both Python cores match the kit manifest",
        "unavailable": "0"
      },
      "disagreement": {
        "alert": "5",
        "consistent": "0",
        "error": "",
        "frame_rows": 6,
        "groups": "6",
        "message": "The declared intervals disagree. Cause remains unresolved; review pressure, flow and the hydraulic relationship.",
        "runtime": "Browser Python 3.14.2 ready \u00b7 both Python cores match the kit manifest",
        "unavailable": "0"
      },
      "missing-flow": {
        "alert": "0",
        "consistent": "0",
        "error": "",
        "frame_rows": 6,
        "groups": "6",
        "message": "The independent check is unavailable for one or more groups. Cause remains unresolved; review missing data and qualification.",
        "runtime": "Browser Python 3.14.2 ready \u00b7 both Python cores match the kit manifest",
        "unavailable": "6"
      },
      "unqualified": {
        "alert": "0",
        "consistent": "0",
        "error": "",
        "frame_rows": 6,
        "groups": "6",
        "message": "The independent check is unavailable for one or more groups. Cause remains unresolved; review missing data and qualification.",
        "runtime": "Browser Python 3.14.2 ready \u00b7 both Python cores match the kit manifest",
        "unavailable": "6"
      }
    },
    "source_sha256": {
      "index.html": "526fa98ef0b41db813d4c307f9f7520bcc7fc3ff6558cafd5de77eee409d8f96",
      "audit-worker.js": "f3a4c471e1706eedc1132ce256777f369483c8ee1775118457990bb9c0813998",
      "consistency.html": "7a9922eafc937e757c2a2f666c420cbaf29b67badadcd929e002bd170f5f35c3",
      "consistency-worker.js": "c5bde8f908d063692f5abbf98a2689467b9357f61244d8873c174f815c976814",
      "handover-pack.html": "4c6f26afc9ff50567f843940c8dd74519a4914041a61cca5fcc6e6dc029e8f47"
    }
  }
}
