Skip to content

AHP Swift Package v0.3.0

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Jun 14:59
· 49 commits to main since this release
b639a27

[0.3.0] — 2026-06-05

Implements AHP 0.3.0.

Added

  • McpServerCustomization now exposes the full MCP lifecycle: enabled,
    the discriminated McpServerState enum
    (.starting/.ready/.authRequired/.error/.stopped), optional
    channel URI for the mcp:// side-channel, and optional mcpApp
    block carrying AhpMcpUiHostCapabilities for MCP Apps.
  • McpServerAuthRequiredState carries ProtectedResourceMetadata
    plus reason / requiredScopes / description so the existing
    authenticate command can drive per-server auth.
  • Customization.mcpServer top-level case — hosts MAY surface bare
    MCP servers directly rather than only inside a plugin or directory.
  • SessionMcpServerStateChangedAction and matching reducer arm —
    narrow upsert of state + channel on an existing MCP
    server customization by id. Wired through both Reducers.swift and
    the protocol-based NativeReducer.swift.
  • ClientCapabilities struct on InitializeParams.capabilities with
    first entry mcpApps.
  • changeKind field on Changeset (well-known values: 'session',
    'branch', 'uncommitted', 'turn', 'compare-turns').
  • status and error fields on ChangesetOperation and the
    changeset/operationStatusChanged action, tracking the
    idle → running → error lifecycle of a changeset operation.
  • AgentCustomization._meta provider metadata field.
  • Optional changes field on SessionSummary (ChangesSummary with optional additions, deletions, and files counts) summarising a session's file-change footprint.

Changed

  • Renamed the ChangesetSummary type to Changeset. The on-the-wire shape is unchanged.
  • Moved the changesets catalogue from SessionSummary to SessionState. The session/changesetsChanged action now updates state.changesets directly instead of state.summary.changesets.

Removed

  • Removed the additions, deletions, and files fields from ChangesetSummary. Aggregate counts now live on SessionSummary.changes; per-changeset views derive their own totals from ChangesetState.files.

Changed

  • ToolCallBase.toolClientId: String? replaced by
    ToolCallBase.contributor: ToolCallContributor? (enum with
    .client(ToolCallClientContributor) and .mcp(ToolCallMcpContributor)
    cases). SessionToolCallStartAction carries the new contributor
    field as well. Reducers.swift, NativeReducer.swift, and
    ToolCallStateExtensions.swift follow the rename.