From da0cb520f7f428e12c229838509fa78de86d60e2 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 23 Jun 2026 15:01:04 +0800 Subject: [PATCH] =?UTF-8?q?chore(release):=20v4.2.1=20=E2=80=94=20fix=20Py?= =?UTF-8?q?thon=20SDK=20wheel=20build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 4.2.0 release published to crates.io and npm but the Python SDK wheel build failed (so PyPI + GitHub Release were skipped): error[E0063]: missing field `allow_manual_delegation` in initializer of `AutoDelegationConfig` The `PyAutoDelegationConfig -> AutoDelegationConfig` conversion used a struct literal that didn't include the `allow_manual_delegation` field added to the core config. Core CI never caught it because the SDKs are excluded from the core workspace and only built at release time (maturin). The Node SDK was fine — it builds the config via `Default::default()` + field assignment. Fix: the Python conversion now uses `..Default::default()` for fields it does not expose, so new core fields can't break the wheel build again. Verified the Python SDK compiles. Version bumped 4.2.0 -> 4.2.1 to complete the release across all channels. --- CHANGELOG.md | 12 ++++++++++++ Cargo.lock | 2 +- core/Cargo.toml | 2 +- sdk/node/Cargo.toml | 4 ++-- sdk/node/examples/package-lock.json | 14 +++++++------- sdk/node/package-lock.json | 16 ++++++++-------- sdk/node/package.json | 14 +++++++------- sdk/python-bootstrap/pyproject.toml | 2 +- sdk/python-bootstrap/src/a3s_code/_bootstrap.py | 2 +- sdk/python/Cargo.lock | 4 ++-- sdk/python/Cargo.toml | 4 ++-- sdk/python/pyproject.toml | 2 +- sdk/python/src/lib.rs | 4 ++++ 13 files changed, 49 insertions(+), 33 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc1c1aa5..19a0f490 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [4.2.1] - 2026-06-23 + +### Fixed + +- Python SDK wheel build (and therefore the PyPI + GitHub Release publish steps) + failed for 4.2.0: the `PyAutoDelegationConfig → AutoDelegationConfig` + conversion used a struct literal that omitted the `allow_manual_delegation` + field added to `AutoDelegationConfig`. The conversion now falls back to core + defaults for fields the Python SDK does not expose, so future core fields no + longer break the wheel build. (The crates.io and npm 4.2.0 artifacts were + unaffected; 4.2.1 completes the release across all channels.) + ## [4.2.0] - 2026-06-23 ### Added diff --git a/Cargo.lock b/Cargo.lock index 2a23729a..5279689c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -37,7 +37,7 @@ dependencies = [ [[package]] name = "a3s-code-core" -version = "4.2.0" +version = "4.2.1" dependencies = [ "a3s-acl 0.2.0", "a3s-ahp", diff --git a/core/Cargo.toml b/core/Cargo.toml index 2740ec0c..160c568b 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "a3s-code-core" -version = "4.2.0" +version = "4.2.1" edition = "2021" authors = ["A3S Lab Team"] license = "MIT" diff --git a/sdk/node/Cargo.toml b/sdk/node/Cargo.toml index caa7fcee..4a848467 100644 --- a/sdk/node/Cargo.toml +++ b/sdk/node/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "a3s-code-node" -version = "4.2.0" +version = "4.2.1" edition = "2021" authors = ["A3S Lab Team"] license = "MIT" @@ -11,7 +11,7 @@ description = "A3S Code Node.js bindings - Native addon via napi-rs" crate-type = ["cdylib"] [dependencies] -a3s-code-core = { version = "4.2.0", path = "../../core", features = ["ahp", "s3", "serve"] } +a3s-code-core = { version = "4.2.1", path = "../../core", features = ["ahp", "s3", "serve"] } napi = { version = "2", features = ["async", "napi6", "serde-json"] } napi-derive = "2" tokio = { version = "1.35", features = ["full"] } diff --git a/sdk/node/examples/package-lock.json b/sdk/node/examples/package-lock.json index 3a92f0d2..abf23c14 100644 --- a/sdk/node/examples/package-lock.json +++ b/sdk/node/examples/package-lock.json @@ -18,7 +18,7 @@ }, "..": { "name": "@a3s-lab/code", - "version": "4.2.0", + "version": "4.2.1", "license": "MIT", "devDependencies": { "@napi-rs/cli": "^2", @@ -27,12 +27,12 @@ "typescript": "^5.9.3" }, "optionalDependencies": { - "@a3s-lab/code-darwin-arm64": "4.2.0", - "@a3s-lab/code-linux-arm64-gnu": "4.2.0", - "@a3s-lab/code-linux-arm64-musl": "4.2.0", - "@a3s-lab/code-linux-x64-gnu": "4.2.0", - "@a3s-lab/code-linux-x64-musl": "4.2.0", - "@a3s-lab/code-win32-x64-msvc": "4.2.0" + "@a3s-lab/code-darwin-arm64": "4.2.1", + "@a3s-lab/code-linux-arm64-gnu": "4.2.1", + "@a3s-lab/code-linux-arm64-musl": "4.2.1", + "@a3s-lab/code-linux-x64-gnu": "4.2.1", + "@a3s-lab/code-linux-x64-musl": "4.2.1", + "@a3s-lab/code-win32-x64-msvc": "4.2.1" } }, "node_modules/@a3s-lab/code": { diff --git a/sdk/node/package-lock.json b/sdk/node/package-lock.json index e3af6c9b..aa62ab14 100644 --- a/sdk/node/package-lock.json +++ b/sdk/node/package-lock.json @@ -1,12 +1,12 @@ { "name": "@a3s-lab/code", - "version": "4.2.0", + "version": "4.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@a3s-lab/code", - "version": "4.2.0", + "version": "4.2.1", "license": "MIT", "devDependencies": { "@napi-rs/cli": "^2", @@ -15,12 +15,12 @@ "typescript": "^5.9.3" }, "optionalDependencies": { - "@a3s-lab/code-darwin-arm64": "4.2.0", - "@a3s-lab/code-linux-arm64-gnu": "4.2.0", - "@a3s-lab/code-linux-arm64-musl": "4.2.0", - "@a3s-lab/code-linux-x64-gnu": "4.2.0", - "@a3s-lab/code-linux-x64-musl": "4.2.0", - "@a3s-lab/code-win32-x64-msvc": "4.2.0" + "@a3s-lab/code-darwin-arm64": "4.2.1", + "@a3s-lab/code-linux-arm64-gnu": "4.2.1", + "@a3s-lab/code-linux-arm64-musl": "4.2.1", + "@a3s-lab/code-linux-x64-gnu": "4.2.1", + "@a3s-lab/code-linux-x64-musl": "4.2.1", + "@a3s-lab/code-win32-x64-msvc": "4.2.1" } }, "node_modules/@a3s-lab/code-darwin-arm64": { diff --git a/sdk/node/package.json b/sdk/node/package.json index 36ecb22b..83c23ec1 100644 --- a/sdk/node/package.json +++ b/sdk/node/package.json @@ -1,6 +1,6 @@ { "name": "@a3s-lab/code", - "version": "4.2.0", + "version": "4.2.1", "description": "A3S Code - Native Node.js bindings for the coding-agent runtime", "main": "index.js", "types": "index.d.ts", @@ -43,11 +43,11 @@ "test:helpers": "node test-helpers.mjs" }, "optionalDependencies": { - "@a3s-lab/code-darwin-arm64": "4.2.0", - "@a3s-lab/code-linux-x64-gnu": "4.2.0", - "@a3s-lab/code-linux-x64-musl": "4.2.0", - "@a3s-lab/code-linux-arm64-gnu": "4.2.0", - "@a3s-lab/code-linux-arm64-musl": "4.2.0", - "@a3s-lab/code-win32-x64-msvc": "4.2.0" + "@a3s-lab/code-darwin-arm64": "4.2.1", + "@a3s-lab/code-linux-x64-gnu": "4.2.1", + "@a3s-lab/code-linux-x64-musl": "4.2.1", + "@a3s-lab/code-linux-arm64-gnu": "4.2.1", + "@a3s-lab/code-linux-arm64-musl": "4.2.1", + "@a3s-lab/code-win32-x64-msvc": "4.2.1" } } diff --git a/sdk/python-bootstrap/pyproject.toml b/sdk/python-bootstrap/pyproject.toml index 6a98a254..3b10189d 100644 --- a/sdk/python-bootstrap/pyproject.toml +++ b/sdk/python-bootstrap/pyproject.toml @@ -7,7 +7,7 @@ name = "a3s-code" # Keep in sync with crates/code core release. The bootstrap loader fetches # the matching native wheel from `https://github.com/AI45Lab/Code/releases/tag/v` # at import time. -version = "4.2.0" +version = "4.2.1" description = "A3S Code Python SDK — pure-Python bootstrap that fetches the native wheel from GitHub Releases" readme = "README.md" license = {text = "MIT"} diff --git a/sdk/python-bootstrap/src/a3s_code/_bootstrap.py b/sdk/python-bootstrap/src/a3s_code/_bootstrap.py index fa1b0e59..f0d30755 100644 --- a/sdk/python-bootstrap/src/a3s_code/_bootstrap.py +++ b/sdk/python-bootstrap/src/a3s_code/_bootstrap.py @@ -31,7 +31,7 @@ # Version is the bootstrap's own version, which equals the matching native # wheel version on GH Releases. Bumped by the release workflow. -__version__ = "4.2.0" +__version__ = "4.2.1" _DEFAULT_BASE_URL = "https://github.com/AI45Lab/Code/releases/download" _REQUEST_TIMEOUT_S = 120 diff --git a/sdk/python/Cargo.lock b/sdk/python/Cargo.lock index c00d09b7..114965d2 100644 --- a/sdk/python/Cargo.lock +++ b/sdk/python/Cargo.lock @@ -37,7 +37,7 @@ dependencies = [ [[package]] name = "a3s-code-core" -version = "4.1.0" +version = "4.2.1" dependencies = [ "a3s-acl 0.2.0", "a3s-ahp", @@ -92,7 +92,7 @@ dependencies = [ [[package]] name = "a3s-code-py" -version = "4.1.0" +version = "4.2.1" dependencies = [ "a3s-code-core", "anyhow", diff --git a/sdk/python/Cargo.toml b/sdk/python/Cargo.toml index 72ff19de..cff2a159 100644 --- a/sdk/python/Cargo.toml +++ b/sdk/python/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "a3s-code-py" -version = "4.2.0" +version = "4.2.1" edition = "2021" authors = ["A3S Lab Team"] license = "MIT" @@ -12,7 +12,7 @@ name = "a3s_code" crate-type = ["cdylib"] [dependencies] -a3s-code-core = { version = "4.2.0", path = "../../core", features = ["ahp", "s3", "serve"] } +a3s-code-core = { version = "4.2.1", path = "../../core", features = ["ahp", "s3", "serve"] } pyo3 = "0.23" tokio = { version = "1.35", features = ["full"] } serde_json = "1.0" diff --git a/sdk/python/pyproject.toml b/sdk/python/pyproject.toml index b7136872..2b50765a 100644 --- a/sdk/python/pyproject.toml +++ b/sdk/python/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "a3s-code" -version = "4.2.0" +version = "4.2.1" description = "A3S Code - Native Python bindings for the coding-agent runtime" readme = "README.md" license = {text = "MIT"} diff --git a/sdk/python/src/lib.rs b/sdk/python/src/lib.rs index 18951237..589f4ed6 100644 --- a/sdk/python/src/lib.rs +++ b/sdk/python/src/lib.rs @@ -4744,6 +4744,10 @@ impl From for a3s_code_core::AutoDelegationConfig { auto_parallel: config.auto_parallel, min_confidence: config.min_confidence.clamp(0.0, 1.0), max_tasks: config.max_tasks.max(1), + // Core fields not exposed by the Python SDK (e.g. + // `allow_manual_delegation`) take their core defaults, so adding a + // field to `AutoDelegationConfig` no longer breaks this wheel build. + ..Default::default() } } }