v0.5.1
microsoft/agent-host-protocolv0.5.1Jul 2, 2026by github-actions[bot]
Upgrading?
Release notes summary
Implements AHP 0.5.1, introducing session-level input aggregation, cursor-based pagination for sessions, and subscription latency controls.
Key Highlights
- `SessionState.inputNeeded` to aggregate outstanding input requests across all chats.
- Cursor-based pagination for `listSessions` using `PaginatedParams`.
- `SubscribeParams.delivery.maxLatencyMs` to control subscription coalescing.
Breaking Changes
- Removed `filter` field from `ListSessionsParams`.
- `fetchTurns` contract is not wire-compatible with 0.5.0.
New Features
- Optional `nonce` field on `ContentRef`.
- Optional `capabilities` field on `AgentInfo` for multi-chat gating.
- Optional `intention` field on tool-call lifecycle states.
Full Release Notes
## [0.5.1] — 2026-07-02
Implements AHP 0.5.1.
### Added
- Optional `nonce` field on `ContentRef`.
- `SubscribeParams.delivery.maxLatencyMs` and
`AHPClient.subscribe(_:delivery:)` for clients to request a maximum
subscription delivery latency, including `0` for no intentional coalescing.
- Optional `capabilities` field on `AgentInfo` (`AgentCapabilities` with a
nested `multipleChats` capability carrying `fork`) so clients gate multi-chat
and fork via advertised capabilities instead of provider-id switches.
- Cursor-based pagination for `listSessions`, via new shared `PaginatedParams`
(`limit` + `cursor`) and `PaginatedResult` (`nextCursor`) types:
`ListSessionsParams` and `ListSessionsResult` now carry these fields, letting
clients page through a large session catalogue. Fully additive — omitting the
fields preserves prior behaviour.
- `SubscribeParams.view.turns`, `ChatState.turnsNextCursor`, and the
`chat/turnsLoaded` action so clients can subscribe to a bounded tail of chat
history and page older turns into the reduced chat state on demand.
- `SessionState.inputNeeded` — a session-level aggregate of outstanding input
requests across all chats (`SessionInputRequest` enum with
`SessionChatInputRequest`, `SessionToolConfirmationRequest`, and
`SessionToolClientExecutionRequest` cases), plus the
`StateAction.sessionInputNeededSet` / `StateAction.sessionInputNeededRemoved`
actions and the `ToolCallConfirmationState` union. The session reducer
maintains the `SessionStatus.inputNeeded` activity bit from the queue,
clearing it (falling back to `.inProgress`) when the last entry is removed.
- Optional `intention` field on `ChatToolCallStartAction` and every tool-call
lifecycle state.
- Optional `model` and `tools` fields on `AgentCustomization` for a custom
agent's pinned model and tool allowlist.
### Changed
- `fetchTurns` now accepts `cursor` from `ChatState.turnsNextCursor` and returns
an empty result after the host has loaded older turns into chat state, instead
of returning a detached `{ turns, hasMore }` page.
- Generated clients now advertise only protocol `0.5.1`, since the `fetchTurns`
contract is not wire-compatible with `0.5.0`.
### Removed
- `filter` field from `ListSessionsParams`. It was an untyped placeholder with
no defined semantics; it will return with a concrete shape once session
filtering/sorting is specified.
### Fixed
- `SnapshotState` now decodes the `chat` variant. Its decoder previously never
attempted `ChatState`, so chat snapshots failed to decode. Variant
disambiguation also no longer relies on the removed `summary` field (a leftover
from before `SessionState` was flattened).
Related Repositories
openclaw/openclaw★ 392,873
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
morluto/rea★ 372,577
Reverse engineer anything with agents, from app behavior down to native binaries.
nilbuild/developer-roadmap★ 370,231
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
anomalyco/opencode★ 220,569
The open source coding agent.
n8n-io/n8n★ 208,401
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.