Skip to content

v2.0.0 — A2A v1.0 Gateway Rewrite

Choose a tag to compare

@DerekEXS DerekEXS released this 06 Jul 19:52

CORE v2.0.0 — Rewrite as A2A v1.0 Gateway

Hotfix v2.0.1 (2026-07-07)

  • Expose both /.well-known/agent.json (standard A2A primary path) and /.well-known/agent-card.json (compatibility path)
  • Both endpoints return identical Agent Card content, matching CUE v2.0 behavior

Architecture Change

  • Before: Message store + HTTP API (not A2A-compliant)
  • After: Proper A2A v1.0 gateway based on official a2a-sdk v1.1.0

New Features

  • Agent Card: /.well-known/agent.json — standard A2A discovery
  • JSON-RPC Transport: /a2a/jsonrpcSendMessage, GetTask, ListTasks, CancelTask
  • Agent Routing: explicit agentId > rule-based (tags/patterns) > default fallback
  • Task Lifecycle: standard state machine (submitted → working → completed/failed/cancelled)
  • SQLite TaskStore: persistent task storage with indexed queries
  • Bearer Token Auth: hmac.compare_digest middleware, TLS support, loopback default
  • Routing Rules: YAML config with priority-based matching

Files

  • server_v2/ — new gateway implementation (9 files, 1336 lines)
  • Dockerfile.v2 — container build for v2.0
  • tests/test_v2_core.py — 23 unit tests

Test Results

  • 23/23 v2.0 tests passing
  • 35/35 v1.x tests passing (no regressions)

Breaking Changes

  • Standard A2A method names (SendMessage not message/send)
  • Requires a2a-sdk>=1.1.0 with sse-starlette, starlette, uvicorn