From 1c9acf632832bd517294299012b28f2ed133eef9 Mon Sep 17 00:00:00 2001 From: Connor Peet Date: Thu, 2 Jul 2026 12:38:40 -0700 Subject: [PATCH 1/2] release: AHP 0.5.1 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CHANGELOG.md | 43 +++++++++++------------- clients/go/CHANGELOG.md | 4 +++ clients/go/VERSION | 2 +- clients/go/release-metadata.json | 2 +- clients/kotlin/CHANGELOG.md | 4 +++ clients/kotlin/gradle.properties | 2 +- clients/kotlin/release-metadata.json | 2 +- clients/rust/CHANGELOG.md | 4 +++ clients/rust/Cargo.lock | 6 ++-- clients/rust/Cargo.toml | 6 ++-- clients/rust/release-metadata.json | 2 +- clients/swift/CHANGELOG.md | 4 +++ clients/swift/VERSION | 2 +- clients/swift/release-metadata.json | 2 +- clients/typescript/CHANGELOG.md | 4 +++ clients/typescript/package-lock.json | 4 +-- clients/typescript/package.json | 2 +- clients/typescript/release-metadata.json | 2 +- 18 files changed, 57 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06b5ebb5..a0d60eed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,8 +23,28 @@ changes accumulate. Track in-flight protocol changes via PRs touching `NOTIFICATION_INTRODUCED_IN` maps in [`types/version/registry.ts`](types/version/registry.ts). +## [0.5.1] — 2026-07-02 + +Spec version: `0.5.1` + ### Added +- `SubscribeParams.delivery.maxLatencyMs` for clients to request a maximum + subscription delivery latency, including `0` for no intentional coalescing. +- `SessionState.inputNeeded` — a session-level aggregate of outstanding input + requests across all chats, so a client can discover and answer elicitations, + tool confirmations, and client-tool execution requests from the session + channel without subscribing to individual chats. Each entry + (`SessionChatInputRequest`, `SessionToolConfirmationRequest`, + `SessionToolClientExecutionRequest`, unioned as `SessionInputRequest`) carries + the owning chat URI plus the identifiers needed to respond. +- `session/inputNeededSet` and `session/inputNeededRemoved` actions for the host + to upsert and remove `SessionState.inputNeeded` entries. The session reducer + sets `SessionStatus.InputNeeded` while the queue is non-empty and clears it + (falling back to `InProgress`) once it empties, preserving orthogonal flags. +- `ToolCallConfirmationState` union (`ToolCallPendingConfirmationState | + ToolCallPendingResultConfirmationState`) for the tool call carried by + `SessionToolConfirmationRequest`. - Optional `nonce` field on `ContentRef`. - Optional `intention` field on `chat/toolCallStart` and every `ToolCallState` variant, providing a human-readable description of what the invocation intends @@ -58,29 +78,6 @@ changes accumulate. Track in-flight protocol changes via PRs touching placeholder with no defined semantics; it will be reintroduced with a concrete shape once session filtering/sorting is specified. -## [0.5.1] — Unreleased - -Spec version: `0.5.1` - -### Added - -- `SubscribeParams.delivery.maxLatencyMs` for clients to request a maximum - subscription delivery latency, including `0` for no intentional coalescing. -- `SessionState.inputNeeded` — a session-level aggregate of outstanding input - requests across all chats, so a client can discover and answer elicitations, - tool confirmations, and client-tool execution requests from the session - channel without subscribing to individual chats. Each entry - (`SessionChatInputRequest`, `SessionToolConfirmationRequest`, - `SessionToolClientExecutionRequest`, unioned as `SessionInputRequest`) carries - the owning chat URI plus the identifiers needed to respond. -- `session/inputNeededSet` and `session/inputNeededRemoved` actions for the host - to upsert and remove `SessionState.inputNeeded` entries. The session reducer - sets `SessionStatus.InputNeeded` while the queue is non-empty and clears it - (falling back to `InProgress`) once it empties, preserving orthogonal flags. -- `ToolCallConfirmationState` union (`ToolCallPendingConfirmationState | - ToolCallPendingResultConfirmationState`) for the tool call carried by - `SessionToolConfirmationRequest`. - ## [0.5.0] — 2026-06-26 Spec version: `0.5.0` diff --git a/clients/go/CHANGELOG.md b/clients/go/CHANGELOG.md index 9ed5399c..c9de4004 100644 --- a/clients/go/CHANGELOG.md +++ b/clients/go/CHANGELOG.md @@ -14,6 +14,10 @@ tag whose matching `## [X.Y.Z]` heading is missing from this file. ## [Unreleased] +## [0.5.1] — 2026-07-02 + +Implements AHP 0.5.1. + ### Added - Optional `Nonce` field on `ContentRef`. diff --git a/clients/go/VERSION b/clients/go/VERSION index 8f0916f7..4b9fcbec 100644 --- a/clients/go/VERSION +++ b/clients/go/VERSION @@ -1 +1 @@ -0.5.0 +0.5.1 diff --git a/clients/go/release-metadata.json b/clients/go/release-metadata.json index 9f92d042..d3ec8d26 100644 --- a/clients/go/release-metadata.json +++ b/clients/go/release-metadata.json @@ -1,6 +1,6 @@ { "client": "go", - "packageVersion": "0.5.0", + "packageVersion": "0.5.1", "supportedProtocolVersions": [ "0.5.1" ] diff --git a/clients/kotlin/CHANGELOG.md b/clients/kotlin/CHANGELOG.md index cc7dcc1d..a4f47a30 100644 --- a/clients/kotlin/CHANGELOG.md +++ b/clients/kotlin/CHANGELOG.md @@ -15,6 +15,10 @@ versions (`*-SNAPSHOT`) are explicitly rejected by the publish pipeline; bump ## [Unreleased] +## [0.5.1] — 2026-07-02 + +Implements AHP 0.5.1. + ### Added - Optional `nonce` field on `ContentRef`. diff --git a/clients/kotlin/gradle.properties b/clients/kotlin/gradle.properties index 1055016e..42de2d21 100644 --- a/clients/kotlin/gradle.properties +++ b/clients/kotlin/gradle.properties @@ -8,7 +8,7 @@ kotlin.code.style=official # Maven coordinates — consumed by build.gradle.kts and validated by the # publish workflow against the `kotlin/v*` git tag. GROUP=com.microsoft.agenthostprotocol -VERSION_NAME=0.5.0 +VERSION_NAME=0.5.1 POM_NAME=agent-host-protocol POM_DESCRIPTION=Kotlin/JVM client for the Agent Host Protocol (AHP) POM_INCEPTION_YEAR=2026 diff --git a/clients/kotlin/release-metadata.json b/clients/kotlin/release-metadata.json index 4b357323..efa3c956 100644 --- a/clients/kotlin/release-metadata.json +++ b/clients/kotlin/release-metadata.json @@ -1,6 +1,6 @@ { "client": "kotlin", - "packageVersion": "0.5.0", + "packageVersion": "0.5.1", "supportedProtocolVersions": [ "0.5.1" ] diff --git a/clients/rust/CHANGELOG.md b/clients/rust/CHANGELOG.md index 363ce95f..81631721 100644 --- a/clients/rust/CHANGELOG.md +++ b/clients/rust/CHANGELOG.md @@ -15,6 +15,10 @@ matching `## [X.Y.Z]` heading is missing from this file. ## [Unreleased] +## [0.5.1] — 2026-07-02 + +Implements AHP 0.5.1. + ### Added - Optional `nonce` field on `ContentRef`. diff --git a/clients/rust/Cargo.lock b/clients/rust/Cargo.lock index 58ff8997..a4bdddc8 100644 --- a/clients/rust/Cargo.lock +++ b/clients/rust/Cargo.lock @@ -4,7 +4,7 @@ version = 3 [[package]] name = "ahp" -version = "0.5.0" +version = "0.5.1" dependencies = [ "ahp-types", "ahp-ws", @@ -18,7 +18,7 @@ dependencies = [ [[package]] name = "ahp-types" -version = "0.5.0" +version = "0.5.1" dependencies = [ "serde", "serde_json", @@ -27,7 +27,7 @@ dependencies = [ [[package]] name = "ahp-ws" -version = "0.5.0" +version = "0.5.1" dependencies = [ "ahp", "futures-util", diff --git a/clients/rust/Cargo.toml b/clients/rust/Cargo.toml index cf09b082..9531f000 100644 --- a/clients/rust/Cargo.toml +++ b/clients/rust/Cargo.toml @@ -7,7 +7,7 @@ members = [ ] [workspace.package] -version = "0.5.0" +version = "0.5.1" edition = "2021" rust-version = "1.75" license = "MIT" @@ -22,5 +22,5 @@ tokio = { version = "1", features = ["sync", "rt", "macros", "time"] } tokio-util = "0.7" futures-util = "0.3" tracing = "0.1" -ahp-types = { path = "crates/ahp-types", version = "0.5.0" } -ahp = { path = "crates/ahp", version = "0.5.0" } +ahp-types = { path = "crates/ahp-types", version = "0.5.1" } +ahp = { path = "crates/ahp", version = "0.5.1" } diff --git a/clients/rust/release-metadata.json b/clients/rust/release-metadata.json index 8745116f..85c14eb9 100644 --- a/clients/rust/release-metadata.json +++ b/clients/rust/release-metadata.json @@ -1,6 +1,6 @@ { "client": "rust", - "packageVersion": "0.5.0", + "packageVersion": "0.5.1", "supportedProtocolVersions": [ "0.5.1" ] diff --git a/clients/swift/CHANGELOG.md b/clients/swift/CHANGELOG.md index e4bc82a9..dd303744 100644 --- a/clients/swift/CHANGELOG.md +++ b/clients/swift/CHANGELOG.md @@ -17,6 +17,10 @@ the tag matches the version pinned in [`VERSION`](VERSION). ## [Unreleased] +## [0.5.1] — 2026-07-02 + +Implements AHP 0.5.1. + ### Added - Optional `nonce` field on `ContentRef`. diff --git a/clients/swift/VERSION b/clients/swift/VERSION index 8f0916f7..4b9fcbec 100644 --- a/clients/swift/VERSION +++ b/clients/swift/VERSION @@ -1 +1 @@ -0.5.0 +0.5.1 diff --git a/clients/swift/release-metadata.json b/clients/swift/release-metadata.json index f05f7f5a..780a5810 100644 --- a/clients/swift/release-metadata.json +++ b/clients/swift/release-metadata.json @@ -1,6 +1,6 @@ { "client": "swift", - "packageVersion": "0.5.0", + "packageVersion": "0.5.1", "supportedProtocolVersions": [ "0.5.1" ] diff --git a/clients/typescript/CHANGELOG.md b/clients/typescript/CHANGELOG.md index e74b63d5..731c641d 100644 --- a/clients/typescript/CHANGELOG.md +++ b/clients/typescript/CHANGELOG.md @@ -20,6 +20,10 @@ hotfix escape hatch. ## [Unreleased] +## [0.5.1] — 2026-07-02 + +Implements AHP 0.5.1. + ### Added - Optional `nonce` field on `ContentRef`. diff --git a/clients/typescript/package-lock.json b/clients/typescript/package-lock.json index ebcc275d..4e1df550 100644 --- a/clients/typescript/package-lock.json +++ b/clients/typescript/package-lock.json @@ -1,12 +1,12 @@ { "name": "@microsoft/agent-host-protocol", - "version": "0.5.0", + "version": "0.5.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@microsoft/agent-host-protocol", - "version": "0.5.0", + "version": "0.5.1", "license": "MIT", "devDependencies": { "@types/node": "^22.10.0", diff --git a/clients/typescript/package.json b/clients/typescript/package.json index 12b988c4..75085c66 100644 --- a/clients/typescript/package.json +++ b/clients/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/agent-host-protocol", - "version": "0.5.0", + "version": "0.5.1", "description": "TypeScript client for the Agent Host Protocol (AHP).", "type": "module", "license": "MIT", diff --git a/clients/typescript/release-metadata.json b/clients/typescript/release-metadata.json index a57ed3c5..0cb16f82 100644 --- a/clients/typescript/release-metadata.json +++ b/clients/typescript/release-metadata.json @@ -1,6 +1,6 @@ { "client": "typescript", - "packageVersion": "0.5.0", + "packageVersion": "0.5.1", "supportedProtocolVersions": [ "0.5.1" ] From 345c10dd35f7c87c26aa00afb68028ba9fcd825e Mon Sep 17 00:00:00 2001 From: Connor Peet Date: Thu, 2 Jul 2026 12:39:40 -0700 Subject: [PATCH 2/2] chore: bump PROTOCOL_VERSION to 0.5.2 for ongoing development Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CHANGELOG.md | 4 ++++ clients/go/ahptypes/version.generated.go | 3 ++- clients/go/release-metadata.json | 1 + clients/kotlin/release-metadata.json | 1 + .../agenthostprotocol/generated/Version.generated.kt | 3 ++- clients/rust/crates/ahp-types/src/version.rs | 4 ++-- clients/rust/release-metadata.json | 1 + .../AgentHostProtocol/Generated/Version.generated.swift | 3 ++- clients/swift/release-metadata.json | 1 + clients/typescript/release-metadata.json | 1 + types/version/registry.ts | 3 ++- 11 files changed, 19 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0d60eed..db2e5dcd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,10 @@ changes accumulate. Track in-flight protocol changes via PRs touching `NOTIFICATION_INTRODUCED_IN` maps in [`types/version/registry.ts`](types/version/registry.ts). +## [0.5.2] — Unreleased + +Spec version: `0.5.2` + ## [0.5.1] — 2026-07-02 Spec version: `0.5.1` diff --git a/clients/go/ahptypes/version.generated.go b/clients/go/ahptypes/version.generated.go index 46b7bed7..c9eb2fd9 100644 --- a/clients/go/ahptypes/version.generated.go +++ b/clients/go/ahptypes/version.generated.go @@ -6,12 +6,13 @@ package ahptypes // ProtocolVersion is the current protocol version (SemVer // MAJOR.MINOR.PATCH) that this generated source speaks. -const ProtocolVersion = "0.5.1" +const ProtocolVersion = "0.5.2" // supportedProtocolVersions backs [SupportedProtocolVersions] — held // in an unexported slice so callers cannot accidentally mutate the // shared backing array. var supportedProtocolVersions = []string{ + "0.5.2", "0.5.1", } diff --git a/clients/go/release-metadata.json b/clients/go/release-metadata.json index d3ec8d26..516ac436 100644 --- a/clients/go/release-metadata.json +++ b/clients/go/release-metadata.json @@ -2,6 +2,7 @@ "client": "go", "packageVersion": "0.5.1", "supportedProtocolVersions": [ + "0.5.2", "0.5.1" ] } diff --git a/clients/kotlin/release-metadata.json b/clients/kotlin/release-metadata.json index efa3c956..3c246c45 100644 --- a/clients/kotlin/release-metadata.json +++ b/clients/kotlin/release-metadata.json @@ -2,6 +2,7 @@ "client": "kotlin", "packageVersion": "0.5.1", "supportedProtocolVersions": [ + "0.5.2", "0.5.1" ] } diff --git a/clients/kotlin/src/main/kotlin/com/microsoft/agenthostprotocol/generated/Version.generated.kt b/clients/kotlin/src/main/kotlin/com/microsoft/agenthostprotocol/generated/Version.generated.kt index 90d1d292..4575f5ea 100644 --- a/clients/kotlin/src/main/kotlin/com/microsoft/agenthostprotocol/generated/Version.generated.kt +++ b/clients/kotlin/src/main/kotlin/com/microsoft/agenthostprotocol/generated/Version.generated.kt @@ -5,7 +5,7 @@ package com.microsoft.agenthostprotocol.generated /** * Current protocol version (SemVer `MAJOR.MINOR.PATCH`). */ -public const val PROTOCOL_VERSION: String = "0.5.1" +public const val PROTOCOL_VERSION: String = "0.5.2" /** * Every protocol version this library is willing to negotiate, ordered @@ -16,5 +16,6 @@ public const val PROTOCOL_VERSION: String = "0.5.1" * protocol versions if the host doesn't accept the newest one. */ public val SUPPORTED_PROTOCOL_VERSIONS: List = listOf( + "0.5.2", "0.5.1", ) diff --git a/clients/rust/crates/ahp-types/src/version.rs b/clients/rust/crates/ahp-types/src/version.rs index 63db421e..101276b7 100644 --- a/clients/rust/crates/ahp-types/src/version.rs +++ b/clients/rust/crates/ahp-types/src/version.rs @@ -5,7 +5,7 @@ #![allow(missing_docs)] /// Current protocol version (SemVer `MAJOR.MINOR.PATCH`). -pub const PROTOCOL_VERSION: &str = "0.5.1"; +pub const PROTOCOL_VERSION: &str = "0.5.2"; /// Every protocol version this crate is willing to negotiate, ordered /// most-preferred-first. The first entry equals [`PROTOCOL_VERSION`]. @@ -13,4 +13,4 @@ pub const PROTOCOL_VERSION: &str = "0.5.1"; /// Consumers building `InitializeParams` should pass this slice (or a /// derived `Vec`) so the same client binary can fall back to /// older protocol versions if the host doesn't accept the newest one. -pub const SUPPORTED_PROTOCOL_VERSIONS: &[&str] = &["0.5.1"]; +pub const SUPPORTED_PROTOCOL_VERSIONS: &[&str] = &["0.5.2", "0.5.1"]; diff --git a/clients/rust/release-metadata.json b/clients/rust/release-metadata.json index 85c14eb9..53ef14d7 100644 --- a/clients/rust/release-metadata.json +++ b/clients/rust/release-metadata.json @@ -2,6 +2,7 @@ "client": "rust", "packageVersion": "0.5.1", "supportedProtocolVersions": [ + "0.5.2", "0.5.1" ] } diff --git a/clients/swift/AgentHostProtocol/Sources/AgentHostProtocol/Generated/Version.generated.swift b/clients/swift/AgentHostProtocol/Sources/AgentHostProtocol/Generated/Version.generated.swift index c018beb7..f82f443f 100644 --- a/clients/swift/AgentHostProtocol/Sources/AgentHostProtocol/Generated/Version.generated.swift +++ b/clients/swift/AgentHostProtocol/Sources/AgentHostProtocol/Generated/Version.generated.swift @@ -3,7 +3,7 @@ import Foundation /// Current protocol version (SemVer `MAJOR.MINOR.PATCH`). -public let PROTOCOL_VERSION: String = "0.5.1" +public let PROTOCOL_VERSION: String = "0.5.2" /// Every protocol version this package is willing to negotiate, /// ordered most-preferred-first. The first entry equals @@ -13,5 +13,6 @@ public let PROTOCOL_VERSION: String = "0.5.1" /// `InitializeParams` so the same client binary can fall back to older /// protocol versions if the host doesn't accept the newest one. public let SUPPORTED_PROTOCOL_VERSIONS: [String] = [ + "0.5.2", "0.5.1", ] diff --git a/clients/swift/release-metadata.json b/clients/swift/release-metadata.json index 780a5810..f81eb869 100644 --- a/clients/swift/release-metadata.json +++ b/clients/swift/release-metadata.json @@ -2,6 +2,7 @@ "client": "swift", "packageVersion": "0.5.1", "supportedProtocolVersions": [ + "0.5.2", "0.5.1" ] } diff --git a/clients/typescript/release-metadata.json b/clients/typescript/release-metadata.json index 0cb16f82..0a411b72 100644 --- a/clients/typescript/release-metadata.json +++ b/clients/typescript/release-metadata.json @@ -2,6 +2,7 @@ "client": "typescript", "packageVersion": "0.5.1", "supportedProtocolVersions": [ + "0.5.2", "0.5.1" ] } diff --git a/types/version/registry.ts b/types/version/registry.ts index 04cc6658..d39ee5d7 100644 --- a/types/version/registry.ts +++ b/types/version/registry.ts @@ -15,7 +15,7 @@ import type { ServerNotificationMap } from '../messages.js'; * * Formatted as a [SemVer](https://semver.org) `MAJOR.MINOR.PATCH` string. */ -export const PROTOCOL_VERSION = '0.5.1'; +export const PROTOCOL_VERSION = '0.5.2'; /** * Every protocol version a client built from this source tree is willing @@ -34,6 +34,7 @@ export const PROTOCOL_VERSION = '0.5.1'; * `scripts/verify-release-metadata.ts`. */ export const SUPPORTED_PROTOCOL_VERSIONS: readonly string[] = Object.freeze([ + '0.5.2', '0.5.1', ]);