Compatibility rule
Use the exact package versions shown below across Runtime, Protocol, Conversation, Files, SDK, Memory, Next.js, AI SDK, Observability, Workspace Skills, and compatible clients. First-party compatibility follows the exact dependency contracts declared by each owning package, not equal semantic version numbers. Products such as Desktop and Kestrel One release independently and do not need to share package versions.
Package matrix
| Surface | Compatible line | Contract note |
|---|---|---|
| Runtime | 0.8.8 | Runtime and CLI distribution; package compatibility follows its declared dependencies |
| Protocol | 0.8.5 | Owns execution, conversations, executable plugins, approvals, recovery, Mission Control, and events |
| Conversation | 0.8.5 | Projects durable turns, streaming presentation, queues, composer actions, and typed host interactions |
| Files | 0.8.5 | Classifies uploaded media and extracts bounded host-side representations |
| SDK | 0.8.5 | Consumes the exact matching runner and protocol contracts |
| Memory | 0.8.5 | Provides governed memory contracts, backends, and retrieval helpers |
| Next.js | 0.8.5 | Adapts SDK results to server routes |
| AI SDK | 0.8.5 | Adapts runner streams to AI SDK presentation events |
| Observability | 0.8.5 | Carries compatible trace context and correlation |
| Workspace skills | 0.8.5 | Installs and verifies portable workspace guidance |
| CLI | 0.8.8 | Install the canonical npm artifact on macOS arm64 or Linux x64 with Node.js 22 |
| Desktop | 0.8.6 | Signed and notarized macOS arm64 application with stable OTA support |
| Kestrel One | 0.8.5 | Versioned source plus an invitation-only Lumi-hosted deployment |
All ten public npm artifacts are now available. Runtime/CLI is 0.8.8; Protocol, Conversation, Files, SDK, Memory, Next.js, AI SDK, Observability, and Workspace Skills are 0.8.5. A package may remain optional to an application, but every installed Kestrel package must match the versions shown above. Do not combine 0.7 and 0.8 contracts or add an application-side shim for removed APIs.
Product matrix
CLI/TUI uses Runtime 0.8.8 and supports Node.js 22 on macOS arm64 and Linux x64. Desktop 0.8.6 is an independently versioned signed macOS arm64 application available by DMG and stable OTA. Kestrel One source is tagged 0.8.5; Lumi hosting runs an identified deployment of that product version.
Runtime/CLI 0.8.8 preserves job_input_v1 and adds strict job_input_v2, job preflight, and immutable execution-profile binding. Clients that need assignment-time compatibility proof must require the V2 Local Core capability and must not downgrade to V1 after a failed preflight.
Platform matrix
| Surface | Release-verified platform |
|---|---|
| CLI/TUI | macOS arm64, Linux x64 |
| Desktop | macOS 13+ on Apple silicon |
| SDK packages | Node.js 22 server runtimes supported by each package |
| Kestrel One source | repository development environment |
| Lumi-hosted Kestrel One | Lumi-operated Vercel, worker, and Fly targets |
Persistence and migrations
Desktop and Local Core preserve their owned settings, credentials, projects, sessions, and history across the upgrade. Desktop creates a one-time pre-v12 settings backup before migrating Apps and MCP connections to plugin records. Hosted operators apply only pending migrations and verify application/worker compatibility before promotion.
Unsupported combinations
- Mixed 0.7 and 0.8 Kestrel package graphs
- Removed Board/Task or project snapshot write APIs
- Desktop downgrade after schema 12 without first restoring the pre-v12 settings backup
- Broad approvals reused for a different action
- A hosted deployment whose actual Vercel result, Machine image tag, or tenant operation was not verified
Historical releases
The 0.7 upgrade guide remains available as history. It is not current integration guidance.
Verify a deployed system
For hosted operation, record the Vercel deployment and migration result, the operator-selected tag and provider result for each changed Machine, the exact tenant operation when applicable, and one successful terminal result. Do not infer one target's state from another target's result.