spec/v1.0.0
AprilNEA/OpenLogispec/v1.0.0Oct 2, 2026by github-actions[bot]
Upgrading?
AI Summary
Protocol specification version 1.0.0 defining the core contract for AHP.
Key Highlights
- Lightweight chat navigation data (SessionSummary.chats) without requiring a session subscription.
- Enhanced automation controls including disable conditions (afterRuns/afterDate).
- New chat state actions for archiving and reading status.
- Exposure of chat-owned background work and atomic stable-URI moveChat transfer.
Breaking Changes
- FileEdit and preview edits now use named models in generated SDKs.
- ToolResultTerminalContent.resource subscriptions return lazily reconstructed exited terminal state.
- Advertise only specific protocol compatibility baselines (1.0.0 and 0.9.0).
New Features
- AuthenticateParams.expiresIn carries OAuth access token lifetime.
- SessionSummary.chats expose lightweight chat navigation data.
- chat/isArchivedChanged action for independent chat archiving.
- AutomationDefinition.disableConditions supports afterRuns and afterDate rules.
- ChangesetStatus.Recomputing distinguishes refreshes from initial computation.
- McpServerStartingState.blocking flag for background server startup.
- AutomationSessionTemplate.customizations for client plugins.
- Atomic stable-URI moveChat transfer for host-authorized chats.
Full Release Notes
## [1.0.0] — 2026-10-02 Spec version: `1.0.0` ### Added - `AuthenticateParams.expiresIn` carries an OAuth access token's remaining lifetime in seconds. - `SessionSummary.chats`, `SessionChatSummary.interactivity`, and `SessionSummary.defaultChat` expose lightweight chat navigation data without requiring a session subscription. - `chat/isArchivedChanged` action for archiving a chat independently of its session. - `ChatState.changesets` and `chat/changesetsChanged` expose each chat's changeset catalogue through the subscribed chat channel. - `AutomationDefinition.disableConditions` supports `afterRuns` (`max`) and `afterDate` (`date`) rules combined with logical OR, with at most one condition per kind. Host-owned `AutomationEntry.runCount` tracks the current scheduled-run allowance. Edit conditions through `automation/updateRequested`: omission leaves them unchanged, an array replaces them, and `[]` removes all conditions without re-enabling the automation. - `ChangesetStatus.Recomputing` distinguishes refreshes of a completed result from initial changeset computation. - `ConfigPropertySchema.minItems` and `ConfigPropertySchema.maxItems` express array cardinality for `type: "array"` config properties. (#432) - `McpServerStartingState.blocking` flag indicating that message processing may be held on the server, and the client-dispatchable `session/mcpServerBackgroundRequested` action asking the host to background such a startup. - `AutomationSessionTemplate.customizations` lets automations carry client plugins (skills, agents, prompts, rules) that the host captures when the definition is saved, with the host-owned copies reported in `AutomationEntry.customizations` and support advertised by `AutomationCapabilities.customizations`. - Hosts can advertise chat-owned canvas channel references and synchronize live presentation metadata and source URLs on experimental per-canvas channels. - Atomic stable-URI `moveChat` transfer and same-session ordering for host-authorized chats, with per-chat `movable` discovery and durable authoritative catalogs. - Expose chat-owned background work (background shells and subagents) in chat state, with `chat/backgroundWorkSet` and `chat/backgroundWorkRemoved` actions independent of turn lifetime. - `ChatSummary.changes` and `ChatState.changes` provide aggregate file-change counts without requiring a changeset subscription. - `SessionChatSummary.status` exposes per-chat archived state via `SessionStatus.IsArchived` in the lightweight chat catalog without requiring a session subscription. - `chat/isReadChanged` action and optional `SessionChatSummary.status` projection for independently tracking the status of any known chat, including the default chat; the status bitset replaces the unreleased `isRead` and `archived` catalog fields. - `SessionChatSummary.changes` exposes per-chat change counts in the lightweight chat catalog without requiring a session subscription. ### Changed - Historical `ToolResultTerminalContent.resource` subscriptions return lazily reconstructed exited terminal state with retained output. - `FileEdit` and preview `edits` now use named models in generated SDKs. This breaks affected SDK APIs but keeps JSON shapes unchanged. - Advertise only the 1.0.0 and 0.9.0 protocol compatibility baselines independently of the development version. Host-side negotiation helpers select the highest client-offered version within either caret-compatible range and report malformed offers explicitly.
Related Repositories
farion1231/cc-switch★ 147,274
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
rustdesk/rustdesk★ 126,550
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
tauri-apps/tauri★ 112,099
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
ruvnet/RuView★ 99,063
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
oven-sh/bun★ 96,339
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one