{
  "schema_version": 1,
  "generated_at": "2026-07-16T22:49:40.312Z",
  "receipt_id": "M-008",
  "receipt_result": "PASS — 1/1 declared command",
  "passed_commands": 1,
  "declared_commands": 1,
  "timestamps": {
    "started_at": "2026-07-12T01:49:17.299Z",
    "finished_at": "2026-07-12T01:51:33.547Z"
  },
  "commands": [
    {
      "cmd": "npm run test --workspace=@blockly/plugin-workspace-search",
      "exit_code": 0,
      "timed_out": false,
      "duration_ms": 6501
    }
  ],
  "environment": {
    "container_image_ref": "node:22-bookworm",
    "container_image_digest": "node@sha256:a25c9934ff6382cd4f08b6bc26c82bf4ea69b1e6f8dabfb2ead457374127c365",
    "container_image_id": null,
    "container_os": null,
    "container_architecture": null,
    "network_policy": "phaseA:bridge,phaseB:none",
    "source_commit": "c37ab067e848da5e8b136d4cf16d8cdffc653ee5",
    "install_commands": [
      "npm_config_cache=/workspace/.npmcache npm ci --no-audit --no-fund --loglevel=error",
      "npm run build --workspace=@blockly/plugin-workspace-search",
      "npm run test --workspace=@blockly/plugin-workspace-search"
    ]
  },
  "code": {
    "base_commit": "c37ab067e848da5e8b136d4cf16d8cdffc653ee5",
    "recorded_patch_commit": "db5ccc98b2dcb5751fb2121075e067e0439ced40",
    "patch_commit_binding": "declared metadata; not execution-bound",
    "patch_diff_hash": "sha256:d171e1897e488dbb5f732e13f892ab2380eec800be4d4aea07862dd413fad922",
    "patch_diff_binding": "bound to executed patch bytes"
  },
  "execution_summary": "1/1 declared command returned exit 0 in the recorded environment",
  "bundle": {
    "bundle_contents_digest": "sha256:58c3a6dd0c2e142a486cdf7c7e112fa6aa75affcc6c77a139fd5a694cf0cd64c",
    "signed_asset_sha256": "sha256:78d81249cc1b429983365ad72de44971530936d65e938f42cdc75b8e1eb56638",
    "attestation_uri": "https://github.com/northset-oss/verification-pilot/releases/download/run-record-M-008/run-record-M-008.tar.gz",
    "attestation_verified_at": "2026-07-14T14:21:48Z",
    "provenance": "Signed provenance recorded; the signer records artifact origin, not execution witnessing or maintainer approval."
  },
  "classification": "CONTRIBUTOR SELF-RUN — NOT MAINTAINER VERIFICATION",
  "links": {
    "canonical_url": "https://northset-oss.github.io/verification-pilot/receipts/M-008/",
    "target_repo": "https://github.com/RaspberryPiFoundation/blockly-samples",
    "issue_or_task": "https://github.com/RaspberryPiFoundation/blockly-samples/issues/2510",
    "publication_pr": "https://github.com/RaspberryPiFoundation/blockly-samples/pull/2748"
  },
  "issue_title": "workspace-search buttons need type=button",
  "limitations": [
    "Does not prove code quality",
    "Does not prove security",
    "Contributor self-run record of Northset's own contribution; not the maintainer's verification.",
    "The declared network-off check runs the workspace-search plugin's Mocha unit suite (17 tests including the new button-type regression test) on Node 22, after a disclosed online phase-A install (npm ci + the plugin's build, npm cache redirected to /workspace/.npmcache). It does not run the full monorepo test/lint/format matrix; upstream CI additionally runs Node 22 and 24, eslint, and prettier --check across all packages."
  ],
  "correction": null,
  "scope_note": "The declared network-off check runs the workspace-search plugin's Mocha unit suite (17 tests including the new button-type regression test) on Node 22, after a disclosed online phase-A install (npm ci + the plugin's build, npm cache redirected to /workspace/.npmcache). It does not run the full monorepo test/lint/format matrix; upstream CI additionally runs Node 22 and 24, eslint, and prettier --check across all packages.",
  "upstream_outcome": {
    "status": "merged",
    "link": "https://github.com/RaspberryPiFoundation/blockly-samples/pull/2748#pullrequestreview-4685905315",
    "attribution": "Linked maintainer review"
  }
}
