)]}'
{
  "commit": "2cb37c6f9c1bb9d3c39ab2f1e7c3b6c0a88daadf",
  "tree": "053c05dd5638f0c32ec5ddc5b8e762abb5bffd8b",
  "parents": [
    "c2bf1bd2b9295dd4889009004f45361695eb32b0"
  ],
  "author": {
    "name": "Anthony Rocha",
    "email": "anthony.rocha@amd.com",
    "time": "Mon Sep 14 12:26:38 2026 -0700"
  },
  "committer": {
    "name": "Anthony Rocha",
    "email": "116300062+rusty1968@users.noreply.github.com",
    "time": "Tue Sep 15 09:38:02 2026 -0700"
  },
  "message": "refactor: extract pass/fail scanning in caliptra_runner.py and add a unit test\n\nAdd scan_output_for_result(lines) to caliptra_runner.py: a standalone\nfunction that scans detokenized output lines for a PASS/FAIL sentinel,\nwith no dependency on the emulator subprocess. This is what Task 5\u0027s\nfpga interface will reuse, and it\u0027s what makes this file unit-testable\nin a sandbox with no board/emulator binary available.\n\nAdd caliptra_runner_test.py covering the no-sentinel, PASS, FAIL, and\nfirst-sentinel-wins cases, and wire it into BUILD.bazel as a py_test.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "29b66e4b89f9db9f4b988f239804eb488ebae166",
      "old_mode": 33188,
      "old_path": "target/veer/tooling/BUILD.bazel",
      "new_id": "79b5f6f4554ef90b52c9ec4ca969f3a6fc5b9048",
      "new_mode": 33188,
      "new_path": "target/veer/tooling/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "ff16f3e12fb587b9a8f7be27883e85353955661c",
      "old_mode": 33261,
      "old_path": "target/veer/tooling/caliptra_runner.py",
      "new_id": "7832aeefb7d9a3e15298c4486c6b77e3b8aef4af",
      "new_mode": 33261,
      "new_path": "target/veer/tooling/caliptra_runner.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "212e057651b79a73b1aefe58fe581cdc5842db5a",
      "new_mode": 33188,
      "new_path": "target/veer/tooling/caliptra_runner_test.py"
    }
  ]
}
