v0.9.0
dubinc/dubv0.9.0Aug 28, 2026by github-actions[bot]
Upgrading?
AI Summary
This release implements the AHP 0.9.0 specification, introducing automation catalogue and run channels for shared agent workflows. It also refactors terminal states, annotation origins, and client generation to better handle unknown values and durable error responses.
Key Highlights
- Added automation catalogue and automation-run channels for shared trigger-based workflows.
- Turn errors are now durable response parts, allowing resumption via `chat/turnResume`.
- Renamed failed session lifecycle value from `creationFailed` to `failed`.
- Terminal state now uses explicit `running`/`exited` lifecycles.
- Removed session-level forking from `createSession` in favor of chat forking.
Breaking Changes
- Renamed `creationFailed` to `failed`.
- Removed `error` from `changeset/contentChanged`.
- Removed session-level forking from `createSession`.
- Removed `ContentNotFound` as an exported AHP error code.
- Annotations now require a session URI.
- `TerminalSessionClaim` now requires a chat URI.
New Features
- Automation catalogue and run channels
- Durable turn errors with resumption
- Host extension capabilities via `InitializeResult._meta`
- Preserved unknown values in generated clients
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
openclaw/openclaw★ 392,729
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
nilbuild/developer-roadmap★ 370,105
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
morluto/rea★ 361,425
Reverse engineer anything with agents, from app behavior down to native binaries.
anomalyco/opencode★ 219,918
The open source coding agent.
n8n-io/n8n★ 208,293
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.