v0.6.0

microsoft/agent-host-protocolv0.6.0Jul 20, 2026by github-actions[bot]

Upgrading?

Release notes summary

Implements AHP 0.6.0, introducing changeset review capabilities, asynchronous tool-call risk assessments, and a full OAuth authentication flow for MCP tools.

Key Highlights

  • Support for per-file review workflow via `Changeset.capabilities`.
  • Tool call authentication states (`AuthRequired`) allowing pause/resume on OAuth challenges.
  • New `AHPClient.ping()` method for connection liveness checks.
  • Added `McpAuthRequirement.oauthClient` metadata for pre-registered OAuth clients.

Breaking Changes

  • Renamed `changeset/filesReviewedChanged` to `changeset/filesReviewChanged` (field `fileIds` → `files`).
  • Input requests moved to turn `responseParts`, changing how input state is persisted.

New Features

  • Optional `_meta` slot on `SystemNotificationResponsePart`.
  • Timestamps and duration tracking for chat turns (`startedAt`, `duration`).
  • `AHPCommands.createTerminal` and `disposeTerminal` request factories.

Full Release Notes

## [0.6.0] — 2026-07-20

Implements AHP 0.6.0.

### Added

- `Changeset.capabilities` with a `review` presence flag (`ChangesetCapabilities`) so a changeset can advertise support for the per-file review workflow up-front on the session's changeset list. (#328)
- Optional `_meta` slot on `SystemNotificationResponsePart`, following the MCP `_meta` convention. A host MAY attach a machine-readable descriptor of what triggered the notification so clients can categorize, icon, group, filter, or localize it without parsing `content`. (#308)
- `chat/turnStarted` carries a `startedAt` timestamp, `chat/turnComplete`/`chat/turnCancelled`/`chat/error` carry an elapsed `duration` (milliseconds, producer's own clock), and completed turns expose their start time and duration.
- Asynchronous tool-call risk assessments with a model-provided explanation and normalized safety score.
- `ToolCallStatus.AuthRequired` tool call state and `chat/toolCallAuthRequired` / `chat/toolCallAuthResolved` actions so a running MCP-contributed tool call can pause mid-execution on an OAuth challenge (`McpAuthRequirement`) and resume once the client authenticates; surfaced at the session level via a new `toolAuthentication` `SessionInputRequest` variant, and `AuthenticateParams` gained an optional `scopes` field and now accepts resources discovered from a live `McpServerAuthRequiredState` or `ToolCallAuthRequiredState` in addition to `AgentInfo.protectedResources`. `chat/toolCallComplete` now also accepts a failed result while a tool call is `auth-required`, letting a client cancel that invocation without completing the authentication challenge.
- `McpAuthRequirement.oauthClient` metadata for pre-registered public and confidential OAuth clients.
- `AHPClient.ping()` for protocol-level connection liveness and an `AHPCommands.ping(id:)` request factory, mirroring the TypeScript client's `AhpClient.ping()`.
- `AHPCommands.createTerminal(id:params:)` and `AHPCommands.disposeTerminal(id:params:)` request factories, so the generated `CreateTerminalParams` / `DisposeTerminalParams` are reachable through the typed command surface for parity with `createSession` / `disposeSession`. (#341)

### Changed

- Renamed the changeset review action `changeset/filesReviewedChanged` to `changeset/filesReviewChanged` (field `fileIds` → `files`) and made it client-dispatchable, so a reviewer can toggle a file's `reviewed` flag directly through the write-ahead reducer. (#328)
- Input requests now live in turn `responseParts`, with an optional `response` until `chat/inputCompleted` submits the result. (#327)

Related Repositories