Skip to content

Latest commit

 

History

History
398 lines (250 loc) · 35.7 KB

CHANGELOG.md

File metadata and controls

398 lines (250 loc) · 35.7 KB

Changelog

2.6.0 (2026-09-25)

Features

Bug Fixes

  • a2acrypto canonicalization and refactoring (#441) (012cc74)
  • a2asrv: return spec error codes for terminal and parked tasks (#438) (#442) (a2f11cb)
  • align ListTasks timestamp query parameter (#425) (621e01e)
  • ci: skip scheduled nightly workflows on forks (#427) (03b1f84), closes #426
  • compare recovery timestamps by value (#428) (b3d23f5)
  • support ProtoJSON security requirement scopes in Agent Cards (#437) (76da16e)

2.5.0 (2026-08-18)

Features

  • agent executor constructor helper (#418) (0f45c92)
  • cli supports full agent card urls (#413) (d5d1cec), closes #412
  • cli: polling fallback for servers which don't support streaming (#419) (b5b9f85)
  • make agentcard resolver handler file:// (#424) (e1c3cc0)
  • utilities for working with a2a events (#416) (1b8cac7)

Bug Fixes

  • added missing converters and made sure a2agrpc uses pbconv (#421) (579cff8)
  • cli not parsing compat agent cards (#415) (bebdcee)
  • handle negative historyLength as empty history request (#393) (f4d5882)
  • jsonrpc: lenient decode of error.data to preserve server errors (#386) (497cbac)
  • remove empty contextId check in proto converter (#392) (758c7a1)
  • sse: buffer REST SSE panicChan to avoid goroutine leak on client disconnect (#396) (ff6035b)
  • taskexec: close event-queue reader on cancel early exits (#409) (14e41a9)

2.4.0 (2026-07-28)

Features

  • provide generic pull event queue (#354) (6a48d4b)
  • push: push sender SSRF protection enabled by default (fixes #373) (#374) (0a4f17a)

Bug Fixes

  • a2acompat/a2av0: implement A2A v0.3 REST wire format (#371) (1ca80f9), closes #370
  • a2asrv: skip TaskID mismatch check when message has no task reference (fixes #350) (#359) (8c0dd99)
  • allow empty request bodies and enable GET method for task subscriptions (#381) (8363365), closes #380
  • cli: emit non-null required Agent Card list fields in synthesized card (fixes #369) (#372) (0640869)
  • eventqueue: add JSON marshal/unmarshal to Message so events survive roundtrip (fixes #349) (#360) (d52d5a1)
  • itk grpc compatibility for v0.3 SDKs (#367) (11340a7)
  • ListTaskshistoryLength missing (8b91364)
  • ListTaskshistoryLength missing (issue #355) (#361) (8b91364)
  • taskstore,push: enforce cross-tenant authorization on Get and push config stores (#357) (a9f9c64)

2.3.1 (2026-05-13)

Bug Fixes

  • workqueue implementation missed events (#340) (d1b9a6b)

2.3.0 (2026-05-12)

Features

  • add WithAgentInactivityTimeout option for terminating stalled a… (#315) (357bb11)
  • workqueue finalization (#324) (8b4bbf6), closes #200

Bug Fixes

  • a2acompat: correct OAuth2 round-trip through compat producer/parser (#337) (4dfb802)
  • make push config listing return correct json response (#338) (7c89490)

2.2.1 (2026-04-29)

Bug Fixes

  • compat package fixes (#328) (21e166c)
  • deserialize REST streaming error events into typed A2A errors (#318) (#319) (8a250ad)
  • extra query and fast client rejection in local executor (#330) (f307ca9)
  • task push notification configurations (#329) (c78fb4d)
  • update error handling to match spec (#327) (1aa72ce)

2.2.0 (2026-04-10)

Features

Bug Fixes

  • incorrect decoding of CreateTaskPushConfig request body (#314) (769dfe4)

2.1.0 (2026-04-01)

Features

Bug Fixes

2.0.1 (2026-03-24)

Features

  • a2acompat: add HTTP+JSON REST support to a2av0 compat layer (#280) (bac00e7)
  • agent executor cleaner (#276) (9c95980)

Bug Fixes

  • ensure correct concurrent cancellation results (#287) (d0f8981), closes #245

Documentation

  • a2aclient: add Example_* test functions for pkg.go.dev documentation (#263) (f8dae97)
  • update diagrams, docs and instructions (#289) (ed33c7a)

1.0.0 (2026-03-17)

Features

  • implement the new rest error handling (#282) (a3bda30)
  • use v2 suffix for module ID and provide compat support (#270) (dd1b6ba), closes #250

Bug Fixes

Documentation

  • a2asrv: add Example_* test functions for pkg.go.dev documentation (#262) (7888e37)
  • add example tests a2a (#240) (4fe08a9)

1.0.0-alpha.3 (2026-02-27)

Bug Fixes

  • a2a.Part metadata handling fixed.

1.0.0-alpha.2 (2026-02-27)

Versioning is introduced on the SDK level, the new version is github.com/a2aproject/a2a-go/v1.

Features

  • gRPC protocol binding uses standard google.rpc.ErrorInfo for error details.
  • a2asrv.NewTenantRESTHandler provides a utility for setting up multi-tenant deplyments.
  • a2a.Task snapshot is emitted as the first event on task resubscription.
  • REST transport supports configurable keep-alive and panic recovery for SSE connections.
  • a2asrv.WithCapabilityChecks handler option rejecting requests for which no support is declared in a2a.AgentCapabilities.
  • a2acompat works against the old github.com/a2aproject/a2a-go library and provides adapters for common dependencies.
  • Compatibility handling of extensions header.

Bug Fixes

  • JSONRPC handler request scope is not terminated when panic is recovered during SSE streaming.
  • Correct HistoryLength handling for 0 and nil cases.

1.0.0-alpha (2026-02-23)

Features

Implements A2A spec 1.0-rc revision with JSONRPC and gRPC protocol bindings.

Non-breaking changes

  • a2aclient.Factory implements protocol version negotiation.
  • New errors added: ExtensionSupportRequiredError and VersionNotSupportedError.
  • Client sends A2A-Version header.
  • ListTasks RPC implementation.
  • a2a package provides Part constructor functions.

Spec-specific breaking changes

In addition to breaking core type changes updates:

  • Agent output validations: task must be the first event emitted by AgentExecutor, artifact parts must be non-empty.
  • Final field removed from TaskStatusUpdateEvent, state is used to determine whether event is final.
  • RPCs renamed: TaskSubscription -> SubscribeToTask, GetAgentCard -> GetExtendedAgentCard.
  • JSONRPC uses the same method naming as gRPC.

SDK breaking changes:

For motivation behind some of the changes refer to the change announcement.

  • a2asrv.AgentExecutor changes: Execute and Cancel now return iter.Seq2[a2a.Event, error] instead of writing events to a queue.
  • a2asrv/taskstore package gets introduced with TaskStore interface and the the default in-memory implementation.
  • a2a.TaskVersion gets moved to a2asrv/taskstore.
  • TaskStore.Save method gets replaced with separate Create and Update methods.
  • TaskStore.Update is called with a2a.Event set to user a2a.Message on task history update.
  • TaskStore.Get return types is taskstore.StoredTask which is (task, version) pair.
  • eventqueue.Queue gets replaced with separate eventqueue.Reader and eventqueue.Writer. eventqueue.Manager methods updated appropriately.
  • eventqueue.Message gets introduced for grouping a2a.Task, taskstore.TaskVersion and a2a.ProtocolVersion.
  • a2aclient.CallInterceptor and a2asrv.CallInterceptor can now return a value from Before to return a result without performing the actual call.
  • a2aclient.WithInterceptors gets renamed to a2aclient.WithCallInterceptors and a2asrv.WithCallInterceptor gets renamed to a2asrv.WithCallInterceptors and takes vararg so that methods are consistent with each other.
  • a2asrv.User get changed from an interface to a struct with an Attributes map[string]any field.
  • a2asrv.RequestContext gets renamed into a2asrv.ExecutorContext. User and ServiceParams are added to the struct, these should be used intead of CallContext.
  • a2asrv.ReqMeta and a2aclient.CallMeta are renamed to ServiceParams.
  • a2asrv.PushSender and a2asrv.PushConfigStore are moved to a2asrv/push.
  • a2aclient.ServiceParams are now passed explicitly to a2aclient.Transport.
  • Methods which attach something to context.Context start with Attach prefix, methods used to create constructor-function options start with With.
  • a2aclient.NewStaticServiceParamsInjector replaced with a2aclient.AttachServiceParams for sending request headers.
  • gRPC transport for a2aclient was moved to a2agrpc package. This removes gRPC as the mandatory dependency from the client.

v0.3 compatibility:

Backward compatibility implementation as discussed in A2A spec repo is provided by github.com/a2aproject/a2a-go/a2acompat/a2av0 package.

a2agrpc and a2apb are versioned, where v0 contains mappers from v0.3.6 types to core types, and v1 implements the latest protocol version.

For an example backward-compatibility setup refer to e2e/compat.

0.3.7 (2026-02-20)

Features

Bug Fixes

0.3.6 (2026-01-30)

Features

Bug Fixes

0.3.5 (2026-01-23)

Bug Fixes

0.3.4 (2026-01-14)

Features

Bug Fixes

  • nil parts must be empty array when encoded to JSON (#140) (049190c)
  • provide request-level metadata in RequestContext (#152) (bf3096c)
  • sse: increase buffer size for large SSE payloads (#149) (1287239)

0.3.3 (2025-12-08)

Features

Bug Fixes

  • increase default timeout on jsonrpc client to account for streaming (#134) (6d7290b), closes #125
  • make log package capture the source properly (#112) (0ec064d)
  • return a task in failed state as a result (#114) (80e20aa)

Documentation

0.3.2 (2025-11-14)

Bug Fixes

  • allow request meta extension and hide mistakenly exported type (#106) (46fa0cb)

0.3.1 (2025-11-13)

Bug Fixes

0.3.0 (2025-11-04)

Features

Bug Fixes

Miscellaneous Chores