)]}'
{
  "log": [
    {
      "commit": "37cf3878cdcf01d752b776e6eee3f4f220e7c9f6",
      "tree": "e3e63e0ab31784031d209613bef52df5f30a7952",
      "parents": [
        "333c0fd353ff119ed808b4f90d005b018ce22b8c"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Sat Oct 17 16:36:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 17 16:36:13 2026 +0800"
      },
      "message": "[Docs][Fix] Professional support (#1533)\n\nSigned-off-by: Jie-Kai Chang \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "333c0fd353ff119ed808b4f90d005b018ce22b8c",
      "tree": "8a883c1585faa09d132845bf8df8a66a6d550baa",
      "parents": [
        "f26c6893554d999bd74ac6bd61e4cacc1428280a"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Fri Oct 16 02:08:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 16 02:08:29 2026 +0800"
      },
      "message": "[Chore] Add PGP key for Jie-Kai Chang, remove AMD Dockerfile and hackathon task sheet (#1531)\n\nSigned-off-by: Jie-Kai Chang \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "f26c6893554d999bd74ac6bd61e4cacc1428280a",
      "tree": "176e8fee614cda135519b4f4cfef38fbd04a0e8a",
      "parents": [
        "e23c955cfca32a5c69bfd394cedf2eb1ddff7dc5"
      ],
      "author": {
        "name": "1hao",
        "email": "151126672+Howardisme@users.noreply.github.com",
        "time": "Thu Oct 15 09:43:00 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 09:43:00 2026 +0800"
      },
      "message": "docs(qdp): correct run_throughput_pipeline_py signature from float32_pipeline to dtype (#1503)\n\nCo-authored-by: Jie-Kai Chang \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "e23c955cfca32a5c69bfd394cedf2eb1ddff7dc5",
      "tree": "3e86d7af07f2835891f9d1f29b897b761294207b",
      "parents": [
        "603dd36bb525ba2923823844ea2bd4b73b3d7e01"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Wed Oct 14 14:18:15 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 14:18:15 2026 +0800"
      },
      "message": "[CI] Require two committer approvals before a PR can be merged (#1530)\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "603dd36bb525ba2923823844ea2bd4b73b3d7e01",
      "tree": "b36211a64e6da12dfc9bdc34df869f7d50bd90d5",
      "parents": [
        "49eb81ddfe66e267bbf8ff5ee3b3a8d0e4af47cf"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Wed Oct 14 13:59:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 13:59:13 2026 +0800"
      },
      "message": "[Website] Add Community over Code Glasgow 2026 hackathon post with Colab notebook and slides (#1513)\n\n* [Website] Add Community over Code Glasgow 2026 hackathon post with Colab notebook and slides\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e\n\n* update\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e\n\n* [Website] Format hackathon notebook with ruff\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e\n\n---------\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "49eb81ddfe66e267bbf8ff5ee3b3a8d0e4af47cf",
      "tree": "f2c6d373a2dcd7704f6cf7663be8a4f807516c39",
      "parents": [
        "4d454cf3d369126406b53fb425107640a4b6a05b"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Wed Oct 14 13:43:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 14 05:43:21 2026 +0000"
      },
      "message": "[CI] Fix the main ruleset so the PMC bypass takes effect (#1529)\n\n* [CI] Fix the main ruleset so the PMC bypass takes effect\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e\n\n* [CI] Run Auto-merge gate on the PR so its check lands on the PR head\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e\n\n---------\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "4d454cf3d369126406b53fb425107640a4b6a05b",
      "tree": "6a645461103b35cae6cd72a3f35ea1456b481927",
      "parents": [
        "2d94f8fbdbbb942b4920160a129ac752ccd761fe"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Wed Oct 14 02:42:00 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 18:42:00 2026 +0000"
      },
      "message": "[CI] Auto-merge gate for CI failures and PMC bypass ruleset for main (#1517)\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "2d94f8fbdbbb942b4920160a129ac752ccd761fe",
      "tree": "d294a6dfa6ae95c64644937d0923e76c55eb78e1",
      "parents": [
        "e6ba290ead032dbf84e70dc2469df648981e4298"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Wed Sep 23 09:03:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 23 09:03:25 2026 +0800"
      },
      "message": "[CI] Fix pre-commit failures from #1497 (#1499)\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "e6ba290ead032dbf84e70dc2469df648981e4298",
      "tree": "a5553731f09146c7b3ebb1e3003f496fded06bbc",
      "parents": [
        "75e8b5d4b80bce3e5eca1fa124a1a16cb27d46b0"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Wed Sep 23 02:21:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 22 18:21:54 2026 +0000"
      },
      "message": "[Website] Add Books/Talks, Reference Reading and Professional Support pages; split Powered By into Commercial and Academic Use (#1497)\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "75e8b5d4b80bce3e5eca1fa124a1a16cb27d46b0",
      "tree": "edd37c3eb3f594a9c2d9aaabccc5327c51e02169",
      "parents": [
        "55d7cbd28201164ea4fc2886198fb232220b39f3"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Tue Sep 22 09:35:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 22 09:35:30 2026 +0800"
      },
      "message": "[CI] Fix pre-commit failures from #1493 and #1494 (#1496)"
    },
    {
      "commit": "55d7cbd28201164ea4fc2886198fb232220b39f3",
      "tree": "9b0d833ae82818c63406f3a479e7e78de34a871b",
      "parents": [
        "317756ddd7e5f82f1ef071c96abba6674347401d"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Tue Sep 22 00:14:39 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 21 16:14:39 2026 +0000"
      },
      "message": "[CI] Update setup-uv and rust-toolchain pins to ASF-allowed versions (#1495)\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "317756ddd7e5f82f1ef071c96abba6674347401d",
      "tree": "95c6403e1cf474b6d297472ddd6cd235a8f16136",
      "parents": [
        "e10d84d2020302ccd1fdf9a040f65d24bd5f73a3"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Mon Sep 21 23:21:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 21 23:21:05 2026 +0800"
      },
      "message": "[CI] Require a committer approval before merging PRs, route Discussions to dev@ (#1494)\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "e10d84d2020302ccd1fdf9a040f65d24bd5f73a3",
      "tree": "1d08026c425f5901313a2c9ca7510747d549cb5b",
      "parents": [
        "9f860c738e1a7a1d775d452dbf1fd7e5c4c45159"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Mon Sep 21 22:47:31 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 21 22:47:31 2026 +0800"
      },
      "message": "[Website] Restructure navbar, add Powered By page, refresh homepage and community docs (#1493)\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "9f860c738e1a7a1d775d452dbf1fd7e5c4c45159",
      "tree": "2edf89bd6753cd6e2511ccea8269c71b0076186b",
      "parents": [
        "c176559841e99ec547142ae3f43238d8d0956129"
      ],
      "author": {
        "name": "こうき",
        "email": "kafka880407@gmail.com",
        "time": "Wed Sep 16 15:54:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 16 15:54:07 2026 +0800"
      },
      "message": "[Docs] Fix pr-policy-and-review-guidelines title (#1492)"
    },
    {
      "commit": "c176559841e99ec547142ae3f43238d8d0956129",
      "tree": "50ebd191a9ee9bc7ec468b58664b6e5d9064d22e",
      "parents": [
        "678d22d12afa82c6b318f386ff3f4f7425d4a59e"
      ],
      "author": {
        "name": "Vladimir Babin",
        "email": "vovababin@gmail.com",
        "time": "Thu Sep 10 17:04:11 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 10 17:04:11 2026 +0800"
      },
      "message": "[QDP] Normalize QuantumDataLoader encoding names to canonical case (#1475)\n\n* [QDP] Normalize QuantumDataLoader encoding names to canonical case\n\nThe builder validated encoding names case-insensitively but stored the\noriginal spelling, so a mixed-case name such as \"Amplitude\" passed\nbuilder validation and only failed later when iteration forwarded it to\nthe case-sensitive backend. Normalize the accepted name to its canonical\nlowercase form at both set sites, mirroring the existing .dtype()\nhandling.\n\nSigned-off-by: Vladimir Babin \u003cvovababin@gmail.com\u003e\n\n* [QDP] Make encoding-case tests table-driven; rename to test_loader_encoding.py\n\nAddress review feedback:\n- Convert case-normalization and rejection tests to @pytest.mark.parametrize\n- Rename test_loader_encoding_case.py -\u003e test_loader_encoding.py\n\n* Fix ruff PT006: pass parametrize argnames as a tuple\n\n---------\n\nSigned-off-by: Vladimir Babin \u003cvovababin@gmail.com\u003e"
    },
    {
      "commit": "678d22d12afa82c6b318f386ff3f4f7425d4a59e",
      "tree": "be4ec755bfb3ff2b656ea084a588bc256518bfe6",
      "parents": [
        "206ff2fe863f8bf7fc59f6bc938399ada842c8e3"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "vicwen@apache.org",
        "time": "Sun Aug 16 14:32:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Aug 16 14:32:13 2026 +0800"
      },
      "message": "[QDP] Fix streaming host-to-device copy size (#1464)\n\n* [QDP] Fix streaming host-to-device copy size\n\nSigned-off-by: viiccwen \u003cvicwen@apache.org\u003e\n\n* [QDP] Guard DLPack host length overflow\n\nSigned-off-by: viiccwen \u003cvicwen@apache.org\u003e\n\n---------\n\nSigned-off-by: viiccwen \u003cvicwen@apache.org\u003e"
    },
    {
      "commit": "206ff2fe863f8bf7fc59f6bc938399ada842c8e3",
      "tree": "13a207cb3b1390f9a85dc1f318c772cced561213",
      "parents": [
        "9109143c7b531b061059d007e6964caf6bf67099"
      ],
      "author": {
        "name": "ChenChen Lai",
        "email": "72776271+0lai0@users.noreply.github.com",
        "time": "Sat Aug 08 14:14:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 14:14:05 2026 +0800"
      },
      "message": "Add estimate_memory() for pipeline CPU/GPU footprint (#1454)"
    },
    {
      "commit": "9109143c7b531b061059d007e6964caf6bf67099",
      "tree": "6bb7814e209a92cf042c7d999eae5e9ef0e30858",
      "parents": [
        "9abce4b4d9d56efb68515de8ffc61324a32b4b5a"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "vicwen@apache.org",
        "time": "Sat Aug 08 14:05:22 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 14:05:22 2026 +0800"
      },
      "message": "docs: improve Python API reference UX (#1457)\n\nSigned-off-by: viiccwen \u003cvicwen@apache.org\u003e"
    },
    {
      "commit": "9abce4b4d9d56efb68515de8ffc61324a32b4b5a",
      "tree": "2dd2bab459a57b7d63604059d06d2a35533ed3ca",
      "parents": [
        "b5fd3d4c9f32a74fbff3662765fa23de49ecc609"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "vicwen@apache.org",
        "time": "Sat Aug 08 14:05:03 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 14:05:03 2026 +0800"
      },
      "message": "docs(qdp): improve generated Markdown rendering (#1456)\n\nSigned-off-by: viiccwen \u003cvicwen@apache.org\u003e"
    },
    {
      "commit": "b5fd3d4c9f32a74fbff3662765fa23de49ecc609",
      "tree": "51adafb904916de0f6a29d02913bff4a7b2a6fe1",
      "parents": [
        "f98c56fd198a3e67a566be5ee3bc8899c47f149e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Aug 08 11:48:40 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 11:48:40 2026 +0800"
      },
      "message": "chore(deps): bump quinn-proto from 0.11.14 to 0.11.16 in /qdp (#1455)\n\nBumps [quinn-proto](https://github.com/quinn-rs/quinn) from 0.11.14 to 0.11.16.\n- [Release notes](https://github.com/quinn-rs/quinn/releases)\n- [Commits](https://github.com/quinn-rs/quinn/compare/quinn-proto-0.11.14...quinn-proto-0.11.16)\n\n---\nupdated-dependencies:\n- dependency-name: quinn-proto\n  dependency-version: 0.11.16\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "f98c56fd198a3e67a566be5ee3bc8899c47f149e",
      "tree": "a177bcaa82b1f420f20dde597b03413d8452a456",
      "parents": [
        "8ea064c5bac7e3a8ef4e343958ec441e9b7342d0"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Aug 08 11:48:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 11:48:21 2026 +0800"
      },
      "message": "chore(deps-dev): bump setuptools from 80.9.0 to 83.0.0 (#1452)\n\nBumps [setuptools](https://github.com/pypa/setuptools) from 80.9.0 to 83.0.0.\n- [Release notes](https://github.com/pypa/setuptools/releases)\n- [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst)\n- [Commits](https://github.com/pypa/setuptools/compare/v80.9.0...v83.0.0)\n\n---\nupdated-dependencies:\n- dependency-name: setuptools\n  dependency-version: 83.0.0\n  dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "8ea064c5bac7e3a8ef4e343958ec441e9b7342d0",
      "tree": "0432915edb0f693b687920708e271b49528615f6",
      "parents": [
        "2b23495fe01a818baba1dbd2def409b4e997ce82"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Aug 08 11:47:44 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 11:47:44 2026 +0800"
      },
      "message": "chore(deps): bump pillow from 12.2.0 to 12.3.0 (#1446)\n\nBumps [pillow](https://github.com/python-pillow/Pillow) from 12.2.0 to 12.3.0.\n- [Release notes](https://github.com/python-pillow/Pillow/releases)\n- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)\n- [Commits](https://github.com/python-pillow/Pillow/compare/12.2.0...12.3.0)\n\n---\nupdated-dependencies:\n- dependency-name: pillow\n  dependency-version: 12.3.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "2b23495fe01a818baba1dbd2def409b4e997ce82",
      "tree": "1f1f247b19e76c46b6a32fd734f2c54d8f2c8f37",
      "parents": [
        "6c967cc11f973faf7c7b8e879af6e206b72ed958"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Aug 08 11:47:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 11:47:21 2026 +0800"
      },
      "message": "chore(deps-dev): bump torch from 2.12.0 to 2.13.0 in /qdp/qdp-python (#1444)\n\nBumps [torch](https://github.com/pytorch/pytorch) from 2.12.0 to 2.13.0.\n- [Release notes](https://github.com/pytorch/pytorch/releases)\n- [Changelog](https://github.com/pytorch/pytorch/blob/main/RELEASE.md)\n- [Commits](https://github.com/pytorch/pytorch/compare/v2.12.0...v2.13.0)\n\n---\nupdated-dependencies:\n- dependency-name: torch\n  dependency-version: 2.13.0\n  dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "6c967cc11f973faf7c7b8e879af6e206b72ed958",
      "tree": "d53888d6401bb8d7469a12c4f892597f3d39e0e1",
      "parents": [
        "794404510d52cdecf612b56ea81171906c92ffdf"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Aug 08 11:47:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 08 11:47:09 2026 +0800"
      },
      "message": "chore(deps): bump pyasn1 from 0.6.3 to 0.6.4 (#1453)\n\nBumps [pyasn1](https://github.com/pyasn1/pyasn1) from 0.6.3 to 0.6.4.\n- [Release notes](https://github.com/pyasn1/pyasn1/releases)\n- [Changelog](https://github.com/pyasn1/pyasn1/blob/main/CHANGES.rst)\n- [Commits](https://github.com/pyasn1/pyasn1/compare/v0.6.3...v0.6.4)\n\n---\nupdated-dependencies:\n- dependency-name: pyasn1\n  dependency-version: 0.6.4\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "794404510d52cdecf612b56ea81171906c92ffdf",
      "tree": "cda55c92dc36149504470b45c0769d1b46799a76",
      "parents": [
        "b9e33e662ef76557ffbeba18b4ddcec852c4e9b5"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "vicwen@apache.org",
        "time": "Sat Aug 01 10:42:33 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 01 10:42:33 2026 +0800"
      },
      "message": "chore(deps): update website dependencies (#1459)\n\nSigned-off-by: viiccwen \u003cvicwen@apache.org\u003e"
    },
    {
      "commit": "b9e33e662ef76557ffbeba18b4ddcec852c4e9b5",
      "tree": "e50521178e5d6fb0d627740aabbaf69b1cde93ce",
      "parents": [
        "e7af6f2da9d1e4f03a8e64f0d98ecbc7c2ca6413"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "vicwen@apache.org",
        "time": "Thu Jul 16 16:19:52 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 16 16:19:52 2026 +0800"
      },
      "message": "fix(qdp): apply shared max qubit validation (#1442)"
    },
    {
      "commit": "e7af6f2da9d1e4f03a8e64f0d98ecbc7c2ca6413",
      "tree": "0ea15db9876dc84c57a833f22c3e8b9d5e4d4685",
      "parents": [
        "d93533b60a79f96999ee33aa812cbccf43136fe0"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "vicwen@apache.org",
        "time": "Mon Jul 13 19:16:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 19:16:27 2026 +0800"
      },
      "message": "[MAHOUT-1438][Docs] Update QDP CUDA tensor dtype guidance for float32 angle and basis (#1439)\n\nSigned-off-by: viiccwen \u003cvicwen@apache.org\u003e"
    },
    {
      "commit": "d93533b60a79f96999ee33aa812cbccf43136fe0",
      "tree": "0a53d6bd060c16e139937d0f1db4cb57c5d1d50e",
      "parents": [
        "35a8526d9cb08669ee3989b801be74bea0216cf4"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "vicwen@apache.org",
        "time": "Fri Jul 10 23:19:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 23:19:29 2026 +0800"
      },
      "message": "add viiccwen committer in website (#1437)"
    },
    {
      "commit": "35a8526d9cb08669ee3989b801be74bea0216cf4",
      "tree": "68fccdbe59464afbcbbcb9b1145d20108feeec73",
      "parents": [
        "826c3abb57ba1d39930a7a0e8af57f5844f7304e"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Fri Jul 10 14:14:16 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 14:14:16 2026 +0900"
      },
      "message": "[Bug][QDP] Align Iris GPU training path with sibling pipelines (real dtype + leaf weights) (#1412)"
    },
    {
      "commit": "826c3abb57ba1d39930a7a0e8af57f5844f7304e",
      "tree": "1b69021e24411e0871ea51e6753ee01f7ae63afd",
      "parents": [
        "58e4aff32c52e115b8fffd66eb84756b74e303f3"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Sun Jul 05 21:42:35 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jul 05 20:42:35 2026 +0800"
      },
      "message": "[MAHOUT-1414][QDP] Expose native cuda_available() and gate GPU tests on it (#1416)\n\nFollow-up to #1321 (addresses #1414). After #1321, `_qdp` can build and\nimport without the CUDA toolkit (stub runtime), so \"extension importable\"\nno longer implies a usable GPU. The test suite gated GPU tests on\n`torch.cuda.is_available()`, a proxy that is wrong on this PR\u0027s headline\nscenario -- a GPU host with PyTorch but no toolkit, where `_qdp` is a stub\nbuild yet torch still reports a device.\n\n- qdp-core: add `cuda_runtime_available()`, which queries\n  `cudaGetDeviceCount` (false in a stub build via the existing 999 sentinel\n  stub, and on hosts with no device). Re-exported from the crate root.\n- _qdp: expose it as `_qdp.cuda_available()`.\n- qumat_qdp: add `is_cuda_available()`, mirroring `is_triton_amd_available()`,\n  as the single Python source of truth.\n- testing/conftest: gate the `@pytest.mark.gpu` auto-skip on the native\n  signal (falling back to torch only if the helper is absent).\n- test_fallback: coverage that runs on a stub build too, guarding that\n  querying availability returns a bool without aborting.\n\nVerified on GPU (tests run and pass) and with CUDA hidden (tests skip);\nfull Rust suite, clippy --all-features, ruff, and ty all clean."
    },
    {
      "commit": "58e4aff32c52e115b8fffd66eb84756b74e303f3",
      "tree": "00c28d5c6839f6d7c09a8dc17dbe9adf315dba67",
      "parents": [
        "359f9590de355afe44131250327d3df68993940c"
      ],
      "author": {
        "name": "ChenChen Lai",
        "email": "72776271+0lai0@users.noreply.github.com",
        "time": "Sat Jul 04 16:13:01 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jul 04 16:13:01 2026 +0800"
      },
      "message": "[Testing][QDP] f32 Parquet fidelity tests and benchmark (#1422)\n\n* f32 Parquet fidelity tests and benchmark\n\n* fix error\n\n* address comment"
    },
    {
      "commit": "359f9590de355afe44131250327d3df68993940c",
      "tree": "3d53e78febaaf9ab2846132ef9a4d5a4061904ac",
      "parents": [
        "dccc97dbad6ca6c611caad25f82d96f64591f682"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Fri Jul 03 13:17:15 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 12:17:15 2026 +0800"
      },
      "message": "refactor(qdp): rename validate_tensor to validate_tensor_cpu and drop redundant check (#1415)"
    },
    {
      "commit": "dccc97dbad6ca6c611caad25f82d96f64591f682",
      "tree": "c61bfc8ac1e1b797f20b7ddb2e1c626c55763e65",
      "parents": [
        "44b04fbee127c1f5e6063375b571311cab054465"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "viiccwen@gmail.com",
        "time": "Thu Jul 02 19:06:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 19:06:54 2026 +0800"
      },
      "message": "feat: add local docs versioning validation (#1427)"
    },
    {
      "commit": "44b04fbee127c1f5e6063375b571311cab054465",
      "tree": "5b95b3462682f1b7edc514d681236b9e8e91b2e5",
      "parents": [
        "ca026635d9a0bb7f53f17f37dda748c7eecc51f0"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Tue Jun 30 08:30:08 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 08:30:08 2026 +0800"
      },
      "message": "[Website] Remove News page kicker (#1428)\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "ca026635d9a0bb7f53f17f37dda748c7eecc51f0",
      "tree": "46795ffa34901b1c7531d99b61c544606507bd6f",
      "parents": [
        "0474f57ef274af3bc4b94c5ecaa9c2dede658c3c"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "viiccwen@gmail.com",
        "time": "Mon Jun 29 22:42:14 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 22:42:14 2026 +0800"
      },
      "message": "ci: validate website build for API docs changes (#1426)"
    },
    {
      "commit": "0474f57ef274af3bc4b94c5ecaa9c2dede658c3c",
      "tree": "ad193435bdd479dd6a2ab1d22f452411d34ca5ed",
      "parents": [
        "f1c7b4aa9ce33235ad1bc5391b0edeb095d50971"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Mon Jun 29 13:11:15 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 13:11:15 2026 +0800"
      },
      "message": "[Website] Split blog post pagination by content type (#1425)\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "f1c7b4aa9ce33235ad1bc5391b0edeb095d50971",
      "tree": "8008f3f635d2f99ad363d6dbf4f6f87b62f1c563",
      "parents": [
        "e53b879a87e6ce42a7e3daf16856a128b74b517e"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Mon Jun 29 12:45:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 12:45:09 2026 +0800"
      },
      "message": "[Website] Add News dropdown navigation (#1424)\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "e53b879a87e6ce42a7e3daf16856a128b74b517e",
      "tree": "bd52f54eb4e38a2ff8c6b000061e6fd9bd8e0697",
      "parents": [
        "3e631d919147335d361a79e23aaf01878a1526fa"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Mon Jun 29 03:40:16 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 03:40:16 2026 +0800"
      },
      "message": "[Website] Split blog and meeting minutes listings (#1423)\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "3e631d919147335d361a79e23aaf01878a1526fa",
      "tree": "6e2bf286475b6c48f9d55226f2de28b59f8aa5cc",
      "parents": [
        "de484ad8d1d1a5c231b2c6977e2308a1bfa42a3b"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Sun Jun 28 20:40:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 28 20:40:30 2026 +0800"
      },
      "message": "[Website] Rename dev docs version to master (#1421)\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "de484ad8d1d1a5c231b2c6977e2308a1bfa42a3b",
      "tree": "d6ccf5faa34711d69530a62362883644a1ba5f32",
      "parents": [
        "a17627f5b00d6c229af397fdae81c5dec9decbdd"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Sun Jun 28 20:00:48 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 28 20:00:48 2026 +0800"
      },
      "message": "[Website] Update QuMat release blogs and community roster (#1420)\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "a17627f5b00d6c229af397fdae81c5dec9decbdd",
      "tree": "00b3e1d0f39530d01888a91caecf108eb4af69f7",
      "parents": [
        "cb8e2f066660dc548b6e6d57c0a00ff71f9f0a33"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Sun Jun 28 14:38:47 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 28 14:38:47 2026 +0800"
      },
      "message": "[Website] Add Qumat 0.5.0 release blog (#1419)\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "cb8e2f066660dc548b6e6d57c0a00ff71f9f0a33",
      "tree": "869896b45a20c548a2c22d6b2fe2504ea567ed48",
      "parents": [
        "96555a8a838eb2eb68a000551c29c232ea94c009"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Sun Jun 28 13:35:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 28 13:35:32 2026 +0800"
      },
      "message": "[Website] Redesign news index and blog post pages (#1418)\n\n* [Docs] Add 0.6 website version snapshot\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e\n\n* [Website] Redesign news index and blog post pages\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e\n\n---------\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "96555a8a838eb2eb68a000551c29c232ea94c009",
      "tree": "8cfd92942c9d8704e052144413b74d80c9f60fa1",
      "parents": [
        "205ce75f6b95c52ee02e14fdaa0f0ecd995c6cb9"
      ],
      "author": {
        "name": "Jie-Kai Chang",
        "email": "jiekaichang@apache.org",
        "time": "Sun Jun 28 11:16:10 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 28 11:16:10 2026 +0800"
      },
      "message": "[Docs] Add 0.6 website version snapshot (#1417)\n\nSigned-off-by: 400Ping \u003cjiekaichang@apache.org\u003e"
    },
    {
      "commit": "205ce75f6b95c52ee02e14fdaa0f0ecd995c6cb9",
      "tree": "f6216362184b71ad853118b45fac43dbf082c3c2",
      "parents": [
        "5d424cde8316a806a3cb6b3ca206b10efbb7f123"
      ],
      "author": {
        "name": "Andrew Musselman",
        "email": "akm@apache.org",
        "time": "Fri Jun 26 11:56:14 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 27 02:56:14 2026 +0800"
      },
      "message": "fix(qdp-core): link cudart locally and stub FFI when toolkit is absent  (#1321)\n\n* fix(qdp): own -lcudart linkage in qdp-core, gate stubs on qdp_no_cuda\n\n* fix(qdp): check nvcc exit status and rerun build scripts on PATH\n\nAddress review feedback on the CUDA-detection probe shared by qdp-core\nand qdp-kernels build scripts:\n\n- output().is_ok() was true even when nvcc exited non-zero, so a\n  half-installed toolkit would set has_cuda \u003d true and fall through to a\n  link error. Use .map(|o| o.status.success()).unwrap_or(false) in both\n  scripts so the two probes can\u0027t disagree.\n- Add cargo:rerun-if-env-changed\u003dPATH so installing the toolkit after a\n  stub build re-triggers detection without `cargo clean`.\n\nAlso run cargo fmt on the no_cuda_stubs module in cuda_ffi.rs to clear\nthe pre-commit fmt hook (was failing the test job).\n\n* test(qdp): skip GPU tests when no CUDA device is available\n\nThis PR lets _qdp build and import without the CUDA toolkit (stub CUDA\nRuntime symbols), so \"extension importable\" no longer implies a usable\nGPU. The conftest auto-skip only checked extension availability, so on a\nGPU-less runner the @pytest.mark.gpu tests ran against the stub engine\nand aborted the pytest worker (SIGABRT) instead of being skipped.\n\n- conftest: add a torch.cuda.is_available() probe and skip\n  @pytest.mark.gpu tests when no device is present, matching the inline\n  torch.cuda.is_available() guards already used across the QDP modules.\n  The existing \"extension missing\" skip behaviour is unchanged.\n- mark test_synthetic_loader_batch_count @pytest.mark.gpu: it iterates a\n  synthetic loader, which encodes on the GPU.\n\nVerified locally: with CUDA hidden the previously-crashing tests skip\ncleanly (0 failures across testing/qdp + testing/qdp_python); with a GPU\npresent they run and pass.\n\n---------\n\nCo-authored-by: Hsien-Cheng Huang \u003chcr@apache.org\u003e"
    },
    {
      "commit": "5d424cde8316a806a3cb6b3ca206b10efbb7f123",
      "tree": "e96c4cb1ccd0b918bdb835a100a736ed6ca2e219",
      "parents": [
        "8379a84eca341bf664cb8ff30e544b821da52b6c"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Sat Jun 27 02:52:44 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 27 02:52:44 2026 +0800"
      },
      "message": "Update CODEOWNERS entries for removing ryankert01 from some entries"
    },
    {
      "commit": "8379a84eca341bf664cb8ff30e544b821da52b6c",
      "tree": "6fb4d7d6407f035e16c6530116eeac87c3578020",
      "parents": [
        "08a4852f285f364748bac89767cb8f97a475b9b1"
      ],
      "author": {
        "name": "ChenChen Lai",
        "email": "72776271+0lai0@users.noreply.github.com",
        "time": "Fri Jun 26 22:22:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 22:22:54 2026 +0800"
      },
      "message": "[Feature][QDP] Pipeline file load respects PipelineConfig.dtype (#1407)\n\n* [Feature][QDP] Pipeline file load respects PipelineConfig.dtype\n\n* [Feature][QDP] Pipeline file load respects PipelineConfig.dtype\n\n* address comment"
    },
    {
      "commit": "08a4852f285f364748bac89767cb8f97a475b9b1",
      "tree": "e80439270a66cf1d3d9aaf6be38b286117793cbd",
      "parents": [
        "415c8da0db4b8914b9441eb3e18ff209537aa66b"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Mon Jun 22 22:40:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 22:40:02 2026 +0800"
      },
      "message": "[ci] Add stale PR workflow (#1411)"
    },
    {
      "commit": "415c8da0db4b8914b9441eb3e18ff209537aa66b",
      "tree": "cfdb1f81e22b84eb4b5266371dcbb28079dfa9c0",
      "parents": [
        "91335ed1939a1b8f6c5eb5d7451d2d21e77da8ab"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 22 00:08:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 00:08:09 2026 +0800"
      },
      "message": "chore(deps): bump webpack-dev-server from 5.2.4 to 5.2.5 in /website (#1408)\n\nBumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 5.2.4 to 5.2.5.\n- [Release notes](https://github.com/webpack/webpack-dev-server/releases)\n- [Changelog](https://github.com/webpack/webpack-dev-server/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/webpack/webpack-dev-server/compare/v5.2.4...v5.2.5)\n\n---\nupdated-dependencies:\n- dependency-name: webpack-dev-server\n  dependency-version: 5.2.5\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "91335ed1939a1b8f6c5eb5d7451d2d21e77da8ab",
      "tree": "ab125f831ac826382e9ff5368ea6cdb808a94984",
      "parents": [
        "de4ec14f6b2cff88b7f6209489d38f9d5563ca68"
      ],
      "author": {
        "name": "ChenChen Lai",
        "email": "72776271+0lai0@users.noreply.github.com",
        "time": "Thu Jun 18 17:51:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 17:51:29 2026 +0800"
      },
      "message": "[Bug][QDP] Fix List\u003cT\u003e readers failing on nullable outer rows (#1402)\n\n* Fix List\u003cT\u003e readers failing on nullable outer rows\n\n* Fix ParquetStreamingReader rejecting all-null leading batches"
    },
    {
      "commit": "de4ec14f6b2cff88b7f6209489d38f9d5563ca68",
      "tree": "0f8ec883e852ed089ace85a68dac21d6b4c63228",
      "parents": [
        "8a4ee363292346e510fb4a3ba029229e15f73c5a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jun 18 17:50:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 17:50:25 2026 +0800"
      },
      "message": "chore(deps): bump ws from 7.5.10 to 7.5.11 in /website (#1405)\n\nBumps [ws](https://github.com/websockets/ws) from 7.5.10 to 7.5.11.\n- [Release notes](https://github.com/websockets/ws/releases)\n- [Commits](https://github.com/websockets/ws/compare/7.5.10...7.5.11)\n\n---\nupdated-dependencies:\n- dependency-name: ws\n  dependency-version: 7.5.11\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "8a4ee363292346e510fb4a3ba029229e15f73c5a",
      "tree": "3995615518fcee5fd3810da39cb189d147512779",
      "parents": [
        "9d4c85fd7293068134c40fa32dd789cfb32e88c3"
      ],
      "author": {
        "name": "Guan-Ming (Wesley) Chiu",
        "email": "105915352+guan404ming@users.noreply.github.com",
        "time": "Thu Jun 18 17:47:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 17:47:57 2026 +0800"
      },
      "message": "Update CODEOWNERS to remove Guan-Ming\n\nRemoved @guan404ming from CODEOWNERS for various directories."
    },
    {
      "commit": "9d4c85fd7293068134c40fa32dd789cfb32e88c3",
      "tree": "8ef4ba7e0770957c0110f6426462f43d68aa025b",
      "parents": [
        "28bab6e869452def1687c602e034a60e10737a24"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jun 16 15:20:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 15:20:42 2026 +0800"
      },
      "message": "chore(deps): bump launch-editor from 2.12.0 to 2.14.1 in /website (#1406)\n\nBumps [launch-editor](https://github.com/vitejs/launch-editor) from 2.12.0 to 2.14.1.\n- [Commits](https://github.com/vitejs/launch-editor/compare/v2.12.0...v2.14.1)\n\n---\nupdated-dependencies:\n- dependency-name: launch-editor\n  dependency-version: 2.14.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "28bab6e869452def1687c602e034a60e10737a24",
      "tree": "fca0245dbe1b2dd1cf5b7366e487c1a5b17a7d85",
      "parents": [
        "69568a0173f8973f6b74ef7706aa3b5755bf98ae"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "viiccwen@gmail.com",
        "time": "Tue Jun 16 11:06:34 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 11:06:34 2026 +0800"
      },
      "message": "docs: add QDP source API docstrings (#1404)"
    },
    {
      "commit": "69568a0173f8973f6b74ef7706aa3b5755bf98ae",
      "tree": "a518548b1658ef841d5274050dacb90dee9dbcfd",
      "parents": [
        "b20959e40dce7eef1fb5bad3e0a36f53ebf9aba9"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "viiccwen@gmail.com",
        "time": "Tue Jun 16 11:05:08 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 11:05:08 2026 +0800"
      },
      "message": "[Feature] Generate Python API docs from module discovery (#1392)\n\n* feat(website): generate Python API docs from module discovery\n\nRefs #1347\n\n* docs: simplify QDP API doc generation\n\n* chore: align script coding style\n\n* ci: install uv for website builds"
    },
    {
      "commit": "b20959e40dce7eef1fb5bad3e0a36f53ebf9aba9",
      "tree": "5906aec1f8e3ef241b6dff9cae6eac39ff82816e",
      "parents": [
        "c4da8c7ab76094f9d5acb8db3d9374f6b898f0b1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 15 15:24:20 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 15:24:20 2026 +0800"
      },
      "message": "chore(deps): bump black from 23.12.1 to 26.3.1 (#1403)\n\nBumps [black](https://github.com/psf/black) from 23.12.1 to 26.3.1.\n- [Release notes](https://github.com/psf/black/releases)\n- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)\n- [Commits](https://github.com/psf/black/compare/23.12.1...26.3.1)\n\n---\nupdated-dependencies:\n- dependency-name: black\n  dependency-version: 26.3.1\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "c4da8c7ab76094f9d5acb8db3d9374f6b898f0b1",
      "tree": "befdef911ee8736478aef4ad0593edf751a7b6df",
      "parents": [
        "3692e694c56b86524472ff8e097a2e348e60b2f2"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "viiccwen@gmail.com",
        "time": "Mon Jun 15 10:15:51 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 10:15:51 2026 +0800"
      },
      "message": "docs: add pydoc-markdown API generation config (#1381)"
    },
    {
      "commit": "3692e694c56b86524472ff8e097a2e348e60b2f2",
      "tree": "72f0808473c022d7e58b747221fa6bbf4733cba9",
      "parents": [
        "6d7b82ff2cef111a48c574d8cfd8c037781e6a2e"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Sat Jun 13 00:21:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 13 00:21:13 2026 +0800"
      },
      "message": "Change community meeting frequency to monthly (#1400)\n\n* Change community meeting frequency to monthly\n\nUpdated the frequency of the community meeting from biweekly to monthly.\n\n* Update index.md\n\n* Update versioned community meeting docs\n\n* Keep version 0.4 community meeting docs unchanged"
    },
    {
      "commit": "6d7b82ff2cef111a48c574d8cfd8c037781e6a2e",
      "tree": "2a676c9a3c1edd146799bd7697e7249f96f24722",
      "parents": [
        "bd1a29397527fc3412a1267d1d0fb0cac92f8583"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jun 12 01:08:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 01:08:07 2026 +0800"
      },
      "message": "chore(deps-dev): bump torch from 2.8.0 to 2.12.0 in /qdp/qdp-python (#1397)\n\nBumps [torch](https://github.com/pytorch/pytorch) from 2.8.0 to 2.12.0.\n- [Release notes](https://github.com/pytorch/pytorch/releases)\n- [Changelog](https://github.com/pytorch/pytorch/blob/main/RELEASE.md)\n- [Commits](https://github.com/pytorch/pytorch/compare/v2.8.0...v2.12.0)\n\n---\nupdated-dependencies:\n- dependency-name: torch\n  dependency-version: 2.12.0\n  dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "bd1a29397527fc3412a1267d1d0fb0cac92f8583",
      "tree": "951daab19d7e26575ba1d58aca9f4ecefe5eb09f",
      "parents": [
        "214b02dcb7b32412246c0fa98d3b02cfeb1e7872"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri Jun 12 01:03:39 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 01:03:39 2026 +0800"
      },
      "message": "chore(deps): bump shell-quote from 1.8.3 to 1.8.4 in /website (#1395)\n\nBumps [shell-quote](https://github.com/ljharb/shell-quote) from 1.8.3 to 1.8.4.\n- [Changelog](https://github.com/ljharb/shell-quote/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/ljharb/shell-quote/compare/v1.8.3...v1.8.4)\n\n---\nupdated-dependencies:\n- dependency-name: shell-quote\n  dependency-version: 1.8.4\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "214b02dcb7b32412246c0fa98d3b02cfeb1e7872",
      "tree": "101d916ae2e5f7c6d6cf6482ff8dff5f794d9ab2",
      "parents": [
        "0076003b0777ade5ae4d2e8ad9b2e8b0c83a3cd3"
      ],
      "author": {
        "name": "ChenChen Lai",
        "email": "72776271+0lai0@users.noreply.github.com",
        "time": "Thu Jun 11 17:11:06 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 16:11:06 2026 +0800"
      },
      "message": "[Feature][QDP]ParquetReader generic over f32/f64 with Arrow cast (#1393)\n\n* ParquetReader generic over f32/f64 with Arrow cast\n\n* address comment"
    },
    {
      "commit": "0076003b0777ade5ae4d2e8ad9b2e8b0c83a3cd3",
      "tree": "a8fee4b0aaa44cd8351cad2af09c7db373fcc193",
      "parents": [
        "b22bbdcdba6d0b19bc4f56b23107309b0bf41710"
      ],
      "author": {
        "name": "aloha1357",
        "email": "64310247+aloha1357@users.noreply.github.com",
        "time": "Tue Jun 09 20:24:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 02:24:47 2026 +0800"
      },
      "message": "[QDP] Pr1 phase kernel opt (#1386)\n\n* feat(qdp): optimize phase kernel divergence and hoist constant mem computation\n\n* test(qdp): add phase encoding tests and benchmark script\n\n---------\n\nCo-authored-by: Ryan Huang \u003chcr@apache.org\u003e"
    },
    {
      "commit": "b22bbdcdba6d0b19bc4f56b23107309b0bf41710",
      "tree": "9d688c079e5283003455b678a364899445180e13",
      "parents": [
        "472061900967c7ab2f2b1f44ed70059d904623a2"
      ],
      "author": {
        "name": "botsz",
        "email": "22925483+botszhuang@users.noreply.github.com",
        "time": "Wed Jun 10 02:17:38 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 02:17:38 2026 +0800"
      },
      "message": "perf(qdp): inline norm calculation in phase kernel loop for 5% speedup (#1380)\n\n* perf(qdp): inline norm calculation in phase kernel loop for 5% speedup\n\n* Potential fix for pull request finding\n\nCo-authored-by: Copilot Autofix powered by AI \u003c175728472+Copilot@users.noreply.github.com\u003e\n\n* fix: remove trailing whitespace in phase.cu\n\n---------\n\nCo-authored-by: Copilot Autofix powered by AI \u003c175728472+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "472061900967c7ab2f2b1f44ed70059d904623a2",
      "tree": "decedddae00f0ab75c93dac6f2db07916c463600",
      "parents": [
        "aaf3f6f7efc3ff0db6302550c118707deddd89d8"
      ],
      "author": {
        "name": "Trevor Grant",
        "email": "trevor.d.grant@gmail.com",
        "time": "Tue Jun 09 08:17:56 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 08:17:56 2026 -0500"
      },
      "message": "Change Trevor Grant\u0027s status to Emeritus PMC\n\nUpdated Trevor Grant\u0027s status to Emeritus PMC."
    },
    {
      "commit": "aaf3f6f7efc3ff0db6302550c118707deddd89d8",
      "tree": "448f22d6979c38c2972fbd590c973d9511de1d75",
      "parents": [
        "d9155fae9877554f9213c9618125f0dcca649fc4"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "viiccwen@gmail.com",
        "time": "Sun Jun 07 19:06:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 07 19:06:54 2026 +0800"
      },
      "message": "docs: remove obsolete ADR tracking files (#1384)"
    },
    {
      "commit": "d9155fae9877554f9213c9618125f0dcca649fc4",
      "tree": "580e9fcdc2fccc327d969df3592415054f91167c",
      "parents": [
        "14844084d5d02da0dd550a8b79afb4a8180ec6d9"
      ],
      "author": {
        "name": "ChenChen Lai",
        "email": "72776271+0lai0@users.noreply.github.com",
        "time": "Sat Jun 06 15:11:10 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 06 14:11:10 2026 +0800"
      },
      "message": "refactor(qdp-core): generic DataReader\u003cT\u003e with FloatElem (#1343)\n\n* refactor(qdp-core): generic DataReader\u003cT\u003e with FloatElem\n\n* add test"
    },
    {
      "commit": "14844084d5d02da0dd550a8b79afb4a8180ec6d9",
      "tree": "17cacbe1143a81c03d71ebcf23b548ebf4df40ea",
      "parents": [
        "9b5e312e67d5356dfec281417f8dbdff94610b12"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sat Jun 06 14:10:36 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 06 14:10:36 2026 +0800"
      },
      "message": "chore(deps-dev): bump pyarrow from 22.0.0 to 23.0.1 in /qdp/qdp-python (#1378)\n\nBumps [pyarrow](https://github.com/apache/arrow) from 22.0.0 to 23.0.1.\n- [Release notes](https://github.com/apache/arrow/releases)\n- [Commits](https://github.com/apache/arrow/compare/apache-arrow-22.0.0...apache-arrow-23.0.1)\n\n---\nupdated-dependencies:\n- dependency-name: pyarrow\n  dependency-version: 23.0.1\n  dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "9b5e312e67d5356dfec281417f8dbdff94610b12",
      "tree": "d7456be8098d1545120bae51e0f7662bdd8b3f85",
      "parents": [
        "38916d32aacf9039e236578059aa6dadd3e2bfde"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Sat Jun 06 14:10:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 06 14:10:17 2026 +0800"
      },
      "message": "ci(wheel-build): tighten and speed up wheel build workflow (#1376)\n\n* ci(wheel-build): tighten and speed up wheel build workflow\n\n- Add paths filters so wheel builds only run when qumat/qdp or\n  packaging files change (website/docs-only PRs skip the CUDA build)\n- Add concurrency group to cancel superseded PR runs\n- Collapse the 3-version matrix into a single maturin invocation so\n  the CUDA toolkit and gcc-toolset are installed once instead of 3x\n- Remove the silent QDP_NO_CUDA fallback: a green wheel build now\n  always means real CUDA kernels were compiled (inspection of recent\n  run logs showed the fallback path has never legitimately fired)\n- Validate artifacts before upload: twine check for all dists, plus\n  import smoke tests (qumat, and each qumat-qdp wheel in a matching\n  per-version venv asserting the Rust extension loads)\n- Define the CUDA version once at the top of the build script\n\n* ci(wheel-build): derive CUDA package version, cover packaged root files in paths filter\n\n- Derive CUDA_PKG_VER from CUDA_VER so a future CUDA bump cannot\n  leave the two out of sync\n- Add README.md and LICENSE to the paths filters: both are packaged\n  into the qumat sdist/wheel, so changes to them should run the\n  build and twine check\n\n* ci(wheel-build): provision smoke-test Pythons via setup-python, trim comments\n\nInstall Python 3.10-3.12 with setup-python so the smoke-test venvs use\ndeterministic, cached interpreters instead of uv downloading toolchains\nat runtime (addresses review feedback)."
    },
    {
      "commit": "38916d32aacf9039e236578059aa6dadd3e2bfde",
      "tree": "1cb2a75bf798bcf4fd284562e264c10377fdbfbe",
      "parents": [
        "d64a9f3878480923eff4d7e6366d09a55f31a60d"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Sat Jun 06 00:28:34 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 06 00:28:34 2026 +0800"
      },
      "message": "fix(website): serve author avatar as local asset instead of GitHub hotlink (#1377)\n\nASF infra does not allow hotlinking external images, so the GitHub\navatar URL fails to load on the published site. Download the avatar\ninto website/static/img/authors/ and reference it locally."
    },
    {
      "commit": "d64a9f3878480923eff4d7e6366d09a55f31a60d",
      "tree": "86daa88d9759796d92a7d8982ab49a898fb2d3e4",
      "parents": [
        "cf043a2535e04a369baa7730e873bf2e659375aa"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Fri Jun 05 23:33:03 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 23:33:03 2026 +0800"
      },
      "message": "fix(website): resolve npm audit vulnerabilities and upgrade Docusaurus to 3.10.1 (#1375)\n\n* fix(website): resolve npm audit vulnerabilities and upgrade Docusaurus to 3.10.1\n\n- Add npm overrides for serialize-javascript (\u003e\u003d7.0.5, fixes GHSA-5c6j-r48x-rmvq\n  RCE and GHSA-qj8w-gfj5-8c6v DoS) and uuid under sockjs (\u003e\u003d11.1.1, fixes\n  GHSA-w5hq-g745-h8pq), clearing all 22 audit findings\n- Upgrade @docusaurus/* 3.9.2 -\u003e 3.10.1\n- Add @docusaurus/faster, required by future.v4 in Docusaurus 3.10\n\n* fix(website): pin @docusaurus/faster to exact version like other @docusaurus packages"
    },
    {
      "commit": "cf043a2535e04a369baa7730e873bf2e659375aa",
      "tree": "4ace508ce5a9c4543ff30d6fdbf9b3ae31e4442f",
      "parents": [
        "25ce84855db68c9dd1773197214305359bd888fa"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Thu Jun 04 12:34:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 12:34:28 2026 +0800"
      },
      "message": "fix(qdp): add dtype support to QdpBenchmark; default f64 (#1366)\n\nThe Rust binding run_throughput_pipeline_py already accepts a dtype\nparameter (defaulting to \u0027f64\u0027) but QdpBenchmark in api.py never\nexposed it — the field was missing from __init__ and there was no\nbuilder method. A stale attempt at passing dtype\u003d\u0027f32\u0027 unconditionally\ncaused a TypeError on any QdpBenchmark call against a built extension\nthat predated the dtype parameter.\n\nChanges:\n- Add _dtype\u003d\u0027f64\u0027 field to QdpBenchmark.__init__\n- Add .dtype(\u0027f32\u0027|\u0027f64\u0027) builder method with validation and docstring\n- Pass self._dtype to both Rust call sites (_run_throughput_rust and\n  _run_latency_rust); f32 activates the zero-copy batch path where the\n  encoding supports it, falling back to f64 inside Rust otherwise"
    },
    {
      "commit": "25ce84855db68c9dd1773197214305359bd888fa",
      "tree": "ed43712458a13242e7225843640e9a38fc33ddc4",
      "parents": [
        "2174a66a55342033d7c386721a173cd438b0754a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jun 04 12:33:41 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 12:33:41 2026 +0800"
      },
      "message": "chore(deps): bump qs and express in /website (#1333)\n\nBumps [qs](https://github.com/ljharb/qs) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.\n\nUpdates `qs` from 6.14.2 to 6.15.2\n- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/ljharb/qs/compare/v6.14.2...v6.15.2)\n\nUpdates `express` from 4.22.1 to 4.22.2\n- [Release notes](https://github.com/expressjs/express/releases)\n- [Changelog](https://github.com/expressjs/express/blob/v4.22.2/History.md)\n- [Commits](https://github.com/expressjs/express/compare/v4.22.1...v4.22.2)\n\n---\nupdated-dependencies:\n- dependency-name: qs\n  dependency-version: 6.15.2\n  dependency-type: indirect\n- dependency-name: express\n  dependency-version: 4.22.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "2174a66a55342033d7c386721a173cd438b0754a",
      "tree": "25f98f4edf95e9e06b8062acc62228e2cb8b20b4",
      "parents": [
        "60654708dda0501e6ffa62f0b00145aba159dc16"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jun 04 12:33:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 12:33:29 2026 +0800"
      },
      "message": "chore(deps): bump webpack-dev-server from 5.2.3 to 5.2.4 in /website (#1328)\n\nBumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 5.2.3 to 5.2.4.\n- [Release notes](https://github.com/webpack/webpack-dev-server/releases)\n- [Changelog](https://github.com/webpack/webpack-dev-server/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/webpack/webpack-dev-server/compare/v5.2.3...v5.2.4)\n\n---\nupdated-dependencies:\n- dependency-name: webpack-dev-server\n  dependency-version: 5.2.4\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "60654708dda0501e6ffa62f0b00145aba159dc16",
      "tree": "4e5264585900c154f2d97106555bef5570292dd2",
      "parents": [
        "1b60a06ae351a36ab1768daa3e33cb7162843929"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jun 04 12:33:10 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 12:33:10 2026 +0800"
      },
      "message": "chore(deps): bump idna from 3.11 to 3.15 (#1327)\n\nBumps [idna](https://github.com/kjd/idna) from 3.11 to 3.15.\n- [Release notes](https://github.com/kjd/idna/releases)\n- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md)\n- [Commits](https://github.com/kjd/idna/compare/v3.11...v3.15)\n\n---\nupdated-dependencies:\n- dependency-name: idna\n  dependency-version: \u00273.15\u0027\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "1b60a06ae351a36ab1768daa3e33cb7162843929",
      "tree": "0016bf2f5b99f3f96eeaff43df302b6c9317b3b0",
      "parents": [
        "b4603c10c738fda3a619132509b2d33af66ecd0b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Jun 04 12:32:47 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 12:32:47 2026 +0800"
      },
      "message": "chore(deps): bump idna from 3.11 to 3.15 in /qdp/qdp-python (#1326)\n\nBumps [idna](https://github.com/kjd/idna) from 3.11 to 3.15.\n- [Release notes](https://github.com/kjd/idna/releases)\n- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md)\n- [Commits](https://github.com/kjd/idna/compare/v3.11...v3.15)\n\n---\nupdated-dependencies:\n- dependency-name: idna\n  dependency-version: \u00273.15\u0027\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "b4603c10c738fda3a619132509b2d33af66ecd0b",
      "tree": "a708918320c97b5eff47abc1ea672ac3e3affc11",
      "parents": [
        "83bb94e112df8d979c76c9c6a884e48e1da3fee7"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Thu Jun 04 12:32:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 12:32:12 2026 +0800"
      },
      "message": "docs: add qumat 0.6.0 release blog post with verified benchmarks (#1364)\n\n- Blog post covering QDP encoding parity, AMD Triton backend, new\n  benchmarks (SVHN IQP, data-to-state latency, DataLoader throughput),\n  and docs overhaul\n- Benchmark charts generated from fresh runs on RTX 3090 Ti (GPU 0/1)\n- Add ryankert to blog authors.yml"
    },
    {
      "commit": "83bb94e112df8d979c76c9c6a884e48e1da3fee7",
      "tree": "bcc8e11a938f9b1f1dcb5547f2a7a0af2dd51749",
      "parents": [
        "599a2616f7e1902468b5ef04c41abe955e564f21"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Wed Jun 03 23:20:46 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 23:20:46 2026 +0800"
      },
      "message": "fix(examples): correct backend_name in quantum_teleportation.py (#1367)\n\n\u0027qiskit_simulator\u0027 is not a registered Qumat backend module; the valid\nname is \u0027qiskit\u0027 (matches simple_example.py and QuMat.__init__ docs).\nFixes #1317."
    },
    {
      "commit": "599a2616f7e1902468b5ef04c41abe955e564f21",
      "tree": "b200269e7727014e75057ecf7db6968d257d482e",
      "parents": [
        "165c959f585b4c60ceb8b7b77698b0612c5cc225"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "viiccwen@gmail.com",
        "time": "Wed Jun 03 09:47:35 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 09:47:35 2026 +0800"
      },
      "message": "docs: refresh QDP Python API docstrings (#1335)"
    },
    {
      "commit": "165c959f585b4c60ceb8b7b77698b0612c5cc225",
      "tree": "838c1fb1ded1788aaec05dba95e9c8134d59d79d",
      "parents": [
        "51104cbcee2d7ae22e8d287adc1deda3dc41c263"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Mon Jun 01 17:26:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 17:26:02 2026 +0800"
      },
      "message": "ci: pin all GitHub Actions to commit hashes per ASF policy (#1369)\n\nResolves #1368. All third-party actions are pinned to their full 40-char\ncommit SHA (with version tag preserved as a comment) and verified against\nthe Apache infrastructure-actions allowlist."
    },
    {
      "commit": "51104cbcee2d7ae22e8d287adc1deda3dc41c263",
      "tree": "a2877fc2765e0374de0fce1a16ccbd3b2fab8d38",
      "parents": [
        "ab5fb719bad50935848b01bd11c3f46f20cc70ed"
      ],
      "author": {
        "name": "KUAN-HAO HUANG",
        "email": "101171023+rich7420@users.noreply.github.com",
        "time": "Mon Jun 01 16:18:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 16:18:29 2026 +0800"
      },
      "message": "feat(qdp): hoist encode_from_gpu_ptr_f32 onto QuantumEncoder trait (#1310)"
    },
    {
      "commit": "ab5fb719bad50935848b01bd11c3f46f20cc70ed",
      "tree": "57a384a9442da260af2656dcc6e237b95e78b557",
      "parents": [
        "2cc80072d5fea9864c03b6595136a5e4eeda0a83"
      ],
      "author": {
        "name": "Andrew Musselman",
        "email": "akm@apache.org",
        "time": "Mon Jun 01 00:05:48 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 15:05:48 2026 +0800"
      },
      "message": "Add Trusted Publishing release workflow for qumat and qumat-qdp (#1363)"
    },
    {
      "commit": "2cc80072d5fea9864c03b6595136a5e4eeda0a83",
      "tree": "c239acef08055a7eaa319a527974c6ba86fd3c5b",
      "parents": [
        "8f58acc2767c9a61e903b00f1e50425c453d9d22"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "viiccwen@gmail.com",
        "time": "Mon Jun 01 12:51:15 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 12:51:15 2026 +0800"
      },
      "message": "docs: add missing QDP Python API docstrings (#1334)"
    },
    {
      "commit": "8f58acc2767c9a61e903b00f1e50425c453d9d22",
      "tree": "1b0d04258edda5b05a1369210d8cec2a579941a8",
      "parents": [
        "ac30a8c954f692f0e57e53cef185497b68b61217"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Mon Jun 01 12:50:35 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 12:50:35 2026 +0800"
      },
      "message": "chore: bump versions to 0.7.0.dev0 / 0.3.0-dev (#1362)\n\nPost-release version bump on main following the 0.6.0 / 0.2.0 release.\nPEP 440 .dev0 / Cargo -dev prerelease so the next 0.7.0rcN tags sort\nabove main while keeping the next release line clear."
    },
    {
      "commit": "ac30a8c954f692f0e57e53cef185497b68b61217",
      "tree": "0bbf7c7a7482c8c428d5bd7dfe1e30c18db5e6bb",
      "parents": [
        "bd965e1df0d5cc7457f279fc9f7f608630521522"
      ],
      "author": {
        "name": "KUAN-HAO HUANG",
        "email": "101171023+rich7420@users.noreply.github.com",
        "time": "Mon May 18 19:49:33 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 19:49:33 2026 +0800"
      },
      "message": "fix(qdp): guard batch size multiplication against overflow (#1324)\n\n`Preprocessor::validate_batch` and `AmplitudeEncoder::encode_batch_f32`\ncomputed `num_samples * sample_size` without overflow checks, while the\nanalogous angle encoder paths already use `checked_mul`. On 64-bit hosts\nthe product can wrap and let an undersized buffer pass validation,\nleading to out-of-bounds reads in the encoder.\n\nMirror the angle.rs pattern: use `checked_mul` and surface an\n`InvalidInput` error on overflow. Add a unit test covering the\noverflow path through the shared preprocessor."
    },
    {
      "commit": "bd965e1df0d5cc7457f279fc9f7f608630521522",
      "tree": "b7cd769566a879c0d0640494a8ba24906ebbf866",
      "parents": [
        "54b0f23633b5ffcd51479ec272a305b099c37d2e"
      ],
      "author": {
        "name": "Andrew Musselman",
        "email": "akm@apache.org",
        "time": "Mon May 18 04:49:18 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 19:49:18 2026 +0800"
      },
      "message": "fix(build): gate test_rust on nvcc presence, not just nvidia-smi (#1322)"
    },
    {
      "commit": "54b0f23633b5ffcd51479ec272a305b099c37d2e",
      "tree": "9af18cf308d730082ebddbbacf245c3e88a0319f",
      "parents": [
        "6a1ea6a315054975e0551135f4bf88de4e3e0f9a"
      ],
      "author": {
        "name": "Andrew Musselman",
        "email": "akm@apache.org",
        "time": "Mon May 18 04:48:43 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 19:48:43 2026 +0800"
      },
      "message": "fix(qdp): fall back to CPU when GPU arch not in PyTorch\u0027s compiled list (#1323)"
    },
    {
      "commit": "6a1ea6a315054975e0551135f4bf88de4e3e0f9a",
      "tree": "6f357f9a922396611d6217e2a646bf28bd2bdb59",
      "parents": [
        "d23be9ab8030e43e726a8bf6716ad3603453b6e8"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "viiccwen@gmail.com",
        "time": "Thu May 14 10:33:03 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 10:33:03 2026 +0800"
      },
      "message": "fix(qdp): reject invalid non-amplitude benchmark combos (#1303)\n\n* fix(qdp): reject invalid non-amplitude benchmark combos\n\n* test(qdp): cover non-happy benchmark CLI cases"
    },
    {
      "commit": "d23be9ab8030e43e726a8bf6716ad3603453b6e8",
      "tree": "7582c1636cc402cfa334ab39dbf22a29814bd13a",
      "parents": [
        "436dd1e6b5e6ffcbeebc1764988d368ef7573ecd"
      ],
      "author": {
        "name": "Tim Hsiung",
        "email": "timhsiung@microsoft.com",
        "time": "Thu May 14 10:31:02 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 10:31:02 2026 +0800"
      },
      "message": "docs: fix stale links and Docusaurus relative-link rendering (#1305)\n\nThe How to Contribute pages referenced three stale targets on\nmahout.apache.org that all return 404, and additional relative-path\nlinks in the source docs were silently rendering as 404 on the built\nsite:\n\n- guide for making website updates -\u003e documentation/developers/how-to-update-the-website.html\n- wide variety of books and slides -\u003e general/books-tutorials-and-talks.html\n- Handling GitHub PRs              -\u003e documentation/developers/github\n\nRoot cause for the relative-link rendering bug: docusaurus.config.ts\ndoes not set trailingSlash, so Docusaurus serves URLs with a trailing\nslash, and a relative href `../community/mailing-lists` from\n`/docs/next/about/how-to-contribute/` resolves in the browser to\n`/docs/next/about/community/mailing-lists` (404). The proper\nDocusaurus fix is markdown links with the .md extension so Docusaurus\nstatically resolves them to the correct version-aware URL, but\nsync-docs.js was stripping the .md extension before Docusaurus saw\nthe file, defeating that resolution.\n\nFixes:\n\n- website/scripts/sync-docs.js: stop stripping .md from internal links\n  in transformLinks(); let Docusaurus handle resolution.\n- docs/about/how-to-contribute.md: switch the three `../community/...`\n  relative links to use a .md extension (lines 15, 85, 144). Drop the\n  `guide for making website updates` sentence and its [2] reference;\n  website/README.md is not published to mahout.apache.org so there is\n  no equivalent page.\n- docs/qumat/index.md, docs/qumat/getting-started.md: switch\n  `../qdp`, `../learning/...` relative links to use the .md\n  extension, fixing previously silently-broken links from the same\n  pattern.\n- website/versioned_docs/version-0.4/about/how-to-contribute.md:\n  replace stale http://people.apache.org/~hossman/#private_q (404)\n  with https://www.apache.org/theapacheway/ (matches next/v0.5).\n  Drop the `[2]` guide-for-making-website-updates sentence.\n- website/versioned_docs/version-0.5/about/how-to-contribute.md:\n  drop the `[2]` guide-for-making-website-updates sentence.\n- Earlier: rewire `Handling GitHub PRs` to the\n  pr-policy-and-review-guidelines doc, drop the `books and slides`\n  sentence (no equivalent page exists), and remove\n  docs/about/how-to-contribute.md from lychee.toml exclude_path.\n\nVerified locally:\n\n- `cd website \u0026\u0026 npm run build`: no broken-link warnings on the\n  previously broken paths; rendered hrefs in the built `next` page\n  resolve to `/docs/next/community/mailing-lists` and\n  `/docs/next/community/pr-policy-and-review-guidelines`.\n- `lychee 0.24.2 --config lychee.toml .`: 95 -\u003e 94 total errors\n  (removed v0.4 hossman 404; no new failures).\n- `pre-commit run --files \u003cchanged\u003e` with environment-specific\n  hooks (clippy/fmt/ty) skipped: end-of-file-fixer and\n  trailing-whitespace pass.\n\nCloses #1301\n\nGenerated-by: GitHub Copilot CLI\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "436dd1e6b5e6ffcbeebc1764988d368ef7573ecd",
      "tree": "1f0cb5c32794a45898a5cff07d46094c3db0428a",
      "parents": [
        "5adc5c8318d814c0604f0f717a5facb27e6a2735"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu May 14 10:30:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 10:30:23 2026 +0800"
      },
      "message": "chore(deps): bump urllib3 from 2.6.3 to 2.7.0 in /qdp/qdp-python (#1309)\n\nBumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.3 to 2.7.0.\n- [Release notes](https://github.com/urllib3/urllib3/releases)\n- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)\n- [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0)\n\n---\nupdated-dependencies:\n- dependency-name: urllib3\n  dependency-version: 2.7.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "5adc5c8318d814c0604f0f717a5facb27e6a2735",
      "tree": "711076ffd718e46bdd251e750495cc7933eb745e",
      "parents": [
        "afbaf00e6729256318a36f3a601c86cc1806a654"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu May 14 10:30:04 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 10:30:04 2026 +0800"
      },
      "message": "chore(deps): bump urllib3 from 2.6.3 to 2.7.0 (#1316)\n\nBumps [urllib3](https://github.com/urllib3/urllib3) from 2.6.3 to 2.7.0.\n- [Release notes](https://github.com/urllib3/urllib3/releases)\n- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)\n- [Commits](https://github.com/urllib3/urllib3/compare/2.6.3...2.7.0)\n\n---\nupdated-dependencies:\n- dependency-name: urllib3\n  dependency-version: 2.7.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "afbaf00e6729256318a36f3a601c86cc1806a654",
      "tree": "f4e2cce3b7ebfe40c08e9323edaf7ad93c28c6c8",
      "parents": [
        "e59b90f1bd2de74cd043da56042fbc5509289771"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Thu May 14 02:01:35 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 02:01:35 2026 +0800"
      },
      "message": "test(qdp_python): match actual ValueError from QuantumDataLoader.backend() (#1314)\n\n`test_invalid_backend_raises` was asserting an older error message\nformat (\u0027rust\u0027, \u0027pytorch\u0027, or \u0027auto\u0027), but `QuantumDataLoader.backend()`\nnow raises \u0027backend must be one of [\"auto\", \"pytorch\", \"rust\"], got\n\"invalid\"\u0027 (qdp/qdp-python/qumat_qdp/loader.py:355). Update the regex\nto match the current sorted-list format.\n\nDiscovered while running the testing/ suite against the qumat-qdp\n0.2.0rc1 wheel installed from TestPyPI."
    },
    {
      "commit": "e59b90f1bd2de74cd043da56042fbc5509289771",
      "tree": "d8511275f58f5a12adab75b657dd4b24d2f47b2b",
      "parents": [
        "d9ad79801ba8f09cf3e0eec60a38b6718a067044"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Thu May 14 01:13:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 01:13:07 2026 +0800"
      },
      "message": "fix(qdp): drop invalid PyPI classifiers from qumat-qdp (#1313)\n\n\u0027Framework :: PyTorch\u0027 and \u0027Framework :: TensorFlow\u0027 are not in PyPI\u0027s\ntrove of valid classifiers, so PyPI/TestPyPI rejects qumat-qdp uploads\nwith HTTP 400. Remove them from qdp/qdp-python/pyproject.toml.\n\nDiscovered while uploading 0.6.0rc1 release candidates to TestPyPI."
    },
    {
      "commit": "d9ad79801ba8f09cf3e0eec60a38b6718a067044",
      "tree": "7501f8f1a9a480937faf8c451b3f75f42a3e01d6",
      "parents": [
        "3aff2794635a2d1ba109b9b3c2ca05ece3d1ba26"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Wed May 13 22:12:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 22:12:23 2026 +0800"
      },
      "message": "feat: Add new PGP public key for Ryan Huang to KEYS file (#1312)"
    },
    {
      "commit": "3aff2794635a2d1ba109b9b3c2ca05ece3d1ba26",
      "tree": "0cc308742dfa58c5365ded145c5f14ee97e4d0a7",
      "parents": [
        "ffae662ec51c8b445d6cdc3566c1a98eda1d6196"
      ],
      "author": {
        "name": "Vic Wen",
        "email": "viiccwen@gmail.com",
        "time": "Tue May 12 12:40:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 12 12:40:13 2026 +0800"
      },
      "message": "[Feature] Make QDP CUDA kernel build targets configurable and future-compatible (#1283)\n\n* Make QDP CUDA kernel build targets configurable\n\n* docs(qdp): document CUDA architecture target override\n\n* Revert \"docs(qdp): document CUDA architecture target override\"\n\nThis reverts commit 9062a4bcf5fa38698bb15756d02a9346cb353f77.\n\n* docs(qdp): add supported GPU backends section"
    },
    {
      "commit": "ffae662ec51c8b445d6cdc3566c1a98eda1d6196",
      "tree": "c75bea47674962f0e8934d92489573f665c21856",
      "parents": [
        "6cfbf10ecb023ddb870c5fe80623b0893442f6ac"
      ],
      "author": {
        "name": "KUAN-HAO HUANG",
        "email": "101171023+rich7420@users.noreply.github.com",
        "time": "Mon May 11 23:52:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 11 23:52:45 2026 +0800"
      },
      "message": "[Feature][QDP] F32 support for angle/basis encoders, fidelity metrics and pipeline improvements (#1275)\n\n* [Feature][QDP] F32 support for angle/basis encoders, fidelity metrics, and pipeline improvements\n\n* update and improve\n\n* correctness + completeness for f32 zero-copy paths\n\n* update and improve\n\n* update and improve\n\n* refactor(qdp): clean up loader and gate metrics module as test-only\n\nCleanup pass on review feedback for the f32 angle/basis PR:\n\n- gpu/mod.rs: mark `metrics` module and its re-exports `#[doc(hidden)]`\n  to signal that fidelity / trace-distance helpers are test-only and\n  not part of the supported runtime API.\n- loader.py: lift inline `import os/sys/warnings` to module scope; add\n  named constants for backend literals (`_BACKEND_RUST/PYTORCH/AUTO`)\n  and supported file extensions (`_STREAMING_FILE_EXTS`,\n  `_SUPPORTED_FILE_EXTS`); extract `_path_extension` and\n  `_platform_hint` helpers to remove duplicated string parsing and\n  platform-message construction; cache the IterableDataset subclass\n  at module scope via `_build_torch_dataset` so `as_torch_dataset()`\n  no longer redefines the class on every call.\n\n* test(qdp): update compute_optimal_prefetch_depth tests for enum signature\n\nTests still passed args using the pre-#1276 string/bool signature.\nUpdate them to the post-rebase (Encoding, Precision) signature.\n\n* refactor(qdp): converge CUDA-tensor encoding dispatch\n\nThree small cleanups in _encode_from_cuda_tensor:\n\n- Hoist validate_shape(ndim, ...) to the top so the redundant per-branch\n  ndim error arms (one in the f32 path, one in the f64 path with the\n  same message) both collapse into a single unreachable! guard.\n- Hoist the duplicate get_torch_cuda_stream_ptr(data)? call shared by\n  both paths.\n- Merge the six-arm f32 match-of-tuples into a single match block with\n  shared num_samples/sample_size/input_len bindings, dropping ~45 lines\n  of repeated unsafe { ... }.map_err(...)? scaffolding.\n\nNet: -45 LoC. No behavior change; same error messages; clippy clean."
    },
    {
      "commit": "6cfbf10ecb023ddb870c5fe80623b0893442f6ac",
      "tree": "582078177f8319d9b3ad04fc8d2b80f277ac3cdd",
      "parents": [
        "9be560c7742bd2a3ac3ad1bb2e28d3200284e929"
      ],
      "author": {
        "name": "KUAN-HAO HUANG",
        "email": "101171023+rich7420@users.noreply.github.com",
        "time": "Mon May 11 18:24:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 11 18:24:28 2026 +0800"
      },
      "message": "feat(qdp): Encoding + Dtype enums, static encoder dispatch (#1276)"
    },
    {
      "commit": "9be560c7742bd2a3ac3ad1bb2e28d3200284e929",
      "tree": "51c9debcacd545daa4fa59d99ed0d8ee70690dbf",
      "parents": [
        "4f21c1076f435d381b8a664f1f3055b60fc92e3d"
      ],
      "author": {
        "name": "Tim Hsiung",
        "email": "timhsiung@microsoft.com",
        "time": "Mon May 11 01:12:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 11 01:12:13 2026 +0800"
      },
      "message": "docs: fix broken blog link to the quantum computing primer (#1306)\n\nThree meeting-minutes blog entries linked to a broken target on\nmahout.apache.org:\n\n  https://mahout.apache.org/quantum-computing-primer  -\u003e  404 Not Found\n\nThe page now lives under /docs/learning/quantum-computing-primer/.\nUpdate all three references:\n\n- docs/blog/2025-01-24-Meeting-Minutes.md\n- docs/blog/2025-02-14-Meeting-Minutes.md\n- docs/blog/2025-03-13-Meeting-Minutes.md\n\nVerified locally with lychee 0.24.2:\n- Before: 3 x 404 on https://mahout.apache.org/quantum-computing-primer\n- After:  0 errors; new target https://mahout.apache.org/docs/learning/quantum-computing-primer/ returns 200.\n\nCloses #1300\n\nCo-authored-by: Copilot \u003c223556219+Copilot@users.noreply.github.com\u003e"
    },
    {
      "commit": "4f21c1076f435d381b8a664f1f3055b60fc92e3d",
      "tree": "e92d2a56e56425d9a720a94695ca57effb30ad34",
      "parents": [
        "ce775fa10c59fbf558f18b539501423906692926"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Mon May 11 01:04:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 11 01:04:54 2026 +0800"
      },
      "message": "[QDP] Close AMD-vs-CUDA encoder parity: add iqp, iqp-z, phase (#1292)\n\n* [QDP] Close AMD-vs-CUDA encoder parity gap: add iqp, iqp-z, phase\n\nCUDA QdpEngine accepts amplitude, angle, basis, iqp, iqp-z, and phase.\nThe Triton AMD path only implemented the first three, so AMD users hit\na hard error on the IQP- and phase-family encodings (e.g. SVHN-IQP).\n\nThis adds vectorized PyTorch implementations for the missing methods on\nTritonAmdEngine, dispatched through the same ``encode(method\u003d...)``\ncontract:\n\n- ``iqp`` — full ZZ entanglement: phase \u003d Σ x_i·data_i + Σ_{i\u003cj} x_i x_j·data_ij,\n  followed by an n-stage Walsh-Hadamard butterfly and 1/2^n scaling.\n- ``iqp-z`` — Z-only diagonal: same FWT path with no ZZ pairs.\n- ``phase`` — per-qubit product state (1/√2^n)·exp(i·Σ_k phases_k·b_k).\n\nParity tests added against ``qumat_qdp.torch_ref.iqp_encode`` (which is\nalready validated against CUDA upstream) and a local pure-torch phase\nreference. Also added unit-norm structural checks, param-count\nvalidation, float64 precision contract, and a router test that the\npublic ``QdpEngine(backend\u003d\"amd\")`` accepts the new methods.\n\nVerified on AMD Instinct MI300X (ROCm 7.2 / torch 2.9.0+rocm6.4 /\ntriton 3.5.0): full triton_amd test file is 18 passed, 2 skipped\n(NVIDIA CUDA-only references).\n\n* Optimize TritonAmdEngine encoders + Triton @jit phase kernel\n\nAddresses Copilot review on PR #1292 and pushes general kernel-level\noptimization across all six AMD encoders.\n\nPR review responses:\n\n- Drop the unreachable `test_triton_amd_iqp_cuda_reference_optional`\n  (decorator required `torch.version.cuda` while body required\n  `is_triton_amd_available()` → mutually exclusive). Replace with a\n  meaningful float64 IQP precision contract test that actually runs.\n- Qualify README about the CUDA-tensor `phase` limitation: the Python\n  extension\u0027s CUDA-tensor allowlist (`CUDA_ENCODING_METHODS`) does not\n  yet include `phase`, so cuda-resident torch tensors must `.cpu()`\n  first. Tracked as a follow-up.\n- The pair-matrix-rewrite suggestion (per-pair Python loop) is\n  rejected — n² tiny kernel launches lose to one matmul on every\n  modern GPU; the current path matches `torch_ref.iqp_encode` and the\n  CUDA FWT phase kernel. Add a `_IQP_PAIR_MATRIX_MAX_N` guard that\n  *does* fall back to a pair loop past n\u003d20 (where the (2^n × n_pairs)\n  workspace dominates HBM), so the OOM scenario is bounded.\n\nEncoder optimizations (verified on MI300X vs `qumat_qdp.torch_ref`,\nbatch\u003d64, fp32 input):\n\n|        | q\u003d8   | q\u003d12  | q\u003d16  |\n|--------|-------|-------|-------|\n| amplitude | 0.95× | 0.95× | 1.00× |\n| angle     | 1.57× | 1.37× | 1.04× |\n| basis     | 2.18× | 2.10× | 2.14× |\n| iqp(ZZ)   | 1.96× | 1.81× | 1.14× |\n| iqp-z     | 1.35× | 1.32× | 0.91× |\n| **phase** | **5.29×** | **5.39×** | **5.30×** |\n\nWhat changed:\n\n- **Real `@triton.jit` phase kernel** (fp32 / n ≤ 32). One HIP kernel\n  fuses bit-pattern materialization + θ(b) accumulation + cos/sin +\n  1/√2^n scaling + complex-pack, writing the output buffer interleaved\n  via `view_as_real`. The PyTorch fallback path (used at fp64 or n \u003e 32)\n  was making 5 intermediate (B, S) allocations; the kernel makes one.\n- **Per-engine bits-table cache** (`_bits_cache`): the\n  `((idx \u003e\u003e arange(n)) \u0026 1).to(real)` table was being rebuilt on every\n  call by `angle`/`iqp`/`phase`. Now cached per (n, dtype). At n\u003d16\n  that\u0027s a ~4 MiB int64 + ~4 MiB real allocation saved per call.\n- **Pair-index cache** (`_pair_cache`): `torch.combinations(arange(n))`\n  cached per n.\n- **`encode_amplitude`**: replaced\n  `torch.complex(amp, zeros_like(amp)).to(complex_dtype)` with a single\n  `amp.to(complex_dtype)` (writes (real, 0) interleaved in one kernel\n  vs. zeros_like + complex_pack + cast \u003d three).\n- **`encode_angle`**: collapsed the n-step Python product loop (which\n  reallocated a (B, S) tensor per qubit) into a single\n  `where(bits, sin, cos).prod(dim\u003d2)` reduction.\n- **`encode_iqp`**: in-place n-stage Walsh-Hadamard butterfly using a\n  single `(B, S/2)` scratch buffer. The previous\n  `cat([lo+hi, lo-hi], dim\u003d2)` allocated a fresh (B, S) tensor every\n  stage; now `sub(out\u003dscratch); a.add_(b); b.copy_(scratch)` reuses one\n  workspace across all n stages. Also packs `f` via `torch.complex(cos,\n  sin)` in one shot rather than writing to strided `.real`/`.imag`.\n- **`_to_2d` fast path**: skip `as_tensor` + `.contiguous()` work when\n  the caller already supplies a 2-D, contiguous, on-device,\n  correctly-typed torch tensor (the common case for benchmarks).\n\nTest parity: 19 passed, 1 skipped (`test_triton_amd_cuda_reference_optional`\nis the pre-existing amplitude cross-ref; same skipif latency as the\nnew iqp test we just deleted — out of scope here).\n\nNumerical parity: all encoders still match `torch_ref` /\n`_torch_phase_ref` within float-rounding tolerance; the IQP fp64\ncontract test confirms `atol\u003d1e-12`."
    },
    {
      "commit": "ce775fa10c59fbf558f18b539501423906692926",
      "tree": "7719d25212ef670f6b115655b80763b4915791e0",
      "parents": [
        "496c1856afac70c19199a08f9deb45c61434841b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon May 11 01:00:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 11 01:00:13 2026 +0800"
      },
      "message": "chore(deps): bump fast-uri from 3.1.0 to 3.1.2 in /website (#1302)\n\nBumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.0 to 3.1.2.\n- [Release notes](https://github.com/fastify/fast-uri/releases)\n- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.2)\n\n---\nupdated-dependencies:\n- dependency-name: fast-uri\n  dependency-version: 3.1.2\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "496c1856afac70c19199a08f9deb45c61434841b",
      "tree": "b90e902331484bae875ce5aa81e7401abd9c2146",
      "parents": [
        "52018d44fca9e40ee46682314894561979107839"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon May 11 00:59:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 11 00:59:57 2026 +0800"
      },
      "message": "chore(deps): bump @babel/plugin-transform-modules-systemjs in /website (#1304)\n\nBumps [@babel/plugin-transform-modules-systemjs](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-modules-systemjs) from 7.28.5 to 7.29.4.\n- [Release notes](https://github.com/babel/babel/releases)\n- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/babel/babel/commits/v7.29.4/packages/babel-plugin-transform-modules-systemjs)\n\n---\nupdated-dependencies:\n- dependency-name: \"@babel/plugin-transform-modules-systemjs\"\n  dependency-version: 7.29.4\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "52018d44fca9e40ee46682314894561979107839",
      "tree": "354575762014b35a348e02e23416a53ad44ea7ea",
      "parents": [
        "33bee580ef9b3a0a994d795bfa3eb5a3ced50319"
      ],
      "author": {
        "name": "Ryan Huang",
        "email": "hcr@apache.org",
        "time": "Sun May 10 04:06:34 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 10 04:06:34 2026 +0800"
      },
      "message": "[merge it when release] Add pypi badge (#1176)\n\n* Add PyPI badges to README.md\n\n* Remove duplicate license badge\n\nRemoved duplicate license badge from README.\n\n* Update README.md"
    }
  ],
  "next": "33bee580ef9b3a0a994d795bfa3eb5a3ced50319"
}
