CommunityChangelog
a2a-opencode changelog
Release notes for a2a-opencode.
This page is generated from
a2a-opencode/CHANGELOG.mdand stays in sync with the repository.
1.7.2
Patch Changes
- 4e2bd82: No code changes. A prior release run published every package's exact
target version under the
canarynpm dist-tag instead oflatest(thecanaryjob's snapshot step no-ops when there are no pending changesets, which was the case immediately after that Version Packages PR merged — see the canary-job fix in a preceding commit). Since npm never allows republishing an already-used version string, the only way to get alatest-tagged release out is a fresh patch bump. - Updated dependencies [4e2bd82]
- @a2a-wrapper/[email protected]
1.7.1
Minor Changes
-
d6c2701: Add native A2A protocol v1.0 support, built on
@a2a-js/[email protected], while preserving full backward compatibility with A2A v0.3.x clients.@a2a-wrapper/core(breaking):buildAgentCard()now produces the native v1.0AgentCardshape (supportedInterfaces[]instead ofurl/additionalInterfaces/protocolVersion;capabilities.extendedAgentCardinstead ofsupportsAuthenticatedExtendedCard;stateTransitionHistoryremoved). Callers reading the old v0.3 fields directly off the return value must update — the server itself still serves a fully v0.3-shaped card to legacy clients (see below).createA2AServer()'s JSON-RPC/REST transports and the/.well-known/agent-card.jsonroute now negotiate protocol version per-request via theA2A-Versionheader:1.0/absent-with-recent-header gets the native v1.0 card and wire shapes, while0.3/no-header-at-all (matching the SDK's own default) gets a fully v0.3-shaped card and JSON-RPC/REST translation via@a2a-js/sdk'scompat/v0_3layer.ServerOptions.protocolVersiondefault changed from"0.3"to"1.0".- New
ServerOptions.onListeninghook andServerOptions.agentCardSigningoption (Signed Agent Cards, RFC 7515 JWS, opt-in viaAgentCardConfig.signingor the programmatic option). - New
extractUserText(message)export centralizing inboundPartparsing for the v1.0 proto-oneofPartshape. TaskStateis now re-exported as a value (real numeric enum in v1.0, was a string-literal type in v0.3).@a2a-js/sdkpeer/dev dependency bumped to^1.0.0.
Wrapper packages (
a2a-claude,a2a-codex,a2a-copilot,a2a-opencode,a2a-antigravity):- Each wrapper's
createA2AServer()public API is unchanged, but is now a thin delegate to@a2a-wrapper/core'screateA2AServerinstead of duplicating Express/SDK server wiring — restoring the "A2A protocol code lives only in core" design. a2a-copilotanda2a-opencodeno longer ship their own localevent-publisher.ts; both now use@a2a-wrapper/core's (v1.0-aware) event publisher.@a2a-js/sdkdependency bumped to^1.0.0(previously an inconsistent mix of^0.3.9/^0.3.13).
Patch Changes
- Updated dependencies [f3c7062]
- Updated dependencies [41e2d82]
- Updated dependencies [d6c2701]
- @a2a-wrapper/[email protected]
1.6.1
Patch Changes
- Updated dependencies
- @a2a-wrapper/[email protected]
1.6.0 — 2026-06-03
Added
- MCP custom headers —
remoteMCP server configs now accept aheaders: Record<string, string>map. Use for auth tokens and API keys against hosted MCP servers (Linear, Notion, remote GitHub MCP, etc.). Header values support${ENV_VAR}substitution so secrets stay out ofconfig.json. - Env-var substitution extended —
${ENV_VAR}(explicit, recommended) and$ENV_VAR(bare, backward-compatible) substitution now applies to localcommandargs, localenvironmentvalues, and remoteheadersvalues. @opencode-ai/sdkupgraded1.14.29 → 1.15.13— no breaking changes; v2 API surface is additive.
Fixed
- Logger level propagation —
level: "debug"in config now correctly reaches all child loggers. Previously, child loggers captured the level at module-import time before config was loaded.
Changed
- Updated dependencies
- @a2a-wrapper/[email protected]
1.5.0 — 2026-05-13
Added
- A2A Sub-Agents — new
subAgentsconfig section lets the parent agent expose remote A2A agents as MCP tools to the OpenCode LLM. The wrapper spawnsa2a-mcp-skillmapas a stdio MCP server and registers it under the reserveda2a-subagentskey. Each remote skill becomes a callable tool the LLM can dispatch like any other MCP tool. Seeagents/multi-agent/for an example. - Pinned skillmap version — the synthesized MCP entry invokes
npx -y a2a-mcp-skillmap@<pinned>rather than the unpinned package name, so a future skillmap release cannot silently change semantics. - JSON schema for
config.json—schemas/agent-config.schema.jsongenerated from the TypeScript types vianpm run schema. Drift-detection and schema validation tests ship in CI.
Changed
- Updated dependencies
- @a2a-wrapper/[email protected]
1.4.0
Added
- Memory Persistence — agents can now declare
memory.instructionsandmemory.skillsin their config.json. At startup, the executor materializes these files into the workspace at backend-specific paths. The target path is determined by the configured model: Claude models →CLAUDE.md+.claude/skills/, Codex models →.codex/+.agents/skills/, all others →.opencode/instructions.md+.opencode/skills/. - configDir injection — the CLI now automatically derives and injects
configDirfrom the config file path, enabling relative path resolution in memory configs.
Changed
- Updated dependencies
- @a2a-wrapper/[email protected]
1.3.0
Added
- Event Transport Integration — executor now routes all trace events (tool calls, reasoning) through the new
@a2a-wrapper/coreevent transport abstraction instead of callingpublishTraceArtifactdirectly. Supports A2A sideband (default), HTTP collectors, and custom transports. - Agent card delegates to core —
buildAgentCard()now delegates to@a2a-wrapper/core's shared implementation, eliminating duplicated card construction logic. - OpenCode SDK upgrade — upgraded
@opencode-ai/sdkfrom1.3.13to1.4.3. RenamedFileDiff→SnapshotFileDiffto match the new SDK export.
Changed
- Default events config — defaults now include
events: { enabled: true, transport: "a2a" }. - Updated dependencies
- @a2a-wrapper/[email protected]
1.2.1
Changed
- Fix post-release bugs: Node 22 ESM resolution (postinstall patch for vscode-jsonrpc), auth error message clarity (GITHUB_TOKEN guidance), README corrections (message/* method names, messageId in examples), and ResultManager race condition (publish task event before status-update in both executors).
- Updated dependencies
- @a2a-wrapper/[email protected]
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
1.2.0 - 2026-04-02
Changed
- Migrated to monorepo structure with npm workspaces, Turborepo, and Changesets
- Extracted shared infrastructure to
@a2a-wrapper/corepackage (logging, config, events, server factory, session management, CLI scaffold) - Now depends on
@a2a-wrapper/corefor all shared functionality - Consolidated community docs (CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, LICENSE) to repository root
- Unified CI/CD with Turborepo-powered GitHub Actions workflows
- Switched test script to
vitest --runfor non-interactive CI execution
1.0.0 - 2025-02-23
Added
- A2A v0.3.0 protocol implementation over Express HTTP server
- Agent Card served at
/.well-known/agent-card.json - JSON-RPC endpoint at
/a2a/jsonrpc—message/send,message/stream,tasks/get,tasks/cancel - REST endpoint at
/a2a/rest - OpenCode backend (
@opencode-ai/sdk) for LLM inference viaopencode serve - SSE event streaming with automatic reconnect and polling fallback
- Multi-turn conversation support via
contextId→ OpenCode session mapping - MCP tool server support — HTTP, SSE, stdio, and OAuth transports
- Auto-approval of tool permissions (
PermissionHandler) - JSON config file with
$commentannotations for easy customisation - Environment variable and CLI argument overrides (priority: defaults ← JSON ← ENV ← CLI)
examplebundled agent configuration- Docker support with multi-stage build and corporate proxy CA injection
server.shlifecycle manager (start / stop / restart / status / logs / foreground)- Health check endpoint at
/health - Context building endpoint at
/context/build --stream-artifacts/--no-stream-artifactsflag for SSE vs. buffered output- Postman collection for all A2A and system endpoints
- TypeScript public API exports for programmatic use