Repository navigation
Releases: caelis-labs/acp-go-sdk
Release list
ACP Go SDK v1.5.2
1.5.2 (2026-10-29)
Bug Fixes
Protocol and compatibility
- Stable ACP remains wire major 1. The public stable API is unchanged apart
from schema provenance constants; the schema pin isschema-v1.27.0. - Experimental v2 now tracks
schema-v2.0.0-alpha.10. Its API may change
incompatibly: construct available commands through theCommandunion
branch (type: "command"), useClientAuthCapabilities, and migrate terminal
exit codes to signed int64 and resource sizes to uint64. Request IDs cannot
be null. Elicitation requires exactly one session/request scope. - V2 initialization selects the highest supported version at or below the
requested version, returns-32022when no version is supported, and allows
repeated initialization before another request. Replacement lists, nullable
patches, metadata and terminal sizes follow the pinned schema semantics. - Official SDK peers are TypeScript 2.1.0 and Rust 3.6.0. All four stable-v1
stdio directions cover core, session cancellation and request cancellation.
Experimental v2 has Go wire/loopback coverage, not official-SDK v2 interop.
See the alignment and migration notes
for the full compatibility changes and validation boundaries.
Validated by complete release CI, approved by @OnslaughtSnail.
Release commit: 667fc7d428228f5f3d4d9d4c88d2110c15171873
Tested tree: 32552b0d9d986bc738b319be4a7e6f190ee65ebc
ACP Go SDK v1.5.1
1.5.1 (2026-10-16)
Bug Fixes
Protocol and compatibility
- Stable ACP remains wire major 1 with unchanged public interfaces. The pinned
schema-v1.26.0stable schema/meta assets are byte-identical to 1.25.0;
provenance constants and exact source locks are updated. - Typed optional-only requests accept omitted or null params as
{}. Required
fields remain mandatory and malformed requests still fail before handlers run. - Experimental v2 tracks tagged
schema-v2.0.0-alpha.9in isolation. Entity
patches retain omitted/null/value and empty replacements; upsert metadata
objects patch by top-level key without nested merging. Native v2 initialize
payloads retain extension data through the router, and newer majors negotiate
to v2. V1 fallback maps shared capabilities without enabling filesystem or
terminal I/O. Prompt insertion ACKs and message updates remain separate from
foreground activity completion. - Subprocess stdout remains readable after
Process.Waituntil explicit
CloseorShutdown, retaining a fast peer's final protocol frames. - Official SDK peers are TypeScript 1.9.0 and Rust 3.4.0. Cross-language
conformance covers both roles in all four stable-v1 directions; v2 has Go
wire/loopback coverage, not official SDK v2 interoperability evidence.
See the alignment notes for patch semantics
and validation boundaries.
Validated by complete release CI, approved by @OnslaughtSnail.
Release commit: e5697e06036d1923546f29d794c553b7758f6c24
Tested tree: 4abccc409b36aac285c0474dbbc81807eed05d99
ACP Go SDK v1.5.0
1.5.0 (2026-10-11)
Features
Validated by complete release CI, approved by @OnslaughtSnail.
Release commit: 88d20ae38f5f6f128d246217dd4d91a1a9842ca9
Tested tree: bc029e45d6d5e43eca96b61d4ee4db2419bc1414
ACP Go SDK v1.4.1
1.4.1 (2026-10-04)
Bug Fixes
Validated by complete release CI, approved by @OnslaughtSnail.
Release commit: 3cae072dc709882ae70dee5f95156c202cb03155
Tested tree: a0f4295463fd44e9bd85f6880812bf4faab414d4
ACP Go SDK v1.4.0
1.4.0 (2026-09-19)
Features
Protocol and compatibility
- Pin the stable wire schema to official
schema-v1.23.0and the isolated
experimental v2 schema toschema-v2.0.0-alpha.5, with exact upstream commit
and SHA256 verification. Stable protocol negotiation remains ACP v1. - Stable tool calls, updates, and permission requests gain optional programmatic
namefields, withWithStartNameandWithUpdateNamehelpers. Existing stable
interfaces remain compatible; custom wire-to-domain mappings need to forward
the new field to use it. - Experimental v2 prompt responses now require
messageId. Agents must return
the inserted user message ID and echo the user message with the same ID;
clients reject missing or null IDs. The echo can precede or follow the response.
Experimental v2 tool-name patches preserve absent, null (clear), and string
states. These changes remain isolated from the stable root package. - Validate bidirectional interoperation with the pinned official TypeScript
SDK v1.4.0 and Rust SDK v2.2.0 across the complete 12-case matrix.
See the v1.4.0 migration notes
for downstream integration details.
Release reliability
- Release Please maintains version metadata and release notes. Every version
increase requires maintainer approval followed by complete CI, bounded fuzzing,
and a public API compatibility check before merge and publication. - Publication verifies that the released Git tree exactly matches the approved,
tested candidate and attaches validation, API diff, and cross-SDK evidence.
Published tags are immutable; a fresh public Go Proxy consumer verifies delivery. - Ordinary PRs do not need to track every main update. Documentation-only changes
use lightweight checks, and publication does not repeat the full CI matrix.
Validated by complete release CI, approved by @OnslaughtSnail.
Release commit: 6a8520dafda72432aa5595e03c4a5ed99a9f5cce
Tested tree: 2bc50d9a5b353210151514b26cc736a2b50ea246
ACP Go SDK v1.3.0
Unsupported extension notifications can occupy the ordered notification queue before an application ignores them, causing supported traffic to lose its connection during a burst. Add an optional method-only admission predicate and a total byte limit for queued and executing notifications. The default predicate accepts everything; accepted notifications retain their ordering and response barriers, and requests, responses, and cancellation bypass filtering. No ACP wire types or product-specific policies are added.
Prepare v1.3.0 and add SECURITY.md with private vulnerability reporting and the SDK/application responsibility boundary.
Validation: full Go race suite; schema checksums and upstream lock; deterministic generator check; vet; official TypeScript 1.4.0 / Rust 2.1.0 interoperability matrix. Focused tests cover ignored notification bursts, in-flight byte accounting, and cancellation bypass. CI covers supported Go versions, static analysis, example/consumer builds, and Windows stdio.
ACP Go SDK v1.2.0
ACP Go SDK v1.2.0
Adds lossless JSON-RPC batch transport support and isolated, experimental ACP
v2 types and connections. The stable root package continues to implement ACP
v1 only, generated from schema-v1.21.0.
- Batch responses preserve their array boundary; AfterResponse callbacks run
only after the entire response array is written, using bounded execution
that permits reverse requests. - Official Rust interoperability advances to v2.1.0. Scheduled drift detection
tracks protocol and SDK releases and creates or updates a tracking issue. - Experimental v2 preserves protocol errors and cancellation codes, enforces
request/notification kinds, pins the first successful protocol selection,
and supports elicitation dispatch and declared outbound methods.
Experimental v2 is not covered by the stable compatibility promise or the
stable-v1 TypeScript/Rust interoperability matrix.
- Windows stdio shutdown retains process handles across Job Object termination
and waits for process-tree convergence.
Validation passed for commit 4e3a4e8f758848cbbe4fa4c5b527114877e7f7b7:
complete CI,
including native Windows race and repeated process-tree shutdown tests,
Go 1.23/1.25, static analysis, generator reproducibility, fresh-consumer builds,
and all 12 official TypeScript/Rust interoperability cases.
Install: go get github.com/caelis-labs/acp-go-sdk@v1.2.0
See CHANGELOG.md
for details.
v1.1.0-rc.1
Ordering and stdio
- Notification progress now uses broadcast generation signaling. Concurrent prepared responses waiting on the same earlier notification watermark all resume after the notification handler completes, without serializing response waits.
- ACP child processes started through
transport/stdiouseHideWindowandCREATE_NO_WINDOWon Windows. - Post-exit stdio cleanup is idempotent across Windows and Unix, while
Processremains the sole owner of the child command'sWaitcall.
This prerelease is a product-neutral ACP SDK update. Caelis-specific outcome classification, authentication, admission, quarantine, and retry policy remain downstream concerns.
Full CI passed at 4a50430f9ba874a1ec6626285e9f6bc75d63658f, including native Windows stdio race tests, Go 1.23/1.25, repository-wide race/static analysis, consumer smoke tests, and the official TypeScript/Rust SDK interoperability matrix.
v1.1.0-rc
Release candidate for the product-neutral prepared JSON-RPC/ACP request lifecycle.
Highlights:
- Adds bounded PrepareRequest, Dispatch, Wait, CancelRequest, and Abandon primitives with independent dispatch and wait contexts.
- Exposes conservative NotStarted, Pending, and Possible submission classifications at the writer-admission boundary.
- Adds an at-most-once transport abort hook for blocked writes, separate from ACP $/cancel_request and local abandon.
- Adds decode-independent response observation for both successful and JSON-RPC error responses before typed Wait completion.
- Reuses the existing causal response/notification delivery path and preserves existing SendRequest behavior.
- Drains prepared and ordinary pending requests on connection close without product-specific policy.
Validation:
- Go 1.23 and Go 1.25 tests, vet, examples, and fresh consumer smoke.
- Race tests and golangci-lint for the SDK and generator.
- Schema checksum and deterministic generator checks.
- 12-case official TypeScript v1.4.0 and Rust v2.0.0 interoperability matrix.
- Public API diff from v1.0.1 contains compatible additions only.
Install:
go get github.com/caelis-labs/acp-go-sdk@v1.1.0-rc
v1.0.1
Changelog
All notable changes to this project are documented in this file.
[v1.0.1] - 2026-08-24
First stable release from the rebuilt public repository history. It supersedes
v1.0.0 without protocol or API changes.
Protocol and API
- Stable root package generated deterministically from the pinned official ACP
v1 schema releaseschema-v1.21.0. - Schema-formatted integer widths, exact string/number JSON-RPC request IDs,
lossless_metavalues, and raw forward-compatible union variants. - Typed bidirectional Agent and Client dispatch with explicit optional
capability interfaces. - JSON-RPC errors expose code, message, and data through
errors.As.
Runtime safety
- Bounded frames, pending requests, handlers, notifications, writes, and
cancellation queues. - Ordered notifications, concurrent requests in both directions,
$/cancel_request, JSON-RPC-32800, idempotentClose, and
context-boundedWait. - Stable stdio NDJSON transport with explicit executable spawning and drained
child stderr; protocol stdout remains log-free.
Release evidence
- Race, static analysis, schema checksum, generator reproducibility, fuzz
corpus, example build, and fresh consumer-module gates. - Twelve-case, four-direction interoperability matrix against the pinned
official TypeScript SDKv1.4.0and Rust SDKv2.0.0, covering core flow,
session cancellation, and request cancellation.