v1.10.0

dyad-sh/dyadv1.10.0Aug 10, 2026by github-actions[bot]

AI Summary

This release consolidates the application architecture by moving core operations to a main actor host and introduces a local distributed actor kernel. It emphasizes security through encryption of MCP data and build provenance, alongside significant state machine hardening.

Key Highlights

  • Introduces a local distributed actor kernel and remote machine client for enhanced scalability.
  • Moves app run authority, GitHub operations, and image generation to the main actor host.
  • Encrypts MCP server headers and environment variables at rest to improve security.
  • Hardens state machine types with explicit capability selectors and ownership boundaries.
  • Adds infrastructure for multi-window apps and cross-window chat tab transfer.

Breaking Changes

  • Retire S-tier state machine mirrors
  • Delete legacy renderer app run authority
  • Delete legacy GitHub operations adapter
  • Retire legacy chat streaming status and error atoms
  • Migrate apps off legacy Supabase API keys

New Features

  • Encrypt MCP server headers and env vars at rest
  • Open a plugin's page after adding it
  • Add edit action to code diff toolbar
  • Use Agent mode for AI merge conflict resolution
  • Add cross-window chat tab transfer

Full Release Notes

Full release notes: https://www.dyad.sh/docs/releases/1.10.0

## What's Changed
* Deflake setup and version lifecycle E2E tests by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4070
* Document state-machine hardening proposals by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4075
* Add comments for safety by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4077
* Harden state-machine types and test tooling by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4076
* Add explicit state-machine capability selectors by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4079
* Add transactional dispatcher with voice-to-text pilot by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4078
* Harden chat stream identity with invocation references by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4080
* Migrate image generation and screenshot controllers to transactional dispatch by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4084
* Add shared scopes and ordered disposal lifecycle by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4082
* Harden app run identity across restarts by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4083
* Recover user-input follow-ups without durable handoff state by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4085
* Polish state machine observability and rules by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4086
* plans: clean-up state machines by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4089
* Enforce state ownership boundaries and add selector bindings by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4090
* Retire S-tier state machine mirrors by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4091
* feat: collect user-supplied setup fields for catalog MCP servers by @RyanGroch in https://github.com/dyad-sh/dyad/pull/4081
* Replace single-machine Jotai projections with snapshot stores by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4092
* Replace cross-machine preview atom edges with facades by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4093
* Add the safe A6b renderer reader seam by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4094
* Retire legacy chat streaming status and error atoms by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4095
* docs: record main-owned state machine architecture by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4096
* Add golden single-window characterization suite by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4097
* Give preview runtime channels explicit owners by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4098
* Define app-run wire codecs and safe remote projection by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4099
* Extract transport-neutral app runtime service by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4101
* Document C2 main registry boundaries and hardening by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4103
* Add multi-window infrastructure and coherence harness by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4102
* Add the local distributed actor kernel by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4100
* Rewire single-window audit paths for multi-window delivery by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4104
* Add contract-driven remote actor transport by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4105
* Add remote distributed machine client and React bindings by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4106
* Move app run authority to main actor by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4108
* Delete legacy renderer app run authority by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4109
* Move GitHub operations to the main actor host by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4116
* Delete legacy GitHub operations adapter by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4117
* Harden main-owned connection registries by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4122
* Move image generation jobs to the main actor host by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4121
* Automatically remove unauthorized GitHub releases by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4124
* Make stopping a stream non-destructive for queued prompts by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4126
* Move chat and plan execution authority to main by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4119
* refactor: delete legacy chat stream adapters by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4120
* Move version preview lifecycle behind main-process actor by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4123
* Pin compaction to gpt-5.6-luna for Pro users; add compaction quality benchmark by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4128
* Add opt-in multi-window app product surface by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4115
* Remove retired state-machine compatibility infrastructure by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4129
* correct state machines plans by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4131
* format plan by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4135
* fix: preserve recovery after interrupted version restore by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4132
* refactor: add state-machine contract and conformance shell by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4133
* Add delete and open-in-editor actions to the Tests panel by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4087
* refactor: centralize pending receipt deduplication by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4136
* Stabilize test teardown and worker scheduling by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4137
* refactor: harden remote intent admission and subscriptions by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4138
* feat: encrypt MCP server headers and env vars at rest by @RyanGroch in https://github.com/dyad-sh/dyad/pull/4130
* Add cross-window chat tab transfer by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4134
* refactor: enforce keyed actor admission fences by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4139
* refactor: add correlated actor request settlement by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4143
* refactor: migrate image generation to authoritative operation settlement by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4144
* fix: resume the chat after the database integration Continue by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4147
* refactor: migrate app run to correlated actor requests by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4145
* Deflake Windows dependency and app navigation E2Es by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4150
* refactor: enforce correct state-machine construction by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4149
* docs: plan remaining distributed-machine migrations by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4152
* refactor: add operation route registry by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4153
* Upgrade GitHub workflows to Claude Opus 5 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4158
* Keep app references available across a chat in agent modes by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4151
* feat: open a plugin's page after adding it by @RyanGroch in https://github.com/dyad-sh/dyad/pull/4160
* fix: stop asking for OAuth once an MCP token works by @RyanGroch in https://github.com/dyad-sh/dyad/pull/4186
* Add edit action to code diff toolbar by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4159
* Use Agent mode for AI merge conflict resolution by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4191
* Compact model context before tool outputs cross limits by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4148
* Make version diff mode easier to exit by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4195
* feat: migrate apps off legacy Supabase API keys by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4173
* Require build provenance for release artifacts by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3966
* Bump to v1.10.0-beta.1 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4196
* Fix draft release asset verification by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4199
* Enable show_full_output for Claude PR review debugging by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4198
* Use GPT-5.6 Luna for MCP consent classification by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4197
* Match release provenance to published assets by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4200
* Deflake app search and Supabase dependency E2Es by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4201
* Remove sub-agent from Claude PR review to fix missing-output flake by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4204
* Fix merge conflict recovery UX by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4202
* Keep apps selectable when Supabase metadata lookup fails by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4206
* Fix cross-platform CI test synchronization by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4205
* Remove prefixes from Dyad-generated messages by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4209
* Bump to v1.10.0 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4210
* Bump to v1.10.0-beta.2 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4212
* Prevent stale windows from wedging app previews by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4213
* Prevent preview wedge when reopening during shutdown by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4215
* Decouple app operations with resource-scoped coordination by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4223
* Fix native macOS quit and Dock reopen lifecycle by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4222
* Bump to v1.10.0-beta.3 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4225
* Handle existing folders during GitHub app imports by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4227
* Make long error messages easier to inspect by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4226
* Bump to v1.10.0 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4238


**Full Changelog**: https://github.com/dyad-sh/dyad/compare/v1.9.0...v1.10.0