CommunityChangelog
a2a-copilot changelog
Release notes for a2a-copilot.
This page is generated from
a2a-copilot/CHANGELOG.mdand stays in sync with the repository.
1.8.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.8.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.7.0
Minor Changes
- feat: add comprehensive LLM usage telemetry and tracking
Patch Changes
- Updated dependencies
- @a2a-wrapper/[email protected]
1.6.0 — 2026-06-03
Added
- Bring Your Own Model (BYOK) — new
copilot.providerconfig block lets you point the wrapper at any OpenAI-compatible endpoint instead of GitHub Copilot. Supports Ollama (local), OpenAI, Anthropic, Azure OpenAI, Azure AI Foundry, vLLM, LiteLLM, and any OpenAI-compatible API. The sameCOPILOT_PROVIDER_*env vars thegh copilotCLI uses are supported. No GitHub Copilot account required when using a custom provider. - New bundled example:
agents/ollama/— ready-to-run local agent backed by Ollama (verified withqwen3.6). - MCP custom headers —
httpandsseMCP 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.). - Env-var substitution extended —
${ENV_VAR}(explicit, recommended) and$ENV_VAR(bare, backward-compatible) substitution now applies to stdioargs, stdioenvvalues, and http/sseheadersvalues. Keeps secrets out ofconfig.json.
Fixed
- BYOK models emitting tool calls as plain text — when a BYOK provider is configured and the model outputs a raw
{"name":...,"arguments":...}JSON blob instead of a proper response (common with small local models lacking native tool-calling support), the wrapper detects it and returns an actionable error message instead of leaking raw JSON to the caller. - 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
@github/copilot-sdkupgraded0.2.2 → 1.0.0— migrated to theRuntimeConnectionfactory API;session.destroy()renamed tosession.disconnect(). SDK 1.0.0 bumped CLI dependency to@github/[email protected].@github/copilotCLI upgraded1.0.39 → 1.0.59— includes the v1.0.56 BYOK provider fix (custom providers now work correctly in headless SDK sessions), plus 20 versions of improvements.- 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 Copilot 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.github/copilot-instructions.mdand.github/skills/<name>/, making them available to the Copilot LLM across sessions. Skills include SKILL.md manifests and optional resource directories (scripts/, references/, assets/). - 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 and MCP hooks now route 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. - MCP hooks refactored —
McpEvidenceHooksnow usesAgentEventEmitterinstead of rawExecutionEventBus. Emits separatetool_call_startandtool_call_endevents for better observability granularity.
Changed
- Fix MCP tool permissions hang in headless environments — added
approveAllfrom@github/copilot-sdktoSessionManager.getOrCreate()andCopilotExecutor.buildContext(). Without this, the SDK prompts for human approval on every MCP tool call and hangs indefinitely in Docker, Kubernetes, and CI environments. - Default events config — defaults now include
events: { enabled: true, transport: "a2a" }. - Updated dependencies
- @a2a-wrapper/[email protected]
1.2.2
Changed
- Upgrade @github/copilot-sdk from ^0.1.25 to ^0.2.0 (stable release). vscode-jsonrpc is no longer a transitive dependency, resolving the Node 22 ESM crash upstream.
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 - GitHub Copilot SDK backend (
@github/copilot-sdk) for LLM inference - Real-time SSE streaming of status updates and artifact chunks
- Multi-turn conversation support via
contextId→ Copilot session mapping - MCP tool server support — HTTP and stdio transports
- JSON config file with
$commentannotations for easy customisation - Environment variable and CLI argument overrides (priority: defaults ← JSON ← ENV ← CLI)
exampleandfilesystem-assistantbundled agent configurations- 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- TypeScript public API exports for programmatic use