Skip to content

Releases: caelis-labs/acp-go-sdk

ACP Go SDK v1.5.2

Choose a tag to compare

@OnslaughtSnail OnslaughtSnail released this 29 Oct 15:30
667fc7d

1.5.2 (2026-10-29)

Bug Fixes

  • protocol: align schema 1.27.0 and official SDK peers (#37) (2ce1ede)

Protocol and compatibility

  • Stable ACP remains wire major 1. The public stable API is unchanged apart
    from schema provenance constants; the schema pin is schema-v1.27.0.
  • Experimental v2 now tracks schema-v2.0.0-alpha.10. Its API may change
    incompatibly: construct available commands through the Command union
    branch (type: "command"), use ClientAuthCapabilities, 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 -32022 when 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

Choose a tag to compare

@OnslaughtSnail OnslaughtSnail released this 16 Oct 15:31
e5697e0

1.5.1 (2026-10-16)

Bug Fixes

  • protocol: align schema 1.26.0 and official SDK peers (#26) (a19e71f), closes #25

Protocol and compatibility

  • Stable ACP remains wire major 1 with unchanged public interfaces. The pinned
    schema-v1.26.0 stable 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.9 in 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.Wait until explicit
    Close or Shutdown, 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

Choose a tag to compare

@OnslaughtSnail OnslaughtSnail released this 11 Oct 06:44
88d20ae

1.5.0 (2026-10-11)

Features

  • protocol: align schema v1.25.0 and official SDK peers (#23) (89ba067), closes #22

Validated by complete release CI, approved by @OnslaughtSnail.

Release commit: 88d20ae38f5f6f128d246217dd4d91a1a9842ca9
Tested tree: bc029e45d6d5e43eca96b61d4ee4db2419bc1414

ACP Go SDK v1.4.1

Choose a tag to compare

@OnslaughtSnail OnslaughtSnail released this 04 Oct 01:45
3cae072

1.4.1 (2026-10-04)

Bug Fixes

  • protocol: align released v1 and v2 schema snapshots (#16) (e66bd43)

Validated by complete release CI, approved by @OnslaughtSnail.

Release commit: 3cae072dc709882ae70dee5f95156c202cb03155
Tested tree: a0f4295463fd44e9bd85f6880812bf4faab414d4

ACP Go SDK v1.4.0

Choose a tag to compare

@OnslaughtSnail OnslaughtSnail released this 19 Sep 09:30
6a8520d

1.4.0 (2026-09-19)

Features

  • align official ACP schemas and automate releases (#7) (27415db)

Protocol and compatibility

  • Pin the stable wire schema to official schema-v1.23.0 and the isolated
    experimental v2 schema to schema-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
    name fields, with WithStartName and WithUpdateName helpers. 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

Choose a tag to compare

@OnslaughtSnail OnslaughtSnail released this 11 Sep 08:23
36a6825

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

Choose a tag to compare

@OnslaughtSnail OnslaughtSnail released this 07 Sep 03:07
4e3a4e8

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

v1.1.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@OnslaughtSnail OnslaughtSnail released this 24 Aug 23:50

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/stdio use HideWindow and CREATE_NO_WINDOW on Windows.
  • Post-exit stdio cleanup is idempotent across Windows and Unix, while Process remains the sole owner of the child command's Wait call.

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

v1.1.0-rc Pre-release
Pre-release

Choose a tag to compare

@OnslaughtSnail OnslaughtSnail released this 24 Aug 16:20

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

Choose a tag to compare

@OnslaughtSnail OnslaughtSnail released this 24 Aug 08:36

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 release schema-v1.21.0.
  • Schema-formatted integer widths, exact string/number JSON-RPC request IDs,
    lossless _meta values, 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, idempotent Close, and
    context-bounded Wait.
  • 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 SDK v1.4.0 and Rust SDK v2.0.0, covering core flow,
    session cancellation, and request cancellation.