)]}'
{
  "commit": "bf039455851891577f6bd274917dabfed55e757d",
  "tree": "06e138ac4fcf5ae72ab3da3bd06c80320bfaa126",
  "parents": [
    "7803c2c4077d08d2bf7aa21abaf095e37b1505c4"
  ],
  "author": {
    "name": "Rich Bowen",
    "email": "rbowen@rcbowen.com",
    "time": "Tue Jun 16 17:27:44 2026 -0400"
  },
  "committer": {
    "name": "Rich Bowen",
    "email": "rbowen@rcbowen.com",
    "time": "Tue Jun 16 17:27:44 2026 -0400"
  },
  "message": "Switch default to .json + POST, implement dual-mode API client\n\nThe Foal server uses the endpoint suffix to determine how to parse\nthe request body: .lua \u003d GET with query params, .json \u003d POST with\nJSON body. Both route to the same handlers.\n\n- Default PONYMAIL_API_SUFFIX to \".json\" (native Foal protocol)\n- apiFetch now automatically uses POST+JSON when suffix is \".json\"\n  and GET+params when \".lua\"\n- All raw fetch calls (get_source, auth_status) also handle both modes\n- Update README and TODO to reflect the new default\n\nSet PONYMAIL_API_SUFFIX\u003d.lua only for older deployments that lack\nthe .json route registration.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8424d2308d9a91e7b0f50696fbcbb0af7444fe48",
      "old_mode": 33188,
      "old_path": "mcp/ponymail-mcp/README.md",
      "new_id": "405900a9694517fd736ef980327779f3ff8fbee2",
      "new_mode": 33188,
      "new_path": "mcp/ponymail-mcp/README.md"
    },
    {
      "type": "modify",
      "old_id": "5159a68fb629e2926e2a2fbc624b1c51744a9693",
      "old_mode": 33188,
      "old_path": "mcp/ponymail-mcp/index.js",
      "new_id": "9c531b7f62bdf32d4a7c5e0d8dc4313316c7531f",
      "new_mode": 33188,
      "new_path": "mcp/ponymail-mcp/index.js"
    }
  ]
}
