Releases
v2.8.0
Compare
Sorry, something went wrong.
No results found
2.8.0 (2026-11-06)
Features
a2aacp: add an A2A agent executor for Agent Client Protocol (ACP) agents (#491 , #492 , #493 , #494 , #530 , #545 , #548 , #552 , #562 )
a2agrpc: add GRPCConnectionPool for gRPC client connection reuse (fixes #109 ) (#382 ) (a2411f7 )
a2asrv: add NewErrorSanitizer, an opt-in interceptor which logs request errors in full and sends clients only A2A errors (#552 ) (ece71bc )
a2asrv: agent card HTTP caching (ETag/304, opt-in Cache-Control) (#496 ) (313efd9 )
implement structured input extension (#490 ) (367f987 )
Bug Fixes
a2aclient: honor API key security scheme Location (#497 ) (c59beb5 )
a2aclient: honor configured HTTP authentication schemes (#502 ) (413de0c )
a2aclient: normalize service param keys set by the client and AuthInterceptor (#479 ) (96f4df0 )
a2aclient: return JSON-RPC errors from non-200 responses (#559 ) (97f1fac )
a2acrypto: reject malformed Unicode before signing (#450 ) (ec6cb14 )
a2aevent: preserve input-required history order (#501 ) (72f94a3 )
a2aevent: recover the whole artifact when it changes in place (#485 ) (4d61739 )
a2a: round-trip null data and nil raw parts through JSON (#513 ) (186decc )
a2asrv: make ServiceParams.With nil-safe (#544 ) (c6042b8 )
a2asrv: preserve escaped tenant REST paths (#514 , #562 ) (f86cf6c )
a2asrv: preserve numeric precision in raw card ETags (#546 ) (18c2e72 )
a2asrv: reject HEAD before creating task subscriptions (#481 ) (e641e3c )
a2asrv: split comma-separated A2A-Extensions values (#519 ) (db83820 ), closes #516
a2av0: keep security schemes and v0.3 interface in extended agent cards (#558 ) (196d4bb ), closes #556
client: accept cached status and artifact stream events (#508 ) (ea78132 )
client: honor streaming interceptor error recovery (#507 ) (737b626 )
client: keep propagated tenants local to each call (#495 ) (0eaf017 )
client: preserve escaped REST path segments (#488 ) (8880d8f )
compare and send A2A-Version as Major.Minor (#555 ) (b5ea753 )
don't fail CancelTask when the canceled execution ends first (#521 ) (1613ae6 ), closes #518
don't move a task to FAILED when cancelation retries run out (#522 ) (247933b )
jsonrpc: return empty result for successful push config deletion (#525 ) (42d0738 )
pass CancelTask metadata over REST (#520 ) (a104b2e ), closes #517
pbconv: preserve JSON data part values (#503 ) (7c040e0 )
pbconv: send pkceRequired for authorization code flows (#542 ) (cb2c30b )
push: cap push notification configs per task (#405 ) (6bb5a68 )
report executions or cancelations in progress, and messages to terminal tasks in cluster mode, as UnsupportedOperation (#552 ) (ece71bc )
sse: ignore a leading UTF-8 byte order mark (#511 ) (248f628 )
taskexec: keep the error when broadcasting an event fails (#536 ) (636fa9f )
taskexec: report canceler panics during concurrent cancelation (#535 ) (7ffc680 )
taskexec: skip heartbeats for non-positive intervals (#543 ) (c4158ae )
taskexec: wait for the cancelation result of input-required tasks (#560 ) (3194abe )
You can’t perform that action at this time.