v1.9.0

moonshine-ai/moonshinev1.9.0Jul 27, 2026by github-actions[bot]

AI Summary

This release focuses on stabilizing internal state management and TypeScript infrastructure. It introduces a shared state machine micro-kernel for chat streams, removes deprecated skills, and upgrades to TypeScript 6 while maintaining backward compatibility.

Key Highlights

  • Introduction of a shared state machine micro-kernel for lifecycle management
  • Upgrade to TypeScript 6 with graceful fallback support
  • Removal of deprecated skills (fast-push and dyad:lint)
  • New curated MCP server catalog with stdio support
  • Enhanced chat history recall tools for Pro users

New Features

  • Curated MCP server catalog on the plugins page
  • stdio support for the MCP plugin catalog
  • Restore-to-message arrow on user messages
  • Run_tests agent tool with iterative fix loop
  • Local-agent chat history recall tools

Full Release Notes

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

## What's Changed
* Remove automatic Build-mode problem fixing by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3983
* Use local TypeScript CLI for checks by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3984
* Remove fast-push skill by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3986
* Add graceful TypeScript 6 fallback for Code Explorer & upgrade Dyad to use TS v6 internally by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3985
* Bump to v1.9.0-beta.1 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3987
* Clarify incomplete TypeScript check results by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3989
* Clarify incomplete TypeScript check results by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3990
* Remove the dyad:lint skill by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3991
* Stabilize unit and E2E test suites by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3992
* Fix require.resolve caching issue | fix type checks after rebuilding TypeScript by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3994
* Run Supabase dependency analysis safely with TypeScript 7 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3995
* Bump to v1.9.0-beta.2 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3996
* Fix Supabase dependency analysis test coverage by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3997
* feat: add a curated MCP server catalog to the plugins page by @RyanGroch in https://github.com/dyad-sh/dyad/pull/3961
* Add restore-to-message arrow on user messages by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/3596
* Add run_tests agent tool with iterative fix loop by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/3866
* Use provider defaults for unspecified model temperature by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4000
* Remove experimental badge from Neon by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3960
* Resolve TypeScript CLI from package metadata by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3988
* Pin Claude actions and upgrade workflows to Opus 4.8 by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3965
* Redesign settings page with a flat, modern layout by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/3949
* Replace Version History preview orchestration with an explicit state machine by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3967
* Stabilize rebuild E2E and provider-default snapshots by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4001
* Make plan handoff deterministic and lifecycle-safe by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3968
* Make version preview state app-scoped and authoritative by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4005
* Default typed plan acceptance to the current chat by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4006
* Add local-agent chat history recall tools by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3948
* Add chat-history recall benchmark eval by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4007
* Centralize per-app run state with generation-safe transitions by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3969
* Introduce flowId-correlated connection state machine for GitHub/Supabase/Neon OAuth by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3970
* Format chat_history.eval.ts to fix fmt:check on main by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4011
* Introduce chat stream lifecycle state machine by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4008
* Add explore_chat_history sub-agent for historical recall (Pro) by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4009
* Introduce shared state machine micro-kernel by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4014
* Harden concurrent workflows and machine boundaries by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4015
* Machines detailed plan by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4017
* Adopt shared state-machine lifecycle in chat streams by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4019
* Fix Claude PR review artifact generation by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4018
* Own chat stream lifecycle with a constructed manager by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4021
* Confirm before Undo or Retry reverts extra commits by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4020
* Centralize state-machine manager lifecycle by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4024
* Reject stale chat stream events by generation by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4023
* Route merge conflict resolution through chat stream machine by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4025
* Add shared state machine trace observer by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4026
* Add interleaving co-simulation driver to state machine kernel by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4027
* Model voice-to-text lifecycle with injectable time and IDs by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4029
* Replace chat stream edge detectors with completion signals by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4028
* Add user-input round-trip machine and port tool consents onto it by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4033
* feat: add stdio support to the MCP plugin catalog by @RyanGroch in https://github.com/dyad-sh/dyad/pull/4012
* Model image generation lifecycle in the renderer by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4032
* Move user-app end-to-end tests to e2e-tests/ with a migration offer by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4035
* Add chat stream protocol spec, main-process model, and co-simulation suite by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4031
* Prevent orphaned files after image generation cancellation by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4030
* Project user-input requests into the renderer with reload rehydration by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4037
* Machines plan progress by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4042
* Remove automatic BugBot review trigger by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4043
* Bump to v1.9.0-beta.3 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4044
* Replace pr-fix:actions with artifact-first pr-fix:ci by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4049
* Fix nightly runner reboot workflow by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4051
* Make Retry safe when newer commits exist by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4050
* Deactivate component picker after chat submission by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4053
* Prevent orphaned chat-history tool cards by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4052
* Fix Windows CI path and command portability by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4054
* Bump to v1.9.0 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4056
* Route Linux dev deep links back into the running instance by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4041
* Add MCP OAuth loopback state machine by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4036
* Add rationale doc for the state machine migration by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4038
* Carry git error codes across IPC and serialize mutations per app by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4046
* Prevent duplicate visual editing saves by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4013
* Port questionnaire and integration continuation onto the user-input machine and retire the legacy channels by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4047
* Refactor first-prompt setup into a reliable saga by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4040
* Own preview iframe identity, navigation, and picker lifecycle in a state machine by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4048
* Centralize shared state-machine lifecycle infrastructure by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4045
* Model GitHub repository operations with a per-app state machine by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4059
* Close the compaction and tab-hydration concurrency chores by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4060
* Model the preview screenshot pipeline as a per-app state machine by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4058
* Default new chats to Agent mode by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4057
* Revert "Bump to v1.9.0" by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4064
* Make dependency installs constraint-aware by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4063
* Let Local Agent restart and rebuild apps directly by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4062
* Project GithubBranchManager from the github_ops machine by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4061
* Fix cross-platform CI test races by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4067
* Bump to v1.9.0 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4072


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