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 cc1c1aa..19a0f49 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 2a23729..5279689 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 2740ec0..160c568 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 caa7fce..4a84846 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 3a92f0d..abf23c1 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 e3af6c9..aa62ab1 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 36ecb22..83c23ec 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 6a98a25..3b10189 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 fa1b0e5..f0d3075 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 c00d09b..114965d 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 72ff19d..cff2a15 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 b713687..2b50765 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 1895123..589f4ed 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() } } }