v0.9.0

caddyserver/caddyv0.9.0Aug 28, 2026by github-actions[bot]

Upgrading?

AI Summary

Implements AHP 0.9.0, adding an automation catalogue, durable turn errors, and improved terminal session lifecycle management.

Key Highlights

  • Automation catalogue and automation-run channels for shared trigger-based workflows.
  • Turn errors are now durable response parts with resumable error handling.
  • Annotations now carry an `origin` with required session URI.
  • Terminal state uses explicit `running`/`exited` lifecycle.
  • Removed session-level forking in favor of chat forking.

Breaking Changes

  • Removed `error` from `changeset/contentChanged`.
  • Removed session-level forking from `createSession`.
  • Removed `ContentNotFound` as an exported AHP error code.

New Features

  • Automation catalogue and automation-run channels.
  • Turn errors as durable response parts.
  • InitializeResult._meta for extension capabilities.
  • Annotations with origin (session URI, optional chat URI, turn ID).
  • Renamed failed session lifecycle value from `creationFailed` to `failed`.
  • TerminalSessionClaim requiring chat URI.
  • Terminal state explicit `running`/`exited` lifecycle.
  • Unknown values preservation for nonexhaustive protocol enums.
  • Narrowed tool-call state in SessionToolClientExecutionRequest.
  • Automation catalogue snapshots using AutomationState.entries.

Full Release Notes

## [0.9.0] — 2026-08-28

Implements AHP 0.9.0.

### Added

- Automation catalogue and automation-run channels, including self-contained host-defined event triggers and automation-origin messages, for shared trigger-based agent session workflows.
- Turn errors are durable response parts, and resumable errors can reopen the same turn through `chat/turnResume`.
- `InitializeResult._meta` for hosts to advertise implementation-specific extension capabilities in initialize responses.

### Changed

- Annotations now carry an `origin` with a required session URI and optional chat URI and turn ID.
- Renamed the failed session lifecycle value from `creationFailed` to `failed`.
- `TerminalSessionClaim` now requires the chat URI that owns the terminal.
- Terminal state now uses an explicit `running`/`exited` lifecycle that preserves exits without an exit code.
- Generated clients now preserve unknown values for nonexhaustive protocol enums and their discriminated unions.
- `SessionToolClientExecutionRequest.toolCall` is narrowed to a running tool-call state.
- Automation catalogue snapshots now use `AutomationState.entries`, whose items are named `AutomationEntry`.

### Removed

- Removed `error` from `changeset/contentChanged`; changeset failures are represented by `changeset/statusChanged`.
- Removed session-level forking from `createSession`; use chat forking instead.
- `ContentNotFound` is no longer an exported AHP error code; `-32006` remains reserved and unassigned.

### Fixed

- Chat reducers now derive `modifiedAt` from turn action data instead of local wall clocks.

Related Repositories