)]}'
{
  "commit": "1736d84b3f88aa740958fe5b48aa283aaff7d55b",
  "tree": "9bcb73fe2c3a92dab384bc759ca2ec7543c5bfd5",
  "parents": [
    "f448a726d00761c3c857fdc18122380a7313b7ac"
  ],
  "author": {
    "name": "Tim Saucer",
    "email": "timsaucer@gmail.com",
    "time": "Fri Aug 28 15:34:49 2026 -0400"
  },
  "committer": {
    "name": "Tim Saucer",
    "email": "timsaucer@gmail.com",
    "time": "Fri Aug 28 15:34:49 2026 -0400"
  },
  "message": "refactor: route the last three capsule getters through the helper\n\n`call_capsule_getter` documents itself as having no exceptions to remember,\nand had three. The `from_pycapsule!` and `try_from_pycapsule!` macros each\nhand-rolled the getattr/call0 prologue, and `SessionConfig::with_extension`\ncalled `__datafusion_extension_options__` directly. All three take no\nargument, so with `CapsuleGetterArg::None` the helper returns the original\nerror untouched and the substitution is behavior-identical.\n\nThis is what makes the claim true rather than aspirational: the grep in the\nFFI capsule protocol skill now turns up no bare call sites.\n\n`with_extension` also gains the `validate_pycapsule` check every other\nextractor has, so a mismatched capsule is named instead of raising CPython\u0027s\nfixed \"called with incorrect name\". It keeps its own `hasattr` precheck,\nwhose AttributeError is more useful than the helper\u0027s pass-through, and\ntakes no version check because `FFI_ExtensionOptions` carries no version\nfield.\n\nCo-Authored-By: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ca8bdf479a34bc990185acd21c92effc202f8937",
      "old_mode": 33188,
      "old_path": "crates/core/src/context.rs",
      "new_id": "75bfed60161d5d03e9d24bd79e08d7c1d345a80e",
      "new_mode": 33188,
      "new_path": "crates/core/src/context.rs"
    },
    {
      "type": "modify",
      "old_id": "d3dc52fbbc87a198d954b95e938ecfc08ed29e4f",
      "old_mode": 33188,
      "old_path": "crates/util/src/lib.rs",
      "new_id": "5b31f77080093ccd115a6dca74acce705e01a458",
      "new_mode": 33188,
      "new_path": "crates/util/src/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "55f37afac9a05653f349fc76ad478180d32f09d9",
      "old_mode": 33188,
      "old_path": "python/tests/test_context.py",
      "new_id": "3c95835af342ba11707732169de273263a580cdb",
      "new_mode": 33188,
      "new_path": "python/tests/test_context.py"
    }
  ]
}
