Skip to content

Commit 856d3f8

Browse files
ZhiXiao-Linclaude
andauthored
chore(release): v4.2.0 (#79)
Co-authored-by: Claude <claude@anthropic.com>
1 parent e7d01cc commit 856d3f8

11 files changed

Lines changed: 52 additions & 31 deletions

File tree

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,27 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [4.2.0] - 2026-06-23
9+
10+
### Added
11+
12+
- Native structured-output enforcement. `LlmClient` gains
13+
`native_structured_support()`, `complete_structured()`, and
14+
`complete_streaming_structured()` (all with non-breaking default impls). The
15+
structured engine now forces the provider `tool_choice` for tool mode and
16+
requests native `response_format` (`json_schema` / `json_object`) where the
17+
provider supports it, instead of merely offering a tool the model could ignore.
18+
19+
### Fixed
20+
21+
- Stabilized JSON-object generation. Forced `tool_choice` on both the blocking
22+
and streaming paths guarantees the model emits the structured object rather
23+
than prose or malformed tool arguments.
24+
- Hardened the planner / pre-analysis JSON parsing: it now reuses the robust
25+
shared extractor (markdown fences, surrounding prose, braces inside strings)
26+
and adds one repair retry, replacing the previous naive first-`{`/last-`}`
27+
slice that hard-errored on fenced or prose-wrapped output.
28+
829
## [4.1.0] - 2026-06-23
930

1031
### Changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "a3s-code-core"
3-
version = "4.1.0"
3+
version = "4.2.0"
44
edition = "2021"
55
authors = ["A3S Lab Team"]
66
license = "MIT"

sdk/node/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "a3s-code-node"
3-
version = "4.1.0"
3+
version = "4.2.0"
44
edition = "2021"
55
authors = ["A3S Lab Team"]
66
license = "MIT"
@@ -11,7 +11,7 @@ description = "A3S Code Node.js bindings - Native addon via napi-rs"
1111
crate-type = ["cdylib"]
1212

1313
[dependencies]
14-
a3s-code-core = { version = "4.1.0", path = "../../core", features = ["ahp", "s3", "serve"] }
14+
a3s-code-core = { version = "4.2.0", path = "../../core", features = ["ahp", "s3", "serve"] }
1515
napi = { version = "2", features = ["async", "napi6", "serde-json"] }
1616
napi-derive = "2"
1717
tokio = { version = "1.35", features = ["full"] }

sdk/node/examples/package-lock.json

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/node/package-lock.json

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/node/package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@a3s-lab/code",
3-
"version": "4.1.0",
3+
"version": "4.2.0",
44
"description": "A3S Code - Native Node.js bindings for the coding-agent runtime",
55
"main": "index.js",
66
"types": "index.d.ts",
@@ -43,11 +43,11 @@
4343
"test:helpers": "node test-helpers.mjs"
4444
},
4545
"optionalDependencies": {
46-
"@a3s-lab/code-darwin-arm64": "4.1.0",
47-
"@a3s-lab/code-linux-x64-gnu": "4.1.0",
48-
"@a3s-lab/code-linux-x64-musl": "4.1.0",
49-
"@a3s-lab/code-linux-arm64-gnu": "4.1.0",
50-
"@a3s-lab/code-linux-arm64-musl": "4.1.0",
51-
"@a3s-lab/code-win32-x64-msvc": "4.1.0"
46+
"@a3s-lab/code-darwin-arm64": "4.2.0",
47+
"@a3s-lab/code-linux-x64-gnu": "4.2.0",
48+
"@a3s-lab/code-linux-x64-musl": "4.2.0",
49+
"@a3s-lab/code-linux-arm64-gnu": "4.2.0",
50+
"@a3s-lab/code-linux-arm64-musl": "4.2.0",
51+
"@a3s-lab/code-win32-x64-msvc": "4.2.0"
5252
}
5353
}

sdk/python-bootstrap/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ name = "a3s-code"
77
# Keep in sync with crates/code core release. The bootstrap loader fetches
88
# the matching native wheel from `https://github.com/AI45Lab/Code/releases/tag/v<version>`
99
# at import time.
10-
version = "4.1.0"
10+
version = "4.2.0"
1111
description = "A3S Code Python SDK — pure-Python bootstrap that fetches the native wheel from GitHub Releases"
1212
readme = "README.md"
1313
license = {text = "MIT"}

sdk/python-bootstrap/src/a3s_code/_bootstrap.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
# Version is the bootstrap's own version, which equals the matching native
3333
# wheel version on GH Releases. Bumped by the release workflow.
34-
__version__ = "4.1.0"
34+
__version__ = "4.2.0"
3535

3636
_DEFAULT_BASE_URL = "https://github.com/AI45Lab/Code/releases/download"
3737
_REQUEST_TIMEOUT_S = 120

sdk/python/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "a3s-code-py"
3-
version = "4.1.0"
3+
version = "4.2.0"
44
edition = "2021"
55
authors = ["A3S Lab Team"]
66
license = "MIT"
@@ -12,7 +12,7 @@ name = "a3s_code"
1212
crate-type = ["cdylib"]
1313

1414
[dependencies]
15-
a3s-code-core = { version = "4.1.0", path = "../../core", features = ["ahp", "s3", "serve"] }
15+
a3s-code-core = { version = "4.2.0", path = "../../core", features = ["ahp", "s3", "serve"] }
1616
pyo3 = "0.23"
1717
tokio = { version = "1.35", features = ["full"] }
1818
serde_json = "1.0"

0 commit comments

Comments
 (0)