Releases: Intelligent-Internet/opencode-a2a
Releases · Intelligent-Internet/opencode-a2a
Release list
v1.3.2
New Features
- Added a repository-owned black-box conformance suite with eight A2A probes, replacing the unavailable external TCK dependency with a reproducible local and explicitly gated remote test path.
- Added an authenticated Prometheus
/metricsendpoint and Python 3.14 support.
Changes and Fixes
- Aligned JSON-RPC and HTTP+JSON behavior with A2A 1.0: required message fields are validated before execution, unsupported push notification configuration returns the protocol-specific error, and subscriptions to terminal tasks are rejected consistently.
- OpenAPI descriptions for core JSON-RPC methods are now generated from the SDK dispatcher source of truth, keeping the published interface aligned with runtime behavior.
Full changelog: v1.3.1...v1.3.2
v1.3.1
Changes and Fixes
- Fixed outbound A2A authentication and request metadata propagation through SDK transports, ensuring credentials, protocol version, trace context, and extension headers reach both JSON-RPC and HTTP+JSON requests.
- Prevented SQLite connection leaks when database setup fails, while preserving file-path hardening before and after connection creation.
Full changelog: v1.3.0...v1.3.1
v1.3.0
New Features
- Added per-credential rate limiting and bounded SSE streaming budgets: throttled requests return HTTP 429 with
Retry-After, and over-budget streams are terminated cleanly with an SSE error frame.
Changes and Fixes
- Closed the security audit items: outbound A2A calls now enforce a host allowlist and private-network blocklist with credential binding; inbound requests are validated against Origin/Host boundaries to block CSRF and DNS-rebinding attacks; SQLite persistence files are hardened with strict permissions, ownership checks, and symlink rejection.
- Discovery and workspace responses are normalized to whitelisted fields and the workspace root is gated, removing passthrough of upstream raw records and local paths; error responses redact absolute paths.
- Releases now publish a
SHA256SUMSintegrity manifest, and the security surface and residual risk register were documented as a maintained reference.
Full changelog: v1.2.0...v1.3.0
v1.2.0
Breaking Changes
- HTTP-JSON transport now serves A2A REST routes at the root path; the
/v1URL prefix is dropped. Clients that call/v1/...directly must switch to the root path.
New Features
- Added optional HTTP Basic authentication (
OPENCODE_AUTH_USERNAME/OPENCODE_AUTH_PASSWORD) for upstream OpenCode calls when the upstream server is protected by a password. - Declared the supported OpenCode runtime line (
1.18.x) in the compatibility docs and added a live integration smoke check that keeps it verified.
Changes and Fixes
- Hardened runtime defaults and restricted persistence to SQLite-backed stores.
- Upgraded dependencies and resolved vulnerability audit findings.
Full changelog: v1.1.2...v1.2.0
v1.1.2
Changes and Fixes
- Resolved dependency audit findings by moving runtime and development locks to fixed package versions and tightening minimum constraints where needed.
- Simplified redundant internal code paths identified by the audit without changing public behavior.
- Reduced Dependabot noise from protobuf major updates that cannot satisfy the current package constraints.
Full changelog: v1.1.1...v1.1.2
v1.1.1
Changes and Fixes
- Refined internal helper boundaries and
serveCLI guidance, with targeted regression coverage to keep the cleanup safe.
Full changelog: v1.1.0...v1.1.1
v1.1.0
Contract Changes
- Clarified successful non-streaming
message:sendresult semantics: full assistant output is carried inTask.artifacts, while terminalTask.status.messageremains a short completion status. - Canonicalized
opencode-a2aextension identifiers tourn:opencode-a2a:extension:<contract>:v1and narrowed shared streaming disclosure to the stable public contract fields.
Changes and Fixes
- Redacted sensitive query parameters from database URLs in persistence and SDK compatibility logs.
- Tightened local compatibility surfaces for session-query and client transport inputs, with broader regression coverage for parsing, CLI, error mapping, interrupt, and extension-contract behavior.
- Split
doctor.shinto explicit fix, verify, and package phases while keeping./scripts/doctor.shas the standard validation entrypoint.
Full changelog: v1.0.0...v1.1.0
v1.0.0
Breaking Changes
opencode-a2av1.0.0is a breaking release that supports only the A2A1.0protocol line.- If you need compatibility with A2A
0.3, stay onv0.8.2.
New Features
- Added durable database-backed runtime stores for task state, push configuration, and SDK compatibility data so long-running and reconnecting task flows preserve consistent state across runtime boundaries.
Changes and Fixes
- Completed the migration to
a2a-sdk1.0and finalized the runtime, discovery, and extension-contract surfaces around the A2A1.0wire model. - Tightened task output, stream artifact, terminal-state, and provider-private contract behavior so send, stream, reconnect, and follow-up task reads stay aligned under the
1.0runtime.
Full changelog: v0.8.2...v1.0.0
v0.8.2
Changes and Fixes
- Reduced default runtime log noise by downgrading normal or recoverable control-flow logs to
DEBUG, including client disconnect cleanup, stream retries, snapshot rewrite suppression, and local upstream concurrency backpressure. - Reported mapped OpenCode HTTP status and timeout failures as default
WARNINGsummaries while keeping traceback details available atDEBUG. - Replaced raw request text, response text, and stream chunk content in non-payload debug logs with length fields such as
text_lenandcontent_len. - Clarified documentation that lightweight metric log records are emitted at
A2A_LOG_LEVEL=DEBUG.
Full changelog: v0.8.1...v0.8.2
v0.8.1
Changes and Fixes
- Aligned SDK
ClientConfig.pollingwith the existing opencode A2A client polling fallback policy. - Preserved the default blocking
message/sendbehavior by keeping SDK polling disabled unless the fallback policy is enabled.
Full changelog: v0.8.0...v0.8.1