)]}'
{
  "log": [
    {
      "commit": "8eb647c3d301c925c6b7ee62d7bb478b8f1d8db0",
      "tree": "4dacc6f3cf2ff3dd75016a724f1dfab7cd121d92",
      "parents": [
        "ee2f0a713026680d5402aa0188f8b785e9c763a8"
      ],
      "author": {
        "name": "Weny Xu",
        "email": "wenymedia@gmail.com",
        "time": "Wed Sep 23 11:42:56 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 23 11:42:56 2026 +0800"
      },
      "message": "fix(services/oss): prefer OIDC credentials over ECS metadata (#8339)\n\nSigned-off-by: WenyXu \u003cwenymedia@gmail.com\u003e"
    },
    {
      "commit": "ee2f0a713026680d5402aa0188f8b785e9c763a8",
      "tree": "2706e05df942e0f8ebce1c968e9fed34f777ae02",
      "parents": [
        "fc44df101820faa266996a13461869e1bfd68e1f"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Tue Sep 22 16:21:33 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 22 16:21:33 2026 +0800"
      },
      "message": "ci: prepare weekly releases on Thursday UTC (#8335)"
    },
    {
      "commit": "fc44df101820faa266996a13461869e1bfd68e1f",
      "tree": "a3f42ee63013b9d6790d581afb8a4f75c380bb0b",
      "parents": [
        "159c7c858543cc247e7ad7182da257212f685d72"
      ],
      "author": {
        "name": "Paul Taylor",
        "email": "178183+trxcllnt@users.noreply.github.com",
        "time": "Tue Sep 22 00:58:38 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 22 15:58:38 2026 +0800"
      },
      "message": "Add `BufferCursor`, an implementation of `Read` + `Seek` for `Buffer` (#8320)\n\n* add BufferCursor implementation\n\n* add 50MB BufferCursor benchmark"
    },
    {
      "commit": "159c7c858543cc247e7ad7182da257212f685d72",
      "tree": "51e9ba1709515b53f1206ac90feca267b617c9a2",
      "parents": [
        "65d5941d9f3ea40376b2b4b8ece40f6423935af9"
      ],
      "author": {
        "name": "github-actions[bot]",
        "email": "41898282+github-actions[bot]@users.noreply.github.com",
        "time": "Tue Sep 22 15:56:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 22 15:56:05 2026 +0800"
      },
      "message": "chore: sync released versions for 0.59.3 (#8334)\n\nSync released versions for 0.59.3\n\nCo-authored-by: OpenDAL Release \u003cdev@opendal.apache.org\u003e"
    },
    {
      "commit": "65d5941d9f3ea40376b2b4b8ece40f6423935af9",
      "tree": "c78841af4bc3e8aca4aff6dfc8c085e325f30045",
      "parents": [
        "d2033d8282bbb93280d302df7ebfb46345ed3df4"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Tue Sep 22 00:55:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 22 00:55:54 2026 +0800"
      },
      "message": "docs: add Anaconda main installation for Python (#8328)"
    },
    {
      "commit": "d2033d8282bbb93280d302df7ebfb46345ed3df4",
      "tree": "2701a64f41d5950af4733f047d49ad7b0c790622",
      "parents": [
        "73644bd18f93b8897984dae85b98d1ffaa450d6e"
      ],
      "author": {
        "name": "Yuang Gao",
        "email": "91290127+YuangGao@users.noreply.github.com",
        "time": "Mon Sep 21 04:58:34 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 21 19:58:34 2026 +0800"
      },
      "message": "refactor(services/webdav): deprecate enable_conditional_read (#8314)\n\n* refactor(services/webdav): deprecate enable_conditional_read\n\n* test(bindings/go): honor capability overrides for conditional read"
    },
    {
      "commit": "73644bd18f93b8897984dae85b98d1ffaa450d6e",
      "tree": "9d12bb87aa8a74a2f62e59401aaaf040737f1c8d",
      "parents": [
        "cd3cdf3c88013ae496a368339bb2fded210a7040"
      ],
      "author": {
        "name": "Fatorin",
        "email": "sksly789@gmail.com",
        "time": "Mon Sep 21 18:30:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 21 18:30:05 2026 +0800"
      },
      "message": "refactor(bindings/dotnet)!: remove redundant async overloads and simplify Operator (#8316)\n\n* refactor(bindings/dotnet)!: remove token-only async overloads\n\n* refactor(bindings/dotnet): rename WriteCallback to VoidCallback\n\n* refactor(bindings/dotnet): simplify operator construction\n\n* refactor(bindings/dotnet): rename OpenDALWriteBufferResult to OpenDALWriteResult"
    },
    {
      "commit": "cd3cdf3c88013ae496a368339bb2fded210a7040",
      "tree": "cc98b36490dfe40bffa553b8a22448dc6654e314",
      "parents": [
        "ecafb921fb9132f8fd0d7e966e843248e1253393"
      ],
      "author": {
        "name": "Suyan",
        "email": "suyanhanx@gmail.com",
        "time": "Mon Sep 21 18:29:43 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 21 18:29:43 2026 +0800"
      },
      "message": "fix(scripts): show release verification build output (#8317)"
    },
    {
      "commit": "ecafb921fb9132f8fd0d7e966e843248e1253393",
      "tree": "4c68cceed7ffcbfc654a8947616e4f80e69d1fca",
      "parents": [
        "5f1947faa7e7fd7e2bf696bf1249dae78dea0c28"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Sep 21 18:25:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 21 18:25:12 2026 +0800"
      },
      "message": "fix(core): disable prefetch for concurrent writes and copies (#8327)\n\nThese paths do not collect ConcurrentTasks results while submitting work, so a non-zero prefetch lets failed inputs accumulate and delays write() errors.\n\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e"
    },
    {
      "commit": "5f1947faa7e7fd7e2bf696bf1249dae78dea0c28",
      "tree": "95ee83771455a3b64e624b49aec3f1026a12332a",
      "parents": [
        "2698e90a1131a477fc3382465f1c28bd2202395e"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Sat Sep 19 11:18:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 19 11:18:17 2026 +0800"
      },
      "message": "fix(release): validate declarations and published state correctly (#8322)"
    },
    {
      "commit": "2698e90a1131a477fc3382465f1c28bd2202395e",
      "tree": "78df12472fa370f93904e745bb2425f2dce81419",
      "parents": [
        "cccd7c9542fded18f499ec3d4b6df76527c31677"
      ],
      "author": {
        "name": "Fatorin",
        "email": "sksly789@gmail.com",
        "time": "Wed Sep 16 01:35:06 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 16 01:35:06 2026 +0800"
      },
      "message": "fix(ci): publish dotnet packages only from final release tags (#8311)\n\n* fix(ci): derive dotnet release suffix from the tag ref\n\n* ci: publish dotnet packages only from final release tags"
    },
    {
      "commit": "cccd7c9542fded18f499ec3d4b6df76527c31677",
      "tree": "5595d17047a96b1de381b07a9b820a1cd0994465",
      "parents": [
        "e1620ba07517787574090c14f5f5e366d34d5da5"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Wed Sep 16 01:33:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 16 01:33:54 2026 +0800"
      },
      "message": "ci: classify current issues and pull requests with Qwen (#8312)\n\n* ci: classify current issues and pull requests with Qwen\n\n* style: remove trailing workflow blank line"
    },
    {
      "commit": "e1620ba07517787574090c14f5f5e366d34d5da5",
      "tree": "7fca17244faabef5496cb696566f9bbf18181983",
      "parents": [
        "1798c4c5ed7036f5f5f048f78be717b8140b39e9"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Tue Sep 15 17:08:48 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 17:08:48 2026 +0800"
      },
      "message": "fix(release): include unlabeled PRs and preserve version titles (#8308)"
    },
    {
      "commit": "1798c4c5ed7036f5f5f048f78be717b8140b39e9",
      "tree": "8c041226680930618e97a88b40ef1a1bdeccb432",
      "parents": [
        "3a8c21b89309a08286416faf4b117067ebdc3a0a"
      ],
      "author": {
        "name": "Fatorin",
        "email": "sksly789@gmail.com",
        "time": "Tue Sep 15 15:49:01 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 15:49:01 2026 +0800"
      },
      "message": "refactor(bindings/dotnet): generate metadata mirrors from core (#8287)"
    },
    {
      "commit": "3a8c21b89309a08286416faf4b117067ebdc3a0a",
      "tree": "9c6bfd4bc87cd192b8649cea634854e6a276aee2",
      "parents": [
        "4ea9c19ee2f75d35e14ae32425524fb7b98ed79d"
      ],
      "author": {
        "name": "github-actions[bot]",
        "email": "41898282+github-actions[bot]@users.noreply.github.com",
        "time": "Tue Sep 15 15:47:41 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 15:47:41 2026 +0800"
      },
      "message": "chore: sync released versions for 0.59.2 (#8307)\n\nSync released versions for 0.59.2\n\nCo-authored-by: OpenDAL Release \u003cdev@opendal.apache.org\u003e"
    },
    {
      "commit": "4ea9c19ee2f75d35e14ae32425524fb7b98ed79d",
      "tree": "7c159f8969bd80e3e04834e49ad7be672dc42229",
      "parents": [
        "2261c3700cf32b08496dcb84167312f509ad0bb9"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Tue Sep 15 15:46:08 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 15:46:08 2026 +0800"
      },
      "message": "fix(ci): mount repository root for Dart cross builds (#8305)"
    },
    {
      "commit": "2261c3700cf32b08496dcb84167312f509ad0bb9",
      "tree": "d4a100301c3ed8debf324dc3e8e6b8c46b5a8ec1",
      "parents": [
        "585f2223d20c0d5cdcf54bc55187ffccf8cf185c"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Tue Sep 15 14:50:34 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 14:50:34 2026 +0800"
      },
      "message": "fix(release): publish approved source before optional distributions (#8304)"
    },
    {
      "commit": "585f2223d20c0d5cdcf54bc55187ffccf8cf185c",
      "tree": "ace1331127c5d71a9ad3b4d2ffec207603cd5a14",
      "parents": [
        "b4a47e212d173cb6e7e958d132791237b6443a64"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Tue Sep 15 14:06:47 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 14:06:47 2026 +0800"
      },
      "message": "fix(release): enable automatic resolution and deduplicate failure notices (#8303)"
    },
    {
      "commit": "b4a47e212d173cb6e7e958d132791237b6443a64",
      "tree": "7eff3d9f46608b8b5b983e8724c894ed373695d0",
      "parents": [
        "a042fea984d874978f4fd70b97c3f27f768a0ea8"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Tue Sep 15 01:43:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 15 01:43:18 2026 +0800"
      },
      "message": "test(bindings/python): respect empty-write capability in writer tests (#8301)"
    },
    {
      "commit": "a042fea984d874978f4fd70b97c3f27f768a0ea8",
      "tree": "3951749cb707f8e28884c2cb483ea109c76721ca",
      "parents": [
        "82fee6cdb2944417a1227c24e5640d1cbce18b17"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Sep 14 21:58:57 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 14 21:58:57 2026 +0800"
      },
      "message": "perf(bindings/python): avoid staging copies in synchronous File writes (#8300)"
    },
    {
      "commit": "82fee6cdb2944417a1227c24e5640d1cbce18b17",
      "tree": "293dc91e432ba40c253608f41cddbb8d14701d20",
      "parents": [
        "32d791ee3d7838b3ef025a9683ca4526eb310889"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Sep 14 16:57:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 14 16:57:42 2026 +0800"
      },
      "message": "perf(bindings/python): avoid staging copies in AsyncFile writes (#8298)\n\nOptimize Python AsyncFile writes with owned buffers"
    },
    {
      "commit": "32d791ee3d7838b3ef025a9683ca4526eb310889",
      "tree": "02386ffa32be601727e5b5b9316a7f860fe577af",
      "parents": [
        "1d1ac97550cf502926b63b95efc69bd1dd511d27"
      ],
      "author": {
        "name": "ForwardXu",
        "email": "forwardxu@apache.org",
        "time": "Mon Sep 14 15:55:25 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 14 15:55:25 2026 +0800"
      },
      "message": "ci(s3): set MinIO anonymous policy via aws instead of mc (#8295)\n\ndl.min.io now returns HTTP 410 because MinIO archived community client\ndownloads. The fixture already has AWS CLI, so apply the same readwrite\nbucket policy that `mc anonymous set public` used."
    },
    {
      "commit": "1d1ac97550cf502926b63b95efc69bd1dd511d27",
      "tree": "aa8d374b1abb99ca9268858870d20048e7c58a31",
      "parents": [
        "38f0be3da42394d10d129c51b79923d2f7b78c0d"
      ],
      "author": {
        "name": "ForwardXu",
        "email": "forwardxu@apache.org",
        "time": "Mon Sep 14 15:55:08 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 14 15:55:08 2026 +0800"
      },
      "message": "fix(services/goosefs): reject unknown write_type instead of defaulting to MUST_CACHE (#8294)\n\n* fix(services/goosefs): reject unknown write_type instead of defaulting to MUST_CACHE\n\n* chore: regenerate generated configs for GooseFS write_type docs"
    },
    {
      "commit": "38f0be3da42394d10d129c51b79923d2f7b78c0d",
      "tree": "13272729c26dad56b12949745001fe0ca8ade7ce",
      "parents": [
        "ed461c2059782a3584f1f3b706f3afc7fd765d2f"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Sep 14 15:54:15 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 14 15:54:15 2026 +0800"
      },
      "message": "ci: use an allowed 1Password action version (#8299)"
    },
    {
      "commit": "ed461c2059782a3584f1f3b706f3afc7fd765d2f",
      "tree": "4140803cd373dbe66cff4e6e377a1f3c53a0ed01",
      "parents": [
        "164b17524fedcff7f9567a8231fceb4c1d9d2fb3"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Sep 14 14:28:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 14 14:28:59 2026 +0800"
      },
      "message": "fix(release): sync lifecycle through discussion comments (#8297)"
    },
    {
      "commit": "164b17524fedcff7f9567a8231fceb4c1d9d2fb3",
      "tree": "9f245a8f691b4dd939d1df2e90fb5e9436685ff4",
      "parents": [
        "dba38bbd479af3005a6d169e9cf7cbf31db3023a"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Sun Sep 13 20:22:31 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 13 20:22:31 2026 +0800"
      },
      "message": "fix(bindings/java): use defining class loader on executor threads (#8293)"
    },
    {
      "commit": "dba38bbd479af3005a6d169e9cf7cbf31db3023a",
      "tree": "60bf109931ca325857e2de66d3935b43282a261d",
      "parents": [
        "11078f1c57603e826fe766919dfb09b827b6adde"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Sun Sep 13 18:00:15 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 13 18:00:15 2026 +0800"
      },
      "message": "fix(bindings/java): release default executor after its last owner (#8289)"
    },
    {
      "commit": "11078f1c57603e826fe766919dfb09b827b6adde",
      "tree": "aef6500083a451cd5645193f88fe298ee2622470",
      "parents": [
        "af79667fc961ef0b57abaf0091e69239735f127b"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Sun Sep 13 14:20:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 13 14:20:54 2026 +0800"
      },
      "message": "fix(bindings/java): install default HTTP transport on load (#8288)"
    },
    {
      "commit": "af79667fc961ef0b57abaf0091e69239735f127b",
      "tree": "3ba299d3673b58cb2300f1c37b6e4b890075ea55",
      "parents": [
        "0c360d103f93728889009b6e563bbaf3b0072e71"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Sat Sep 12 18:13:33 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 12 18:13:33 2026 +0800"
      },
      "message": "fix(services/hf): restore reader-local XET resolution reuse (#8285)\n\n* fix(services/hf): restore reader-local XET resolution reuse\n\n* fix(services/hf): format test dependency configuration"
    },
    {
      "commit": "0c360d103f93728889009b6e563bbaf3b0072e71",
      "tree": "f3679dbcb369d68efa1db95947fbb5b0d3fb906c",
      "parents": [
        "781dd6c0bc96f35eb3d1729c3b4ab5900e02554b"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Sat Sep 12 01:28:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 12 01:28:23 2026 +0800"
      },
      "message": "fix(services/goosefs): return metadata from read streams (#8283)\n\n* fix(services/goosefs): return metadata from read streams\n\n* test(services/goosefs): remove standalone metadata test"
    },
    {
      "commit": "781dd6c0bc96f35eb3d1729c3b4ab5900e02554b",
      "tree": "d6d223ed5878c9a5afc707d9dd872c7cc9863bea",
      "parents": [
        "01e50c8a5d549bea10a8cc9c0675385384342f72"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Sat Sep 12 01:03:59 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 12 01:03:59 2026 +0800"
      },
      "message": "fix(services/hf): make resolve cache opt-in (#8282)"
    },
    {
      "commit": "01e50c8a5d549bea10a8cc9c0675385384342f72",
      "tree": "b8178aa51ee332ab662e130f32870ebbe78e6646",
      "parents": [
        "43d87279b8af7af96402fd975c40344493c6497b"
      ],
      "author": {
        "name": "Fatorin",
        "email": "sksly789@gmail.com",
        "time": "Sat Sep 12 00:59:06 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 12 00:59:06 2026 +0800"
      },
      "message": "fix(release): ship root CHANGELOG in source archives (#8281)"
    },
    {
      "commit": "43d87279b8af7af96402fd975c40344493c6497b",
      "tree": "63b49a4bbac9c105b05a7e5cc43752fe4a737424",
      "parents": [
        "af11b6ee9ad1e4df1ff7b1e61156b1f3c4a74357"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Fri Sep 11 23:22:56 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 11 23:22:56 2026 +0800"
      },
      "message": "feat(services/hf): reuse resolved downloads across readers (#8280)\n\n* feat(services/hf): reuse resolved downloads across readers\n\n* fix(services/hf): synchronize configuration and CI checks\n\n* fix(ci): honor configured behavior test concurrency"
    },
    {
      "commit": "af11b6ee9ad1e4df1ff7b1e61156b1f3c4a74357",
      "tree": "d45b5ae74948a0b07ddab98ceb782b07895b3150",
      "parents": [
        "afc3cf1ba369afc791ab559139791736a7a6295a"
      ],
      "author": {
        "name": "ForwardXu",
        "email": "forwardxu@apache.org",
        "time": "Fri Sep 11 18:05:03 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 11 18:05:03 2026 +0800"
      },
      "message": "feat(services/goosefs): bump goosefs-sdk to 0.2.1 and expose cache features (#8269)\n\n* feat(services/goosefs): bump goosefs-sdk to 0.2.1 and expose cache features\n\n0.2.1 compiles metadata and page caches only when opted in, so OpenDAL\ncan keep the default GooseFS client as a gRPC data plane.\n\n* fix(services/goosefs): stop exposing SDK cache features on the facade\n\nKeep metadata-cache, page-cache, and page-cache-io-uring on\nopendal-service-goosefs. Applications that use the facade enable them by\ndepending on that crate directly so Cargo unifies the features."
    },
    {
      "commit": "afc3cf1ba369afc791ab559139791736a7a6295a",
      "tree": "100f24825c9e835cd9a07523cc42eb5fe6da4b1a",
      "parents": [
        "6f79bb8170b1ff7b869304cb8482c1bb6f3fb6cf"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Fri Sep 11 18:03:24 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 11 18:03:24 2026 +0800"
      },
      "message": "feat(release): automate version planning and ATR publication (#8279)\n\n* feat(release): automate the ATR release lifecycle\n\n* feat(release): plan versions from scoped breaking declarations\n\n* chore(release): keep declaration checks outside merge requirements"
    },
    {
      "commit": "6f79bb8170b1ff7b869304cb8482c1bb6f3fb6cf",
      "tree": "920e020e595cf15739c38ac443fc84b158bef224",
      "parents": [
        "2207c4b7cfb090d59ca05d245cdabf5c1398ad39"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Fri Sep 11 11:50:46 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 11 11:50:46 2026 +0800"
      },
      "message": "fix(release): repair weekly signing, dispatch and RC numbering (#8276)\n\nfix(release): repair scheduled signing and RC workflow dispatch"
    },
    {
      "commit": "2207c4b7cfb090d59ca05d245cdabf5c1398ad39",
      "tree": "035a1983529dba556c59c217b1d15bebe90d256f",
      "parents": [
        "5be2a6046aa59762da861fdd9c3b9e90611c8dbb"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Fri Sep 11 11:33:44 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 11 11:33:44 2026 +0800"
      },
      "message": "fix(website): reuse Rust LLM documentation artifacts (#8275)\n\n* chore(website): expose build and Rustdoc generation timings\n\n* fix(website): handle closed stderr in native build diagnostics\n\n* fix(website): reuse Rust LLM documentation artifacts\n\n* fix(website): allow Rust LLM metadata resolution\n\n* fix(website): extract LLM content directly from Rustdoc JSON\n\n* test(website): simplify LLM coverage and build documentation\n\n* chore(website): remove standalone processing tests\n\n* test(website): retain image processing regression coverage\n\n* chore(website): remove unused Rust LLM script alias"
    },
    {
      "commit": "5be2a6046aa59762da861fdd9c3b9e90611c8dbb",
      "tree": "0f9e96b0b0fe1580a4a95401a12d84865ead79aa",
      "parents": [
        "ee67b75592aebdb815fc91d6948c8842806c91c5"
      ],
      "author": {
        "name": "Andreas Schneider",
        "email": "asn@cryptomilk.org",
        "time": "Thu Sep 10 16:28:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 10 22:28:29 2026 +0800"
      },
      "message": "fix(core): skip pointer-width-dependent layout tests on 32-bit targets (#8274)"
    },
    {
      "commit": "ee67b75592aebdb815fc91d6948c8842806c91c5",
      "tree": "a36cf41d924f2fd2751d80d448cf860ce9d8499e",
      "parents": [
        "86b42ea59fb7ec04fb2c0e6311360cdafb0a0aaa"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Thu Sep 10 22:24:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 10 22:24:05 2026 +0800"
      },
      "message": "fix(website): generate badges and resolve images offline (#8272)"
    },
    {
      "commit": "86b42ea59fb7ec04fb2c0e6311360cdafb0a0aaa",
      "tree": "c8d9d6f2b9bb4d6aba8491f7d4af872c01fa06ac",
      "parents": [
        "980b686eb3f72a9057c66857dbd13c75c22c227e"
      ],
      "author": {
        "name": "Fatorin",
        "email": "sksly789@gmail.com",
        "time": "Thu Sep 10 22:22:34 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 10 22:22:34 2026 +0800"
      },
      "message": "feat(bindings/dotnet): expose user metadata and return metadata from Write and Copy (#8212)\n\n* feat(bindings/dotnet): expose user metadata and deletion state on Metadata\n\n* feat(bindings/dotnet): return metadata from Write and Copy\n\n* docs(bindings/dotnet): document metadata on write and copy results"
    },
    {
      "commit": "980b686eb3f72a9057c66857dbd13c75c22c227e",
      "tree": "a315c42489072af9aad323a8c7fe68b13d205a79",
      "parents": [
        "dcae52134b0cfb4a892cac51830ca5a2b7dbbfd6"
      ],
      "author": {
        "name": "Aysha Afrah Ziya",
        "email": "aysha26@digiscrypt.com",
        "time": "Thu Sep 10 15:17:04 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 10 17:47:04 2026 +0800"
      },
      "message": "fix(services): reject absolute paths in confined_join and prepare_path (#8005)\n\nRFC 7799 specifies rejecting RootDir and Prefix alongside ParentDir so an absolute key cannot replace the root through PathBuf::join. Only the ParentDir arm shipped, so a key that skips normalize_path, such as one passed to Deleter, reached the filesystem outside the configured root."
    },
    {
      "commit": "dcae52134b0cfb4a892cac51830ca5a2b7dbbfd6",
      "tree": "a54bc5ec1e715ca46ad3e588721e5d01578fda6e",
      "parents": [
        "43a200fae90ee2edff3854442b2848506a21cc50"
      ],
      "author": {
        "name": "Krisztián Szűcs",
        "email": "szucs.krisztian@gmail.com",
        "time": "Thu Sep 10 10:28:46 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 10 16:28:46 2026 +0800"
      },
      "message": "fix(services/hf): drop the trailing slash from the root tree URL (#8243)\n\n`HfUri::file_tree_url` always appended the path separator, so listing the\nrepo root -- where the path is empty -- asked for `tree/main/` on a git repo\nand `tree/` on a bucket. HF answers both with a 302 to the slash-less URL, so\nevery root listing paid an extra round trip on the rate-limited /api class,\nand failed outright on a transport configured not to follow redirects.\n\nAppend the separator only for a non-empty path. Verified live against\nhuggingface.co: `tree/main/?expand\u003dTrue` and `buckets/\u003cid\u003e/tree/?expand\u003dTrue`\nboth return 302, while the slash-less forms return 200, and a subdirectory\nlisting is unaffected. The same holds for a percent-encoded revision:\n`tree/refs%2Fconvert%2Fparquet` returns 200 and its trailing-slash form\nreturns 302, so decoding the ref back into path segments does not depend on a\nterminating slash. With the fix, listing the root of a dataset and of a bucket\neach complete in one request with redirects disabled.\n\nAn empty revision reached the same broken URL by a second route. `revision()`\nfalls back to `main` only for `None`, so a `Some(\"\")` built `tree/` and, with\na path, `tree//data`. Normalize it in `HfRepo::new`, the one constructor every\ncall site funnels through: `hf://datasets/user/repo@` reaches it from\n`HfUri::parse`, and `revision\u003d\"\"` reaches it from `HfConfig::from_uri` through\n`HfBuilder::build`, which passes the option through unchecked. Normalizing at\nthe constructor covers both and lets the pre-existing guard in the sibling\nparse branch go away, since no caller can construct the state any more.\n\nPin the URL shapes with direct `file_tree_url` assertions next to the existing\n`test_bucket_*_url` tests: git and bucket roots, both subdirectory forms, an\nencoded revision, and the recursive/cursor query. The function is a pure\nstring builder, so these need no mock transport."
    },
    {
      "commit": "43a200fae90ee2edff3854442b2848506a21cc50",
      "tree": "269f9113d4945d44e97ff2096190bb7773531352",
      "parents": [
        "ccac01df216167e984bccd2650d498d7433504cc"
      ],
      "author": {
        "name": "ForwardXu",
        "email": "forwardxu@apache.org",
        "time": "Thu Sep 10 16:23:01 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 10 16:23:01 2026 +0800"
      },
      "message": "fix(bindings/python): sync File stub with GIL-release docstring (#8271)\n\n#8267 documented GIL release on File but left file.pyi stale, so Python\nCI stub-gen fails git diff --exit-code."
    },
    {
      "commit": "ccac01df216167e984bccd2650d498d7433504cc",
      "tree": "cf098ded83935b70126c794cc88cb4a77a9f926a",
      "parents": [
        "8a4a4ed976b49afa582518df7e84c2e7b253e5c7"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Wed Sep 09 14:49:48 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 09 14:49:48 2026 +0800"
      },
      "message": "docs: specify AI usage configuration disclosure (#8268)"
    },
    {
      "commit": "8a4a4ed976b49afa582518df7e84c2e7b253e5c7",
      "tree": "ab7665c07e4d4e78c3997264f764410daa254187",
      "parents": [
        "37ac1d79efd46aec8da3ac19fb3624e25111c2e6"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Wed Sep 09 14:43:09 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 09 14:43:09 2026 +0800"
      },
      "message": "fix(bindings/python): release GIL during blocking File I/O (#8267)"
    },
    {
      "commit": "37ac1d79efd46aec8da3ac19fb3624e25111c2e6",
      "tree": "143d21bb5fdb6d5cfea81e97e7c1046725de8fc3",
      "parents": [
        "66a1a03fffd25d1088aad6f590d9c3420e8b8bd7"
      ],
      "author": {
        "name": "Krisztián Szűcs",
        "email": "szucs.krisztian@gmail.com",
        "time": "Wed Sep 09 08:21:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 09 14:21:22 2026 +0800"
      },
      "message": "fix(services/hf): pin the xet probe range and drop dead http-mode classification (#8263)\n\nIn `xet` mode every read first asks `/resolve` whether the path is\nXET-backed, with `Accept: application/vnd.xet-fileinfo+json`. That probe sent\nthe caller\u0027s range. For a XET-backed path HF answers with a 441-byte metadata\ndocument whatever the range, but for a path that is *not* XET-backed the\naccept header is ignored and the body is the file content -- so a caller\nasking for a full read made the probe download the whole file and discard it\n(248,987 B on one measured file). It now sends `Range: bytes\u003d0-0`, which HF\ndocuments as a header parameter, capping that to one byte. Pinning it also\nmakes the request deterministic rather than dependent on which concurrent\nopen() won the single-flight race.\n\nHttp mode no longer classifies its resolve response. It sends no accept\nheader, so HF returns the content itself; the XET arm was unreachable, and a\nresponse that did carry the header would have hit the JSON parser. The\none-caller `dispatch` wrapper goes with it.\n\nKeeps reading the response body rather than the `x-xet-hash` /\n`x-linked-size` headers: HF\u0027s OpenAPI spec defines the body with `hash` and\n`size` as required fields, while those headers appear nowhere in it."
    },
    {
      "commit": "66a1a03fffd25d1088aad6f590d9c3420e8b8bd7",
      "tree": "745898fadb842cffd3d0dbe227df3f8dcc766946",
      "parents": [
        "8ef2f57bb3192d20fdd463231d1f84918e2ff679"
      ],
      "author": {
        "name": "Duncan",
        "email": "dev@chubbylemur.com",
        "time": "Tue Sep 08 23:19:35 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 09 14:19:35 2026 +0800"
      },
      "message": "feat(services/azblob): support custom credential providers (#8264)\n\nAdd `AzblobBuilder::credential_provider_chain` so applications that load\ncredentials dynamically, such as a SAS token refreshed while the operator\nstays alive, can inject a `ProvideCredentialChain` instead of rebuilding\nthe operator. Mirrors the azdls change in #8030.\n\nCloses #6581."
    },
    {
      "commit": "8ef2f57bb3192d20fdd463231d1f84918e2ff679",
      "tree": "e822f046a800a63b8778b4b462c49ad9133b2f67",
      "parents": [
        "37fe179d04897c210011d915a2d2eabcad645b78"
      ],
      "author": {
        "name": "Morpheus",
        "email": "40785143+Muzych@users.noreply.github.com",
        "time": "Wed Sep 09 10:24:08 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 09 10:24:08 2026 +0800"
      },
      "message": "fix(website): dedupe theme-common to stop mobile navbar crash (#8265)\n\npnpm can install two @docusaurus/theme-common copies with divergent peers, so swizzled navbar hooks miss NavbarMobileSidebarProvider when the viewport shrinks.\n\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e"
    },
    {
      "commit": "37fe179d04897c210011d915a2d2eabcad645b78",
      "tree": "b37c0a1363a3057df7279a78f4735c90b91dfe67",
      "parents": [
        "25454c7a05b96ed4b9a956ace68f05cded6bdb1f"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Wed Sep 09 01:53:53 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 09 01:53:53 2026 +0800"
      },
      "message": "refactor: unify async synchronization with asyncband (#8261)"
    },
    {
      "commit": "25454c7a05b96ed4b9a956ace68f05cded6bdb1f",
      "tree": "650a9e8aa90b78d227052c3a98236e70179404f5",
      "parents": [
        "4c1c49f0830437293f7c7450b33896ac83bd73e9"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Tue Sep 08 18:11:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 18:11:13 2026 +0800"
      },
      "message": "perf(services/gdrive): coalesce directory creation by parent and name (#8257)\n\n* perf(services/gdrive): coalesce directory creation by parent and name\n\n* test(services/gdrive): use asyncband semaphore"
    },
    {
      "commit": "4c1c49f0830437293f7c7450b33896ac83bd73e9",
      "tree": "6ec337380800e925cfa28b7a246ca6681b896572",
      "parents": [
        "486c4d6b275ff1906cc5b0cc0f01b2e61eb13eed"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Tue Sep 08 17:50:52 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 17:50:52 2026 +0800"
      },
      "message": "fix(services/seafile): retry incomplete authentication initialization (#8256)\n\n* fix(services/seafile): retry incomplete authentication initialization\n\n* test(services/seafile): use asyncband synchronization primitives"
    },
    {
      "commit": "486c4d6b275ff1906cc5b0cc0f01b2e61eb13eed",
      "tree": "6a44cce373843ef160a50354e4465d27d8c754b9",
      "parents": [
        "8e63915409f394c335124ee62e04c0eb03727cbd"
      ],
      "author": {
        "name": "Krisztián Szűcs",
        "email": "szucs.krisztian@gmail.com",
        "time": "Tue Sep 08 10:25:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 16:25:24 2026 +0800"
      },
      "message": "fix(services/hf): follow case redirects instead of resolving the canonical repo id (#8225)\n\n#8108 fixed writes against a repo id that differs in case from the\ncanonical one (#8107) by fetching repo-info on first use and building every\nURL from the returned id. That costs each Operator an extra /api request and\nmade URL construction async.\n\nReplace it with HfCore::send, which re-issues a request once when HF answers\n307/308 with a Location on the configured endpoint. Other hosts are not\nfollowed, so the bearer token stays on the endpoint, and the refused\nredirect is named in the error.\n\nAlso trim a trailing slash from the resolved endpoint, as azblob, azdls,\nazfile, alluxio and cloudflare-kv already do. Every URL is built by\nappending `/api/...` to it, so `HF_ENDPOINT\u003dhttps://huggingface.co/`\nproduced `//api/...`, which HF answers with 404. Normalizing there also\nlets `send` compare the Location against the endpoint directly instead of\npicking the origin out of it.\n\nVerified live against huggingface.co with an upper-cased dataset id: the\nstock reqwest transport follows the GET redirects itself but hands bodied\nPOSTs (commit, paths-info) back as bare 307s, which is the #8107 failure.\nWith send, write, stat, read and delete succeed in both download modes."
    },
    {
      "commit": "8e63915409f394c335124ee62e04c0eb03727cbd",
      "tree": "398ef24e8a7908bc0de5445cb50ce851a9a1cf4c",
      "parents": [
        "90cab80d0ac6beff9e5a2e6eba31659a21cf0936"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Sep 08 16:24:30 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 16:24:30 2026 +0800"
      },
      "message": "chore(deps): bump unified from 11.0.4 to 11.0.5 in /website in the others group (#8210)\n\n* chore(deps): bump unified in /website in the others group\n\nBumps the others group in /website with 1 update: [unified](https://github.com/unifiedjs/unified).\n\n\nUpdates `unified` from 11.0.4 to 11.0.5\n- [Release notes](https://github.com/unifiedjs/unified/releases)\n- [Changelog](https://github.com/unifiedjs/unified/blob/main/changelog.md)\n- [Commits](https://github.com/unifiedjs/unified/compare/11.0.4...11.0.5)\n\n---\nupdated-dependencies:\n- dependency-name: unified\n  dependency-version: 11.0.5\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: others\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Update unified dependency version to 11.0.5\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Asuka Minato \u003ci@asukaminato.eu.org\u003e"
    },
    {
      "commit": "90cab80d0ac6beff9e5a2e6eba31659a21cf0936",
      "tree": "91106c978c43e48c60d40c1e1981980fcba4831f",
      "parents": [
        "b6cf44f7b8a1523409e0e998e478c996ac970f03"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Tue Sep 08 16:23:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 08 16:23:42 2026 +0800"
      },
      "message": "fix(ci): dispatch weekly RC builds and notify release managers (#8241)\n\n* fix(ci): dispatch weekly RC builds and notify release managers\n\n* docs(release): align release guidance with weekly candidate automation"
    },
    {
      "commit": "b6cf44f7b8a1523409e0e998e478c996ac970f03",
      "tree": "b70edbc993f790e3dabc7225171949347dbcf90a",
      "parents": [
        "75f8f6db5b2ddaa81ab0362fb0bfd85ba5029d0e"
      ],
      "author": {
        "name": "Yifan Song",
        "email": "ericoolen@yeah.net",
        "time": "Mon Sep 07 17:52:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 17:52:12 2026 +0800"
      },
      "message": "feat(bindings/moonbit): initialize native binding (#8118)\n\n* feat(bindings/moonbit): add native memory binding\n\n* refactor(bindings/moonbit): own native Rust bridge\n\n* refactor(bindings/moonbit): remove provisional test scaffolding\n\n* refactor(bindings/moonbit): remove fixed read limit\n\n* refactor(bindings/moonbit): simplify native bridge\n\n* refactor(bindings/moonbit): simplify internal errors\n\n* refactor(bindings/moonbit): narrow initial binding scope"
    },
    {
      "commit": "75f8f6db5b2ddaa81ab0362fb0bfd85ba5029d0e",
      "tree": "9b2ba76b898d632b886395c96362ed6d39444d0f",
      "parents": [
        "f0e5d209878bdb55c7ad7eb6d9e4895b9dfb598d"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Sep 07 16:31:23 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 16:31:23 2026 +0800"
      },
      "message": "fix(release): install cargo-deny for weekly preparation (#8240)"
    },
    {
      "commit": "f0e5d209878bdb55c7ad7eb6d9e4895b9dfb598d",
      "tree": "c187b7e0d2b5048a94e2c4c5e2de696650c7c356",
      "parents": [
        "4b132b0d33c8a5b84ff83f6fcfbab264860c5b3d"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Sep 07 16:09:42 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 16:09:42 2026 +0800"
      },
      "message": "fix(release): use dispatch commit for manual candidates (#8239)"
    },
    {
      "commit": "4b132b0d33c8a5b84ff83f6fcfbab264860c5b3d",
      "tree": "65d687ea9ee22d912db739ca676149ed88ab14c1",
      "parents": [
        "bfa5b6d4184d327883baeabad08dda3749a223d7"
      ],
      "author": {
        "name": "tison",
        "email": "wander4096@gmail.com",
        "time": "Mon Sep 07 15:16:20 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 15:16:20 2026 +0800"
      },
      "message": "refactor: consolidate async primitives on asyncband 0.7.1 (#8219)"
    },
    {
      "commit": "bfa5b6d4184d327883baeabad08dda3749a223d7",
      "tree": "b990530362172ad311b01bb20ea9a22b614396e5",
      "parents": [
        "66e0ca078411c398565c447b5153f269ec488fce"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Sep 07 14:53:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 14:53:54 2026 +0800"
      },
      "message": "feat(release): prepare weekly ATR source candidates (#8237)\n\n* feat(release): prepare weekly ATR source candidates\n\n* refactor(release): restart weekly candidates without a state journal\n\n* refactor(release): reuse existing tools for weekly preparation\n\n* refactor(release): remove weekly CI workflow calls\n\n* fix(release): compose weekly candidates without manual merging"
    },
    {
      "commit": "66e0ca078411c398565c447b5153f269ec488fce",
      "tree": "87f5ce9ef17d439b482e5b64ab854e6b569e862f",
      "parents": [
        "8172b4101f1fec9c4e153d50b43ac2bec9364261"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Sep 07 14:27:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 14:27:27 2026 +0800"
      },
      "message": "chore(bindings/nodejs): remove Deno benchmark (#8238)"
    },
    {
      "commit": "8172b4101f1fec9c4e153d50b43ac2bec9364261",
      "tree": "83608ab7316a2c7597bff0974d5537d8471259c7",
      "parents": [
        "71ca558edea50d5c01e61476d6d0b91e245c2c23"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Sep 07 13:23:39 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 13:23:39 2026 +0800"
      },
      "message": "fix(ci): make release docs deployment recoverable (#8221)"
    },
    {
      "commit": "71ca558edea50d5c01e61476d6d0b91e245c2c23",
      "tree": "84a497968bdee73459dc393a809bc261c3935b05",
      "parents": [
        "27c0fb88c6c83666acf954857ba397fef591e73d"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Sep 07 13:23:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 13:23:07 2026 +0800"
      },
      "message": "fix(core): release successful task inputs before collecting results (#8224)\n\n* fix(core): release successful task inputs before collecting results\n\n* refactor(core): keep task spawning private to ConcurrentTasks"
    },
    {
      "commit": "27c0fb88c6c83666acf954857ba397fef591e73d",
      "tree": "e23ba338b85d78592790790da92110d544da27e1",
      "parents": [
        "a9ea9e28e9dafc9a8d058c34f8418ff0f98216f5"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Sep 07 09:43:17 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 09:43:17 2026 +0800"
      },
      "message": "chore(release): allow direct source candidate dispatch from release branches (#8235)\n\n* chore(release): remove the source candidate enablement switch\n\n* chore(release): support candidate dispatch from release branches"
    },
    {
      "commit": "a9ea9e28e9dafc9a8d058c34f8418ff0f98216f5",
      "tree": "608e79a7fde927c98f33eaa3031be89dd2beda2c",
      "parents": [
        "0e9cf8c9f24526e69e70ac1bdc96c7a193e867e4"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Sep 07 09:35:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 09:35:29 2026 +0800"
      },
      "message": "chore(release): remove the source release environment (#8234)\n\n* chore(release): remove redundant source signing approval\n\n* chore(release): remove the source release environment"
    },
    {
      "commit": "0e9cf8c9f24526e69e70ac1bdc96c7a193e867e4",
      "tree": "7374f4872b9d31fefeb52babb81328bb9e189d57",
      "parents": [
        "04434147887f6dd6b06e49183fcd44b166be4d77"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Sep 07 09:28:20 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 09:28:20 2026 +0800"
      },
      "message": "feat(release): reproduce source archives and prepare ATR candidates (#8232)\n\n* fix(dev): make source release archives reproducible\n\n* refactor(dev): place archive tests after release helpers\n\n* fix(ci): use canonical ASF header in reproduction script\n\n* docs(release): record reproduction evidence and CI signing proposal\n\n* feat(release): prepare source candidates with ATR trusted publishing\n\n* chore: recognize GnuPG fingerprint records in spellcheck\n\n* chore(release): reuse the existing Services RM signing key"
    },
    {
      "commit": "04434147887f6dd6b06e49183fcd44b166be4d77",
      "tree": "81531eeaf9cb1baeca5a56633631c949724af7d9",
      "parents": [
        "a3e2bd4b6944517ac897c7476de7bfdd9a66d897"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Sep 07 09:07:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 07 09:07:54 2026 +0800"
      },
      "message": "docs: split release skill into focused references (#8233)"
    },
    {
      "commit": "a3e2bd4b6944517ac897c7476de7bfdd9a66d897",
      "tree": "2be809f04fada3fefd928b3b9b09c33333b04ed9",
      "parents": [
        "8f70b0ea23568cecf9ee93ed226f6874594c9856"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Sun Sep 06 14:07:07 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 06 14:07:07 2026 +0800"
      },
      "message": "fix(release): repair source archives and license materials (#8230)\n\n* fix(release): repair source archives and wheel license metadata\n\n* chore(release): simplify artifact packaging checks\n\n* docs(python): scope bundled GCC license to libgcc\n\n* fix(java): format source assembly license header"
    },
    {
      "commit": "8f70b0ea23568cecf9ee93ed226f6874594c9856",
      "tree": "f3501c9598fc342bd6fc1bf4a12dfc91045d04ce",
      "parents": [
        "dcdd66091828a6a2a6f0981a0a84024d11ff2413"
      ],
      "author": {
        "name": "Fatorin",
        "email": "sksly789@gmail.com",
        "time": "Sun Sep 06 13:24:05 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 06 13:24:05 2026 +0800"
      },
      "message": "chore(bindings/dotnet): fix license headers and third-party license accounting (#8217)\n\n* chore(bindings/dotnet): add ASF license headers to project files\n\nThe .csproj and .slnx files carried no ASF header, and HawkEye\u0027s default\nmapping does not cover those extensions, so the license check reported them\nas unknown and passed. Add the headers and map both extensions to XML_STYLE\nso the check covers them from now on.\n\n* chore(bindings/dotnet): account for bundled third-party licenses\n\nThe source archive ships bindings/dotnet/.gitignore, derived from\ngithub/gitignore under CC0-1.0, but neither the archive root LICENSE nor the\nbinding\u0027s own LICENSE mentioned it. Bundle the CC0-1.0 text and list the\nsubcomponent in both.\n\nThe NuGet package already ships LICENSE-MPL-2.0.txt for the MPL crates linked\ninto the native library, with the crates listed only in README. Record them in\nthe packaged LICENSE as well."
    },
    {
      "commit": "dcdd66091828a6a2a6f0981a0a84024d11ff2413",
      "tree": "db8755eab54971b64b58584827a67926cf8090bc",
      "parents": [
        "8fcab844af9ad4b8ad91e6de58ea7fbeb051eba2"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Sat Sep 05 15:28:18 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Sep 05 15:28:18 2026 +0800"
      },
      "message": "chore: prepare release v0.59.1 (#8228)\n\n* chore: prepare release v0.59.1\n\n* fix(bindings/nodejs): sync generated loader version for release"
    },
    {
      "commit": "8fcab844af9ad4b8ad91e6de58ea7fbeb051eba2",
      "tree": "e81ca4211b5e22befa975b802ce19169c920948e",
      "parents": [
        "54b33a16284da7c781824474cc1555e5ee379a51"
      ],
      "author": {
        "name": "Gergely Nagy",
        "email": "ngg@users.noreply.github.com",
        "time": "Fri Sep 04 16:59:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 04 22:59:27 2026 +0800"
      },
      "message": "fix(core): include changelog in opendal-core package (#8223)"
    },
    {
      "commit": "54b33a16284da7c781824474cc1555e5ee379a51",
      "tree": "79dc6109ead73c1e1e802f4b95cf3dc744ad7488",
      "parents": [
        "72ef3f673dd4451f0969563b5a2def3f45cf80fb"
      ],
      "author": {
        "name": "ForwardXu",
        "email": "forwardxu@apache.org",
        "time": "Fri Sep 04 15:43:28 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 04 15:43:28 2026 +0800"
      },
      "message": "fix(services/goosefs): resolve master addresses from goosefs-site.properties (#8216)\n\n`GoosefsBuilder::build()` overlaid `master_addr` on top of the config that\n`from_properties_auto()` had already resolved, so the URI authority of\n`goosefs://host:port/path` (or the `master_addr` option) always won and the\n`goosefs.master.rpc.addresses` / `goosefs.master.hostname` keys of a deployed\n`goosefs-site.properties` never reached the client. A client pointed at a site\nfile that lists the real HA masters still dialed the URI authority and failed\nwith a gRPC transport error.\n\n`build()` now resolves master addresses as `GOOSEFS_MASTER_ADDR` \u003e\n`goosefs-site.properties` \u003e `master_addr`. The site file outranks\n`master_addr` because it carries a deployment\u0027s whole HA master list, which a\nsingle URI authority cannot express, and `GOOSEFS_MASTER_ADDR` stays on top as\nthe per-process override. Because `from_properties_auto()` falls back to the\nSDK default `127.0.0.1:9200`, the builder now asks which source actually\ndeclared an address instead of reading the loaded value.\n\nUser-facing impact: a site file or `GOOSEFS_MASTER_ADDR` now supersedes the URI\nauthority and the `master_addr` option, and `build()` fails with\n`ConfigInvalid` when no source supplies an address instead of silently dialing\n`127.0.0.1:9200`.\n\nBump goosefs-sdk to 0.1.9 for RUSTSEC-2026-0002 (`lru` \u003e\u003d 0.16.3) and master\nconnection pooling. 0.1.9 does not yet honor `$GOOSEFS_CONF_DIR`;\n`$GOOSEFS_CONFIG_FILE` remains the way to point at a file outside the searched\ndirectories. Regenerated Java, .NET, and website docs for the new\n`master_addr` precedence."
    },
    {
      "commit": "72ef3f673dd4451f0969563b5a2def3f45cf80fb",
      "tree": "21794a496fc4d04074309aa55e9e3c30c5efb28d",
      "parents": [
        "2403cf8fff2ab52b9fb0f53b42e9157150e45250"
      ],
      "author": {
        "name": "ForwardXu",
        "email": "forwardxu@apache.org",
        "time": "Thu Sep 03 22:16:58 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 22:16:58 2026 +0800"
      },
      "message": "fix(ci/goosefs): switch the fixture image to GHCR v2.0.0 (#8214)"
    },
    {
      "commit": "2403cf8fff2ab52b9fb0f53b42e9157150e45250",
      "tree": "e39a5d9771afeff61ff409e2ff2d8981f0163951",
      "parents": [
        "767c734788053d26f196797fcefc06defd0ec119"
      ],
      "author": {
        "name": "ForwardXu",
        "email": "forwardxu@apache.org",
        "time": "Thu Sep 03 21:39:19 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 21:39:19 2026 +0800"
      },
      "message": "fix(ci): refresh apt index before installing packages (#8215)"
    },
    {
      "commit": "767c734788053d26f196797fcefc06defd0ec119",
      "tree": "cf4fa36684aa7e37328c4b44dce97d59493d23fb",
      "parents": [
        "670d8f9637ff79fd0a3a2f00cdf751fb3b11f994"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Thu Sep 03 15:22:33 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 03 15:22:33 2026 +0800"
      },
      "message": "docs: add conda-forge installation instructions (#8213)"
    },
    {
      "commit": "670d8f9637ff79fd0a3a2f00cdf751fb3b11f994",
      "tree": "8206b18728f398556ab598b86991a396f6e9608b",
      "parents": [
        "3e190ac6bad5b132d397d46a0650367e22e75026"
      ],
      "author": {
        "name": "Satyam Pandey",
        "email": "satyam53@tsecol.onmicrosoft.com",
        "time": "Tue Sep 01 10:15:12 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 12:45:12 2026 +0800"
      },
      "message": "feat(services/gcs): propagate response header overrides into presigned XML requests (#8206)\n\nPropagate override_content_disposition, override_content_type, and override_cache_control into query parameters (response-content-disposition, response-content-type, response-cache-control) for GCS XML GET and HEAD presigned requests.\n\nCloses #8187."
    },
    {
      "commit": "3e190ac6bad5b132d397d46a0650367e22e75026",
      "tree": "b348838c8cc6293ffcfbe84a863dc3ac4cf44624",
      "parents": [
        "dc6ea03b5563a490329b000b7d65206eb1702a35"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Tue Sep 01 01:26:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 01:26:45 2026 +0800"
      },
      "message": "chore(release): prepare v0.59.0 (#8208)\n\n* chore(release): prepare v0.59.0\n\n* docs: document v0.59 breaking changes"
    },
    {
      "commit": "dc6ea03b5563a490329b000b7d65206eb1702a35",
      "tree": "9d77fe648c727bb11d34c1545c5bdf2a05d160b6",
      "parents": [
        "33d4048cbadd9545d1f359cfa5bf816ad40445c2"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Aug 31 22:53:41 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 22:53:41 2026 +0800"
      },
      "message": "fix: preserve conditional error semantics (#8204)"
    },
    {
      "commit": "33d4048cbadd9545d1f359cfa5bf816ad40445c2",
      "tree": "3d9702f0afbd567c407777d97740bb94b111dbbd",
      "parents": [
        "1d09e7b77d14c3e106664543888edb18bf5d94be"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Aug 31 18:44:43 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 18:44:43 2026 +0800"
      },
      "message": "fix(website): update dependency license manifest (#8203)"
    },
    {
      "commit": "1d09e7b77d14c3e106664543888edb18bf5d94be",
      "tree": "b034610419933be7b373f366f2aeaec0f59eb036",
      "parents": [
        "a896c98b23de7a8c8717851c5391f3b5ca34c366"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Aug 31 18:29:11 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 18:29:11 2026 +0800"
      },
      "message": "test(core): cover compose if_not_changed (#8201)"
    },
    {
      "commit": "a896c98b23de7a8c8717851c5391f3b5ca34c366",
      "tree": "c17b8c12ae33f3244ba248ffe3cf568533898d60",
      "parents": [
        "5de8df3818d5f6f7e0621162ee38ca367d46737f"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Aug 31 17:30:40 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 17:30:40 2026 +0800"
      },
      "message": "docs: integrate specifications into the main sidebar (#8202)\n\ndocs: integrate specifications into main navigation"
    },
    {
      "commit": "5de8df3818d5f6f7e0621162ee38ca367d46737f",
      "tree": "ad47007621a24ef9a30870aafaba31c2f82c6cda",
      "parents": [
        "cf2a26e74441b2f8d7ab03124f1da2d8541f5e0f"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Aug 31 15:51:31 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 15:51:31 2026 +0800"
      },
      "message": "fix(services/gcs): make conditional uploads retry-safe (#8199)"
    },
    {
      "commit": "cf2a26e74441b2f8d7ab03124f1da2d8541f5e0f",
      "tree": "4940e3ba3385b7a7c8c7361374d069253d490a7d",
      "parents": [
        "56495b2e2035b3c8e90e674f0fc3187f5a5c2f73"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Aug 31 15:21:56 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 15:21:56 2026 +0800"
      },
      "message": "fix(services): return authoritative copy metadata (#8197)\n\n* refactor!: compact metadata and operation arguments\n\n* refactor(core): simplify compact metadata implementation\n\n* refactor(core): require file length in metadata builder\n\n* refactor(core): simplify operation argument construction\n\n* fix(opfs): build metadata before returning\n\n* fix(services): preserve directory metadata for marker paths\n\n* fix(services): provide authoritative operation metadata\n\n* fix(services): return authoritative copy metadata"
    },
    {
      "commit": "56495b2e2035b3c8e90e674f0fc3187f5a5c2f73",
      "tree": "370e0e46fbbc82dfd8ef85564fa78956e62eaa97",
      "parents": [
        "7c8f580724d21134dfc97d1db72608d9c2c329c5"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Aug 31 12:11:00 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 12:11:00 2026 +0800"
      },
      "message": "feat(services/gcs): support compose (#8191)"
    },
    {
      "commit": "7c8f580724d21134dfc97d1db72608d9c2c329c5",
      "tree": "3e3b358b2a71da98e8d37521e5e8efc40b923498",
      "parents": [
        "0f4ca09a6ed6984a981b1a5912566c78fd27c635"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Aug 31 03:01:32 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 31 03:01:32 2026 +0800"
      },
      "message": "refactor!: compact metadata and operation arguments (#8196)"
    },
    {
      "commit": "0f4ca09a6ed6984a981b1a5912566c78fd27c635",
      "tree": "a0b4bf91bd5a16175d7bd45342b257b7a7422331",
      "parents": [
        "639e0f4f807e778ebf6dd8c0235d5245e2c5dfb7"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Sat Aug 29 22:11:48 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 29 22:11:48 2026 +0800"
      },
      "message": "RFC: Compact metadata and operation arguments (#8194)"
    },
    {
      "commit": "639e0f4f807e778ebf6dd8c0235d5245e2c5dfb7",
      "tree": "3ae9faed1cd83fb2a9a1d2a41d27b4eb2539aacf",
      "parents": [
        "12048da0d18160ed74416f05943c4812ef7c7ccc"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Sat Aug 29 01:52:12 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 29 01:52:12 2026 +0800"
      },
      "message": "perf(core): defer stat for unbounded async readers (#8181)\n\n* perf(core): defer stat for unbounded async readers\n\n* perf(core): avoid length lookups for unbounded seeks\n\n* fix(core): propagate bounded range errors\n\n* test: align lazy reader error timing"
    },
    {
      "commit": "12048da0d18160ed74416f05943c4812ef7c7ccc",
      "tree": "a531104ecbce5820438e141d40df03fc4665f827",
      "parents": [
        "82c7bad662809307ba7153721908864544dc5843"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Fri Aug 28 17:23:21 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 17:23:21 2026 +0800"
      },
      "message": "docs: add RFC for whole-object composition (#8188)\n\n* docs: add RFC for whole-object composition\n\n* docs: link compose RFC pull request\n\n* docs: rename compose RFC after pull request"
    },
    {
      "commit": "82c7bad662809307ba7153721908864544dc5843",
      "tree": "0a12992ea1ffbd15e80939ac613e0d001d85a3cb",
      "parents": [
        "d6a4fa3837dc0d0ab92defefd3e701a2abdbc9a0"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Fri Aug 28 17:23:13 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 17:23:13 2026 +0800"
      },
      "message": "refactor!: merge OpCopier into OpCopy (#8190)\n\nBREAKING CHANGE: Service::copy now receives all copy execution options through OpCopy and no longer accepts OpCopier."
    },
    {
      "commit": "d6a4fa3837dc0d0ab92defefd3e701a2abdbc9a0",
      "tree": "c84ebd9a9f0e274cc07cbf8c50277790a41b4d21",
      "parents": [
        "ba9bba03f45bd334161872f9a9275182fed463b6"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Fri Aug 28 17:15:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 17:15:54 2026 +0800"
      },
      "message": "fix(bindings/python): remove greenlet benchmark dependencies (#8189)"
    },
    {
      "commit": "ba9bba03f45bd334161872f9a9275182fed463b6",
      "tree": "09a89b8535d43d149e82127e4071ad1cf4ddaeb8",
      "parents": [
        "353fc7526666e77db23c5fb60b53df3f1b0159bc"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Fri Aug 28 15:22:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 15:22:54 2026 +0800"
      },
      "message": "fix: update generated gcs-grpc service docs (#8186)"
    },
    {
      "commit": "353fc7526666e77db23c5fb60b53df3f1b0159bc",
      "tree": "af23bc8eb72e5fda6cd54647a4f1c2728a94451c",
      "parents": [
        "250a6b1d2b35254af5991338fd613ea944ef086e"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Fri Aug 28 15:20:29 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 15:20:29 2026 +0800"
      },
      "message": "chore(services/ftp): upgrade suppaftp to 10 and switch to tokio (#8184)"
    },
    {
      "commit": "250a6b1d2b35254af5991338fd613ea944ef086e",
      "tree": "307de35b11f95de616b20f66a5508857eb8acb19",
      "parents": [
        "302805dbb47f680e373bf0c2c1cd7c3586f63f1c"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Fri Aug 28 15:20:14 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 15:20:14 2026 +0800"
      },
      "message": "docs: establish OpenDAL specifications (#8183)"
    },
    {
      "commit": "302805dbb47f680e373bf0c2c1cd7c3586f63f1c",
      "tree": "010d0ea74bf2c16259cddd0df32f0a1ed3f8664c",
      "parents": [
        "6e921175e553c79a50eaed8e06f0a82f17c4e24a"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Fri Aug 28 14:28:20 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 14:28:20 2026 +0800"
      },
      "message": "fix(bindings): enable gcs-grpc service (#8185)"
    },
    {
      "commit": "6e921175e553c79a50eaed8e06f0a82f17c4e24a",
      "tree": "98cd66a34574caaed232055394614cecf8d9a286",
      "parents": [
        "5a9a58bb75528fd9b360e9facbb7688e135e5f3c"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Fri Aug 28 13:44:43 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 13:44:43 2026 +0800"
      },
      "message": "feat(services/gcs-grpc): add GCS gRPC service (#8153)\n\n* feat(services/gcs-grpc): add GCS gRPC service\n\n* test(services/gcs-grpc): add behavior test\n\n* fix(services/gcs-grpc): preserve routing resource paths\n\n* fix(services/gcs-grpc): route resumable writes by upload ID\n\n* fix(services/gcs-grpc): bind resumable routing to bucket\n\n* chore(services/gcs-grpc): update generated service metadata"
    },
    {
      "commit": "5a9a58bb75528fd9b360e9facbb7688e135e5f3c",
      "tree": "e10e47144abb27c67448a3d88ee541a37fd254b8",
      "parents": [
        "8c1711729adec09abe16f9eb44b7f6dec2d6605d"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Fri Aug 28 13:43:54 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 13:43:54 2026 +0800"
      },
      "message": "perf(bindings/python): release GIL during blocking operator I/O (#8180)\n\nperf(bindings/python): release GIL during blocking I/O"
    },
    {
      "commit": "8c1711729adec09abe16f9eb44b7f6dec2d6605d",
      "tree": "06cb39f332865d60f2ef6074b5fc33b2e44c6e22",
      "parents": [
        "d95cdc13f75a4d701a02d9adf960e4eb47446cbb"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Fri Aug 28 13:43:45 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 13:43:45 2026 +0800"
      },
      "message": "perf(bindings/python): avoid intermediate buffers in file reads (#8179)\n\nperf(bindings/python): avoid intermediate file read buffers"
    },
    {
      "commit": "d95cdc13f75a4d701a02d9adf960e4eb47446cbb",
      "tree": "2a8cd7edaada95ae4f040e5c56b7b3f142a83b48",
      "parents": [
        "4e67f7ebdeda5eb13d941d921f0381448511c981"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Fri Aug 28 02:34:11 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 28 02:34:11 2026 +0800"
      },
      "message": "refactor(services): standardize error normalization (#8174)"
    },
    {
      "commit": "4e67f7ebdeda5eb13d941d921f0381448511c981",
      "tree": "c2d80e7a9cd44b6173070d7e5fe49baee6c3ada7",
      "parents": [
        "d5dd6dfa39ea97189aad46a6be611c6cb32b5351"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Thu Aug 27 23:55:55 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 27 23:55:55 2026 +0800"
      },
      "message": "fix(core): align conditional missing-target semantics (#8172)\n\n* fix(core): preserve not found for conditional reads\n\n* refactor(gcs): preserve native not found errors\n\n* fix(core): align conditional delete semantics\n\n* fix(azblob): preserve missing target semantics\n\n* refactor(core): exclude wildcard delete conditions\n\n* fix(azblob): preserve copy condition context\n\n* test(s3): align SeaweedFS conditional capabilities\n\n* docs(core): fix delete options link\n\n* fix(webdav): preserve missing conditional reads"
    },
    {
      "commit": "d5dd6dfa39ea97189aad46a6be611c6cb32b5351",
      "tree": "f5e886858f08f9c46382cb120abff0beda9108fa",
      "parents": [
        "e6ac14c937b8bf519a1d85cdaef6ea7a8525ec4a"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Thu Aug 27 18:14:27 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 27 18:14:27 2026 +0800"
      },
      "message": "fix: repair azfile, b2, and conditional read behavior (#8175)"
    },
    {
      "commit": "e6ac14c937b8bf519a1d85cdaef6ea7a8525ec4a",
      "tree": "5a8caad264696800adb2116c352f00a2b6b3a13d",
      "parents": [
        "7c5688229a94430a6fb1b7a04a4af6368b508ec8"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Thu Aug 27 16:49:44 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 27 16:49:44 2026 +0800"
      },
      "message": "perf(bindings/python): avoid copying bytes in async file writes (#8171)"
    }
  ],
  "next": "7c5688229a94430a6fb1b7a04a4af6368b508ec8"
}
