Releases: Intelligent-Internet/opencode-a2a
v0.5.1
What's Changed
- fix(ci): split runtime and dev dependency audits (#313) by @liujuanjuan1984 in #314
- feat(client): harden outbound Basic Auth support by @liujuanjuan1984 in #315
- refactor(server): drop redundant database store config flags by @liujuanjuan1984 in #318
- fix(server): stabilize task persistence and refresh workflows by @liujuanjuan1984 in #323
Full Changelog: v0.5.0...v0.5.1
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.
Full Changelog
v0.2.3
Overview
v0.2.3 adds an optional managed upstream mode so opencode-a2a-server can start and bind to a local opencode serve automatically.
Highlights
- Managed OpenCode upstream: the runtime can now launch a local
opencode serve, capture its actual listening URL, and clean it up on shutdown. - More reliable local startup: this avoids failures caused by upstream random ports when users would otherwise need to wire two processes together manually.
Full Changelog
v0.2.2
Overview
v0.2.2 simplifies the runtime surface around a single foreground serve entrypoint and clarifies workspace configuration.
Highlights
- Serve-first runtime:
opencode-a2a-servernow focuses on direct foreground serving, leaving supervision and deployment orchestration to operators. - Clearer workspace configuration:
OPENCODE_WORKSPACE_ROOTis now the single runtime variable for the default OpenCode workspace root.