)]}'
{
  "commit": "d5c8d71adfec8b8cb5aa15c7ce74da19c697191f",
  "tree": "3875d82cf3791db0c49c160455616eeaafe208ea",
  "parents": [
    "2343f8a73cb0a5a846a4f44075d8e039daac7816"
  ],
  "author": {
    "name": "Philip Zeyliger",
    "email": "philip@bold.dev",
    "time": "Tue Jun 17 15:19:45 2025 -0700"
  },
  "committer": {
    "name": "Autoformatter",
    "email": "bot@sketch.dev",
    "time": "Tue Jun 17 22:21:57 2025 +0000"
  },
  "message": "loop: avoid deadlock when pushing to a checked out branch\n\nSketch did a good job with this:\n\nThe Problem 🐛\nIn AgentGitState.handleGitCommits(), there was a double-locking scenario:\n\nMethod acquires mutex lock\nDuring git push retry logic, calls IncrementRetryNumber()\nIncrementRetryNumber() tries to acquire the same mutex again\nDeadlock - thread hangs forever waiting for a lock it already holds\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e\nChange-ID: sfe0bcab73addc32ak\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "561e986957c81dd7a0b36eb2e9c7096ca9df4459",
      "old_mode": 33188,
      "old_path": "loop/agent.go",
      "new_id": "092181b5baae4289dc08292653ea2227e359e9f2",
      "new_mode": 33188,
      "new_path": "loop/agent.go"
    }
  ]
}
