)]}'
{
  "commit": "e7754de037fe6bc9910e1b09691c7d0ca2ee3057",
  "tree": "342bc70e0301330216b608b3ff241ffbc18afb00",
  "parents": [
    "0080cae388f6e6ec8d12b51138c6389e0a0c6e9b"
  ],
  "author": {
    "name": "Xuehai Pan",
    "email": "XuehaiPan@pku.edu.cn",
    "time": "Mon Feb 02 13:54:05 2026 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Feb 01 21:54:05 2026 -0800"
  },
  "message": "Revert internals destruction and add test for internals recreation (#5972)\n\n* Bump internals version\n\n* Prevent internals destruction before all pybind11 types are destroyed\n\n* Use Py_XINCREF and Py_XDECREF\n\n* Hold GIL before decref\n\n* Use weakrefs\n\n* Remove unused code\n\n* Move code location\n\n* Move code location\n\n* Move code location\n\n* Try add tests\n\n* Fix PYTHONPATH\n\n* Fix PYTHONPATH\n\n* Skip tests for subprocess\n\n* Revert to leak internals\n\n* Revert to leak internals\n\n* Revert \"Revert to leak internals\"\n\nThis reverts commit c5ec1cf8862b43c125bdaf582445f3cbb1347017.\nThis reverts commit 72c2e0aa9b481debd94557b629e86b954543d64b.\n\n* Revert internals version bump\n\n* Reapply to leak internals\n\nThis reverts commit 8f25a254e893817c2ed70d97cde7f62778a14de2.\n\n* Add re-entrancy detection for internals creation\n\nPrevent re-creation of internals after destruction during interpreter\nshutdown. If pybind11 code runs after internals have been destroyed,\nfail early with a clear error message instead of silently creating\nnew empty internals that would cause type lookup failures.\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n\n* Fix C++11/C++14 support\n\n* Add lock under multiple interpreters\n\n* Try fix tests\n\n* Try fix tests\n\n* Try fix tests\n\n* Update comments and assertion messages\n\n* Update comments and assertion messages\n\n* Update comments\n\n* Update lock scope\n\n* Use original pointer type for Windows\n\n* Change hard error to warning\n\n* Update lock scope\n\n* Update lock scope to resolve deadlock\n\n* Remove scope release of GIL\n\n* Update comments\n\n* Lock pp on reset\n\n* Mark content created after assignment\n\n* Update comments\n\n* Simplify implementation\n\n* Update lock scope when delete unique_ptr\n\n---------\n\nCo-authored-by: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "faaba38b8d6880e8fda016ff98298c7bfb353d20",
      "old_mode": 33188,
      "old_path": "docs/advanced/classes.rst",
      "new_id": "bfbaea60ab4daf7e0fc53a7c0038398bda936909",
      "new_mode": 33188,
      "new_path": "docs/advanced/classes.rst"
    },
    {
      "type": "modify",
      "old_id": "9b3e69f4dbee03cd4531d8010167c12179d5c9e2",
      "old_mode": 33188,
      "old_path": "include/pybind11/detail/internals.h",
      "new_id": "7cfa5da92124b91e437e23bd10cc503a75f9e216",
      "new_mode": 33188,
      "new_path": "include/pybind11/detail/internals.h"
    },
    {
      "type": "modify",
      "old_id": "ee932ad77a0b8e1052a63fef01b7b348ac7832bb",
      "old_mode": 33188,
      "old_path": "tests/env.py",
      "new_id": "8c06178307c7a87adbbda7aaceb57803f34f03d3",
      "new_mode": 33188,
      "new_path": "tests/env.py"
    },
    {
      "type": "modify",
      "old_id": "35d30abcf71a3217b7709737730b599b08fa710d",
      "old_mode": 33188,
      "old_path": "tests/test_custom_type_setup.cpp",
      "new_id": "15516b21b0922dd8b6eaa0d0aa08205f6640d43e",
      "new_mode": 33188,
      "new_path": "tests/test_custom_type_setup.cpp"
    },
    {
      "type": "modify",
      "old_id": "bb2865cade62c53d1e6f737b7be6ccaafe2046ce",
      "old_mode": 33188,
      "old_path": "tests/test_custom_type_setup.py",
      "new_id": "4c6b9510ae88b69093104653a5bcb576d23e5432",
      "new_mode": 33188,
      "new_path": "tests/test_custom_type_setup.py"
    },
    {
      "type": "modify",
      "old_id": "44877e772aa514b38e809160d61694471d8b52e1",
      "old_mode": 33188,
      "old_path": "tests/test_multiple_interpreters.py",
      "new_id": "56d303a36e2abc85639544a247465fe7a7c370b4",
      "new_mode": 33188,
      "new_path": "tests/test_multiple_interpreters.py"
    }
  ]
}
