clients/go/v0.5.0

microsoft/agent-host-protocolclients/go/v0.5.0Jun 26, 2026by github-actions[bot]

Upgrading?

Release notes summary

Implements AHP 0.5.0 for the Go module, flattening SessionState and adding active client management.

Key Highlights

  • SessionState metadata inlined (no longer nested Summary).
  • SessionState.ActiveClients replaces ActiveClient.
  • ChatDraftChangedAction and ChatState.Draft support.
  • ProgressParams for generic progress notifications.
  • SessionSummary.Meta for presentation hints.

Breaking Changes

  • SessionState structure flattened.
  • SessionState.ActiveClient replaced by ActiveClients.
  • SessionActiveClientChangedAction renamed to SessionActiveClientSetAction.
  • ConfigPropertySchema.Enum type changed to []json.RawMessage.
  • ModelSelection.Config type changed to json.RawMessage.
  • SessionSummary no longer carries model/agent.
  • ChatState no longer carries model/agent.

New Features

  • ChatDraftChangedAction and ChatState.Draft.
  • Message.Model and Message.Agent.
  • ChatActivityChangedAction.
  • ProgressParams with ProgressToken.
  • SessionModelInfo MaxOutputTokens and MaxPromptTokens.
  • SessionSummary.Meta.
  • SessionActiveClientRemovedAction.

Full Release Notes

## [0.5.0] — 2026-06-26

Implements AHP 0.5.0.

### Added

- `ChatDraftChangedAction` (wire `chat/draftChanged`) and `ChatState.Draft`
  (`*Message`) for syncing a chat's in-progress input draft; `ApplyActionToChat`
  sets or clears `state.Draft` without stamping `ModifiedAt`.
- `Message.Model` and `Message.Agent` optional fields recording the model /
  agent selection a message was composed with.
- `ChatActivityChangedAction` (wire `chat/activityChanged`) for updating a chat's
  current activity description independently of the session summary.
- `ProgressParams` struct (wire `root/progress`) — a generic progress notification
  correlated by a `ProgressToken` (added on `CreateSessionParams`).
  Used today for the lazy first-use download of an agent's native SDK.
- `SessionModelInfo.MaxOutputTokens` and `SessionModelInfo.MaxPromptTokens`
  optional fields for communicating model token limits.
- `SessionSummary.Meta` (wire `_meta`) optional provider metadata field for
  lightweight session-list presentation hints.
- `SessionActiveClientRemovedAction` (wire `session/activeClientRemoved`) to
  release a single active client by `ClientId`.

### Changed

- `SessionState` no longer embeds a `Summary` sub-struct; its metadata fields
  (`Provider`, `Title`, `Status`, `Activity`, `Project`, `WorkingDirectory`,
  `Annotations`) are now inlined directly on `SessionState`, which no longer
  carries `Model`, `Agent`, `CreatedAt`, or `ModifiedAt`. `ApplyActionToSession`
  reads and writes these flat fields and no longer stamps a session
  `ModifiedAt`.
- `SessionSummary` is now a root-only catalog struct; its `CreatedAt` /
  `ModifiedAt` are ISO-8601 strings (previously numeric) and it no longer
  carries `Model` / `Agent`.
- `ChatState` and `ChatSummary` no longer carry `Model` / `Agent`.
- `SessionState.ActiveClients` (`[]SessionActiveClient`, required) replaces the
  single pointer `SessionState.ActiveClient`; `ApplyActionToSession` upserts and
  removes entries keyed by `ClientId`.
- `SessionActiveClientChangedAction` is renamed to `SessionActiveClientSetAction`
  (wire `session/activeClientSet`) with upsert-by-`ClientId` semantics; it no
  longer unsets the active client (dispatch `session/activeClientRemoved`
  instead).
- `ConfigPropertySchema.Enum` field is now `[]json.RawMessage` instead of `[]string`,
  allowing numeric, boolean, and null enum values.
- `ModelSelection.Config` values are now `json.RawMessage` instead of `string`,
  allowing numeric, boolean, and null configuration values.

### Removed

- `SessionModelChangedAction` (wire `session/modelChanged`) and
  `SessionAgentChangedAction` (wire `session/agentChanged`); session model /
  agent are no longer part of the protocol surface.
- `SessionActiveClientToolsChangedAction`. An active client now updates its
  published tools by re-dispatching `SessionActiveClientSetAction` with its
  full, updated entry.

Related Repositories