[0.5.0] — 2026-06-26
Implements AHP 0.5.0.
Added
ChatActivityChangedAction(StateAction.chatActivityChanged, wire
chat/activityChanged) for updating a chat's current activity description
independently of the session summary.ProgressParamsstruct (wireroot/progress) — a generic progress notification
correlated by aprogressToken(added onCreateSessionParams).
Used today for the lazy first-use download of an agent's native SDK.SessionModelInfo.maxOutputTokensandSessionModelInfo.maxPromptTokens
optional fields for communicating model token limits.SessionSummary.meta(_metaon the wire) optional provider metadata field
for lightweight session-list presentation hints.SessionActiveClientRemovedAction(StateAction.sessionActiveClientRemoved,
wiresession/activeClientRemoved) to release a single active client by
clientId.ChatDraftChangedAction(StateAction.chatDraftChanged, wire
chat/draftChanged) andChatState.draft(Message?) to set or clear the
user's in-progress draft input for a chat. The chat reducer applies it
without stampingmodifiedAt.Message.modelandMessage.agentoptional fields carrying the selection a
message was composed with.
Changed
SessionState.activeClients([SessionActiveClient], required) replaces the
single optionalSessionState.activeClient; the session reducer upserts and
removes entries keyed byclientId.StateAction.sessionActiveClientChangedis renamed to
StateAction.sessionActiveClientSet(wiresession/activeClientSet) with
upsert-by-clientIdsemantics; it no longer unsets the active client
(dispatchsession/activeClientRemovedinstead).ConfigPropertySchema.enumfield is now[AnyCodable]?instead of
[String]?, allowing numeric, boolean, and null enum values.ModelSelection.configvalues are nowAnyCodableinstead ofString,
allowing numeric, boolean, and null configuration values.SessionStatenow inlines the session metadata fields (provider,title,
status,activity,project,workingDirectory,annotations) directly
instead of embedding asummary: SessionSummary. The session reducer mutates
these fields directly and no longer stamps amodifiedAt.SessionSummary
remains a root-only catalog struct whosecreatedAt/modifiedAtare now
ISO-8601Strings and which no longer carriesmodel/agent.ChatStateandChatSummaryno longer carrymodel/agent.
Removed
SessionActiveClientToolsChangedAction. An active client now updates its
published tools by re-dispatchingStateAction.sessionActiveClientSetwith its
full, updated entry.SessionModelChangedAction(StateAction.sessionModelChanged,
session/modelChanged) andSessionAgentChangedAction
(StateAction.sessionAgentChanged,session/agentChanged), along with their
session-reducer handling.