Releases: Intelligent-Internet/opencode-a2a
v0.6.1
Overview
v0.6.1 focuses on upgrade safety and operational polish: it backfills a legacy SQLite interrupt-request schema gap, makes HTTP gzip thresholds explicit and less aggressive by default, and hardens publish recovery so manual release repair defaults away from duplicate PyPI publishes.
Highlights
- Legacy SQLite interrupt-request schema backfill: Backfills the
details_jsoncolumn for existing interrupt-request tables during startup so upgraded deployments can keep using durable state without manual database resets. - Configurable, higher HTTP gzip threshold: Replaces the fixed gzip threshold with
A2A_HTTP_GZIP_MINIMUM_SIZEand raises the default to8192, concentrating compression on larger non-streaming responses such as the authenticated extended card. - Safer release recovery workflow: Makes publish recovery tag-aware, idempotent, and retryable, while defaulting manual recovery runs away from PyPI republish attempts when maintainers only need to repair the GitHub Release.
Full Changelog
v0.6.0
Overview
v0.6.0 focuses on expanding OpenCode extension coverage, improving Agent Card discovery surfaces, and hardening upstream/runtime behavior for long-lived deployments.
Highlights
- Broader OpenCode extension coverage: Added interrupt recovery queries, session query filters with cursor pagination, workspace control plane methods, and the first large batch of session lifecycle extensions.
- Lean public Agent Card + authenticated extended card: Split discovery into a smaller public card and a richer authenticated extended card, added explicit extended-card signaling, and tightened cache/compression behavior for card delivery.
- Runtime hardening for upstream and clients: Added fast-fail upstream concurrency guards, optional bounded polling fallback for outbound client sends, and weaker in-memory session lock retention to reduce unnecessary runtime buildup.
- Contract and dispatch cleanup: Moved extension handling onto registered method handlers, aligned interrupt callback/runtime contracts, and kept auth/runtime metadata exposure consistent across transport surfaces.
Full Changelog
v0.5.1
Overview
v0.5.1 focuses on CI/dependency audit boundary cleanup, safer outbound authentication, simpler database-backed server defaults, and more stable durable task persistence behavior.
Highlights
- Runtime-only blocking dependency audits: Split blocking runtime dependency audits from dev-only visibility checks so tooling CVEs no longer unnecessarily block CI and publish flows.
- Hardened outbound Basic Auth support: Added validated outbound Basic Auth support across Agent Card fetches, peer calls, task operations, and CLI environment-based client configuration.
- Simpler database-backed server defaults: Removed redundant database store configuration flags and further narrowed the durable backend to a fixed, auto-initialized default path.
- Stronger durable task persistence guarantees: Stabilized terminal task persistence, wrapped task-store failures into clearer server-side behavior, and tightened refresh/resubscribe consistency for persisted tasks.
Full Changelog
v0.5.0
Overview
v0.5.0 focuses on runtime state durability, database-first server defaults, and naming cleanup around upstream error taxonomy and translators.
Highlights
- Database-backed runtime state: Added a configurable database-backed persistence layer for task records, session binding and ownership, interrupt request bindings, and interrupt tombstones so runtime state can survive process restarts.
- Durable database defaults: Switched the default runtime state backend from
memorytodatabase, added a default SQLite profile, and repositionedmemoryas an explicit opt-in development/test mode. - Session binding semantics cleanup: Promoted database-backed session binding and ownership from cache-like retention to durable state, removing TTL/max-size eviction from the durable path while retaining explicit error behavior when an upstream OpenCode session is missing.
- Upstream error taxonomy naming alignment: Renamed taxonomy and translator modules to make the layering between upstream classification, execution translation, and JSON-RPC error responses clearer without changing runtime behavior.
- Test and infrastructure hardening: Removed stale memory-store assumptions, cleaned up dead durability-era code paths, eliminated SQLite engine lifecycle leaks in tests, and resolved SQLAlchemy registry warnings for custom task tables.
Full Changelog
v0.4.1
Overview
v0.4.1 focuses on execution/runtime modularization, outbound client lifecycle hardening, sandbox policy consolidation, and correctness fixes for streaming output and error handling.
Highlights
- Execution and client modularization: Split execution responsibilities across session, streaming, and policy-oriented components, and further reduced facade/helper indirection in the outbound A2A client stack.
- A2A tool and error-path hardening: Centralized outbound/client-side error mapping, aligned JSON-RPC translators with shared upstream taxonomy, and stabilized
a2a_callfailure payloads. - Outbound client cache lifecycle controls: Added bounded outbound client caching with TTL, max-size, busy-aware reuse, and safer eviction semantics to avoid closing clients that are still in use.
- Sandbox and policy enforcement cleanup: Centralized sandbox policy decisions, validated conflicting configuration earlier, and aligned directory/shell exposure with the effective runtime policy.
- CLI and streaming correctness improvements: Removed the redundant
servesubcommand and fixed final streaming snapshots so reasoning content no longer leaks into canonical final text.
Full Changelog
v0.4.0
Overview
v0.4.0 adds client-side A2A outbound integration and stream call hardening while also tightening release reliability and removing duplicated documentation.
Highlights
- A2A client + CLI integration: Added outbound A2A client facade, CLI
callintegration, and streameda2a_callhandling to support client-side message delivery workflows. - Authentication docs clarification: Clarified OpenCode auth state precedence in deployment scenarios for better configuration consistency and operational confidence.
- Documentation cleanup: Consolidated duplicated documentation content and reduced overlap to improve readability and maintainability.
- Release pipeline reliability: Updated publish/CI workflow behavior for stable execution under newer action runtimes by explicitly moving workflow JS actions to Node.js 24 mode and disabling
setup-uvcaching that could fail during publish. - Formatting stability: Fixed a
ruff formatregression path that previously caused release baseline checks to fail unexpectedly.
Full Changelog
v0.3.1
Overview
v0.3.1 standardizes the project, package, CLI, and repository naming around opencode-a2a, while keeping the full A2A runtime behavior, test coverage, and release pipeline aligned with the new identity.
Highlights
- Unified Naming: Renamed the published package from
opencode-a2a-servertoopencode-a2a, and migrated the Python package namespace fromopencode_a2a_servertoopencode_a2a. - CLI & Runtime Alignment: Updated the CLI entrypoint, runtime service name, version metadata lookup, and health/profile identifiers to consistently use
opencode-a2a. - Docs & Test Coverage Refresh: Synchronized README, guide, contributing, security docs, contract assertions, and test imports with the new package and repository naming.
- Release Pipeline Continuity: Updated pre-commit, coverage gates, smoke tests, CI workflows, and publish workflows so future releases build and publish under the new package name.
- Repository Rename: Renamed the GitHub repository to
Intelligent-Internet/opencode-a2aso package metadata, source hosting, and release automation point to the same canonical project name.
Full Changelog
v0.3.0
Overview
v0.3.0 focuses on structural modularity and protocol alignment, bringing machine-readable service contracts, consolidated runtime profiles, and enhanced streaming metadata to the A2A server.
Highlights
- Machine-readable Service Contracts: Exposed explicit cancel/replay semantics and execution environment boundary metadata in service contracts.
- Structural Refactoring: Reorganized adapter modules, split oversized runtime and contract modules, and aligned app assembly with SDK defaults for better maintainability.
- Protocol & Streaming Alignment: Consolidated JSON-RPC capability snapshots and refined streaming terminal states to ensure consistency across REST and JSON-RPC interfaces.
- Engineering Hygiene: Completed a full remediation of the codebase, removing dead helpers and explicitly configuring keepalive and interrupt retention.
Full Changelog
v0.2.5
Overview
v0.2.5 aligns stream text extraction with the current upstream opencode serve part protocol, so snapshot-based stream parts are translated into A2A text output instead of completing with status-only events.
Highlights
- Upstream protocol alignment: streaming output now recognizes
snapshot,step-start, andstep-finishparts fromopencode serveand extracts text from theirsnapshotfields. - Stable downstream rendering: A2A clients now receive text artifact updates for snapshot-based upstream responses instead of falling through to
Content unavailable. - Final response consistency: final message text extraction now also understands snapshot-based parts while still preferring explicit
textparts when both are present. - Regression coverage: new tests cover snapshot-based stream parts and final-response text extraction behavior.
Full Changelog
v0.2.4
Overview
v0.2.4 narrows the runtime boundary back to an external opencode serve, restores request-scoped model selection and provider discovery behavior, and tightens interrupt metadata to the confirmed shared contract.
Highlights
- External upstream boundary:
opencode-a2a-serveris again focused on adapting an already runningopencode serveinstead of managing that upstream process itself. - Contract fixes: request-scoped model selection and provider/model discovery extensions are restored so clients can keep using the documented shared and OpenCode-specific surfaces.
- Interrupt contract cleanup: shared interrupt details are narrowed to the confirmed wire contract, reducing ambiguity for downstream consumers.
- Documentation refresh: README and supporting docs now present the project scope, quick start path, and deployment boundary more clearly.