AHP Spec v0.7.0
[0.7.0] — 2026-07-31
Spec version: 0.7.0
Added
- Capability-gated side chats can start from a chat turn and return bounded chat transcripts as message attachments.
- Multiroot session support:
AgentCapabilities.multipleWorkingDirectoriescapability (withimmutablePrimary, which pinsworkingDirectories[0]as a fixed primary root that clients MUST NOT remove or reorder),CreateSessionParams.workingDirectoriesandSessionMetadata.workingDirectories(equal-peer set, mirrored ontoSessionState/SessionSummary),CreateChatParams.workingDirectoriesandChatState/ChatSummary.workingDirectories(a subset of the session's set), and the client-dispatchablesession/workingDirectorySet/session/workingDirectoryRemovedandchat/workingDirectorySet/chat/workingDirectoryRemovedactions for mutating those sets. (#337) resultonToolResultTerminalContent(exitCode,preview,truncated), present once the command exits. (#323)- Optional
isPtymetadata onToolResultTerminalContentandTerminalStateindicating whether a terminal resource is PTY-backed. (#322) - Side-chat sources and origins can now carry an immutable selected-text snapshot with optional response-part provenance.
Changed
- Side-chat sources and origins now carry stable
turnIdreferences instead of nested active/completed turn snapshots. MessageChatAttachment.endTurnis optional; hosts pin the latest completed turn when it is omitted, and chat attachments may reference chats in other sessions.chat/toolCallReadymay finalize a tool call's provisional contributor and intention without changing client execution ownership.- Final tool input may be inline or a lazy
ContentRef, and streaming deltas may include partial parameters.
Removed
ToolResultTerminalCompleteContent; command completion data now lives onToolResultTerminalContent. (#322, #323)- Non-standard
resource_encryption_alg_values_supportedandresource_encryption_enc_values_supportedfields fromProtectedResourceMetadata. (#368)
Fixed
createChat.sourceis once again a fully discriminated union: fork and side-chat sources both require akind, and missing or unknown kinds are rejected.- JSON Schema no longer marks properties declared as
T | undefined(ActionEnvelope.origin,Turn.usage,ActiveTurn.usage,SessionActivityChangedAction.activity,SessionMetaChangedAction._meta,SessionChangesetsChangedAction.changesets,ChangesetOperationsChangedAction.operations) asrequired. Such properties are absent on the wire and every client emits them as optional, so the published schemas rejected valid protocol traffic. - Restored authentication documentation in the
authenticatecommand andMcpAuthRequirementthat a secret-scanner had redacted, including a corruptedWWW-Authenticate: Bearer scope="…"header example.