clients/go/v0.5.2

microsoft/agent-host-protocolclients/go/v0.5.2Jul 9, 2026by github-actions[bot]

Upgrading?

Release notes summary

Go client implementation of AHP 0.5.2, providing typed wrappers for resource operations and input request persistence to match the Swift package functionality.

Key Highlights

  • Typed `resource*` convenience methods on `ahp.Client`.
  • New `ResponsePartKindInputRequest` for handling resolved input requests.
  • Inbound server-request handling via `SetServerRequestHandler`.

New Features

  • Optional `Enabled` field on child customizations.
  • Optional `Meta` provider metadata on all customization types.
  • Optional `Version` field on `PluginCustomization`.

Full Release Notes

## [0.5.2] — 2026-07-09

Implements AHP 0.5.2.

### Added

- Typed `resource*` convenience methods on `ahp.Client`: send wrappers (`ResourceRead`, `ResourceWrite`, `ResourceList`, `ResourceCopy`, `ResourceDelete`, `ResourceMove`, `ResourceResolve`, `ResourceMkdir`, `ResourceRequest`, `CreateResourceWatch`) and inbound server-request handling via `SetServerRequestHandler` / `SetResourceRequestHandlers` (new `ServerRequestHandler` and `ResourceRequestHandlers` types). Inbound server-initiated requests are now answered (previously dropped) — via the installed handler, or `MethodNotFound` when none is set.
- `ToolResultTerminalCompleteContent` for terminal-style completion metadata in tool
  results.
- Optional `Enabled` field on the child customization types
  (`AgentCustomization`, `SkillCustomization`, `PromptCustomization`,
  `RuleCustomization`, `HookCustomization`).
- `DisableUserInvocation` on `SkillCustomization`, plus `DisableModelInvocation`
  and `DisableUserInvocation` on `AgentCustomization`.
- Optional `Reviewed` field on `ChangesetFile`. Omitting it (or setting it to
  `nil`) signals that the server does not support the file "review"
  functionality.
- `changeset/filesReviewedChanged` action for servers to update the `Reviewed`
  flag of one or more changeset files.
- Optional `Meta` (wire `_meta`) provider-metadata field on every customization
  type, moved from `AgentCustomization` up to the shared customization base so
  `PluginCustomization`, `ClientPluginCustomization`, `DirectoryCustomization`,
  `SkillCustomization`, `PromptCustomization`, `RuleCustomization`,
  `HookCustomization`, and `McpServerCustomization` all carry it.
- Optional `ServerInfo` on `InitializeResult` and `ClientInfo` on
  `InitializeParams`, each an `Implementation` struct (`Name`, optional
  `Version`, optional `Title`), identifying the implementation and build behind
  either side of the handshake. Informational only — MUST NOT be used for
  feature detection.
- Optional `TerminalCommandPrefix` on `InitializeResult` for hosts that support
  interpreting `!`-prefixed user messages as terminal commands.
- Optional `Version` field on `PluginCustomization` (inherited by
  `ClientPluginCustomization`), carrying the plugin's semver sourced from the
  Open Plugins manifest. Provenance / display only.
- `session/mcpServerStartRequested` and `session/mcpServerStopRequested`
  actions for clients to ask the host to start or stop MCP servers; stopping
  moves an `authRequired` server to `stopped` so it no longer waits on
  authentication.
- `InputRequestResponsePart` and the `ResponsePartKindInputRequest` discriminant.
  The reducer now records a resolved input request in the active turn's
  `ResponseParts` on `ChatInputCompletedAction` — embedding the resolved
  `ChatInputRequest` (final `Answers`) and the `Response` (`accept`, `decline`,
  or `cancel`) — so the outcome persists after the live request is removed.
  Abandoned requests still record nothing (#324).

### Changed

- The `session/customizationToggled` reducer now toggles any top-level
  customization (`plugin`, `directory`, or top-level `mcpServer`) or an
  individual child by `id`, setting that entry's `Enabled`.

Related Repositories