)]}'
{
  "commit": "2d2f63d6fb0174d60c4ba4c1c2935bc93bc76bea",
  "tree": "8d519eac7241cf633e3cd9675ba83aa0cc497232",
  "parents": [
    "347bc50371251f4e0c193b914a93ee534ba186f6"
  ],
  "author": {
    "name": "Nasser Grainawi",
    "email": "nasser.grainawi@oss.qualcomm.com",
    "time": "Mon May 04 15:33:59 2026 -0700"
  },
  "committer": {
    "name": "Nasser Grainawi",
    "email": "nasser.grainawi@oss.qualcomm.com",
    "time": "Tue Aug 11 16:45:55 2026 -0700"
  },
  "message": "Add get_git_parent_changes tool with structured output\n\nAdds a new MCP tool that queries immediate git-parent changes of a given\nchange using Gerrit\u0027s `parentof:` query operator. Useful when navigating\na stack: given a change ID, it surfaces which open Gerrit changes have a\ncommit that is a direct parent of the queried change. Only immediate\nparents are returned; grandparents and higher ancestors are excluded by\ndesign.\n\nReturns a typed _GitParentChangesResult so the MCP SDK auto-generates an\noutput_schema and produces both structured and unstructured text\ncontent. Error paths raise exceptions rather than returning text error\ncontent blocks. This follows the structured-output pattern documented\nin AGENTS.md and the writing-extensions skill.\n\nIncludes tests/unit/test_get_git_parent_changes.py covering success, WIP\nflag, multiple parents, empty result, JSON decode error, and curl\nexception cases.\n\nCo-Authored-By: Claude Sonnet 4.6 \u003cnoreply@anthropic.com\u003e\nChange-Id: I61e8703d6dfb2f5aee2135b3a2d6c0a3bea7bf19\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5d10e6ae76d2733108a838a6cb0c76ef039fefd4",
      "old_mode": 33188,
      "old_path": "docs/available_tools.md",
      "new_id": "a92c8edcb58b4161e674543dbdb30c73a9fede02",
      "new_mode": 33188,
      "new_path": "docs/available_tools.md"
    },
    {
      "type": "modify",
      "old_id": "b8d6ff10ad8dd355c9a44a79b3e17d50b7dd3d6c",
      "old_mode": 33188,
      "old_path": "docs/use_cases.md",
      "new_id": "bbfeb18704d8c488071414d5461d68e5e862fe7f",
      "new_mode": 33188,
      "new_path": "docs/use_cases.md"
    },
    {
      "type": "modify",
      "old_id": "aba1c40c5ff3441293d3501fcc7caaf749a5f60c",
      "old_mode": 33188,
      "old_path": "gerrit_mcp_server/main.py",
      "new_id": "2673f0489730fca957c31ecd447901a6e05ced32",
      "new_mode": 33188,
      "new_path": "gerrit_mcp_server/main.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b52ab49e9d5114de58f2cc6c886462a05e58c774",
      "new_mode": 33188,
      "new_path": "tests/unit/test_get_git_parent_changes.py"
    }
  ]
}
