)]}'
{
  "commit": "4c7bb3ced98cb7262dd8eefd6c9f7df6e42ffcee",
  "tree": "73a5bc84e66a78fc8e7a7fb0c36d4f7644063768",
  "parents": [
    "d2b4d8994eb2a1b8994601069f5180a9c979ee8c"
  ],
  "author": {
    "name": "Ha Thach",
    "email": "thach@tinyusb.org",
    "time": "Fri Aug 28 14:10:33 2026 +0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Aug 28 14:10:33 2026 +0700"
  },
  "message": "Merge pull request #3863 from hathach/claude/validate-loop\n\nvalidate workflow: loop validate -\u003e fix cycles until green\n\nTurn the single-pass validate gate into a loop: run unit + builds +\nsize + PVS + claude/codex reviews in parallel; on a red verdict one\nfix agent repairs the gate-failing evidence (CONFIRMED findings,\ncodex P0/P1, failed stages - PLAUSIBLE/quality stay report-only),\ncommits, and the affected stages re-run, up to maxCycles (default 5).\n\nHardened per review: fix-commit paths verified from git rather than\nself-report, restartRequired when a fix edits the workflow itself,\nper-stage evidence budgeting so the fixer prompt JSON never truncates\nmid-document, dirty-tree and moving-base-ref guards, dead stage\nagents retried instead of ending the loop, and only pure-docs fixes\nskip a full stage re-run.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dadf8a77f732da9b2f313bc24f19340787ac1081",
      "old_mode": 33188,
      "old_path": ".claude/workflows/validate.js",
      "new_id": "773dd47adc75304f6c20ede7bd657037f6b68d67",
      "new_mode": 33188,
      "new_path": ".claude/workflows/validate.js"
    }
  ]
}
