v1.17.0

KittenML/KittenTTSv1.17.0Sep 28, 2026by github-actions[bot]

Upgrading?

AI Summary

A feature update introducing Claude Code integration, Opus 5.5 for automated PR reviews, and various subscription and localization improvements.

Key Highlights

  • Experimental Claude Code integration
  • Opus 5.5 for automated PR reviews
  • Turkish localization
  • In-app bug report form
  • Subscription billing error recovery

New Features

  • Experimental Claude Code integration
  • Opus 5.5 for automated PR reviews
  • Turkish localization (i18n)
  • In-app bug report form
  • Subscription billing improvements and error recovery

Full Release Notes

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

## What's Changed
* Fix skipped inline reviews caused by title formatting by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4572
* Codex subscription support by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4483
* Allow free users to build with ChatGPT subscriptions by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4573
* Bump to v1.16.0-beta.1 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4574
* Fix Engine integration tests after custom-provider routing changes by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4576
* Increase PR review diff coverage limits by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4575
* fix: add spacing above AI setup banner by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4568
* Add Pro upgrade CTA to home page by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4567
* feat(i18n): add Turkish localization by @fitzgpt in https://github.com/dyad-sh/dyad/pull/4555
* Prune deleted remote branches when refreshing the branch list by @hdimer in https://github.com/dyad-sh/dyad/pull/4424
* Clarify app control in title bar by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4566
* Remove unused modules and helpers identified by code-quality audit by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4484
* chore: remove unused currentSchemaHash field and dead schemaHash helper by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4523
* chore: remove dead reasoning field and reasoningBufferRef from HelpBotDialog by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4535
* chore: remove dead chat stream protocol constants by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4534
* Remove dead google and dyad variants from SetupProviderCard by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4537
* chore: remove unused makeChatStreamRef test helper by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4529
* chore: remove unused removeRecentViewedChatIdAtom by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4528
* fix(tsc): gate --explainFiles and --incremental flags on the local TypeScript version by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4522
* chore: remove unused visualsReadyChatIds field by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4527
* chore: remove dead app-run dispatch and intent-class scaffolding by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4526
* chore: remove dead PreviewRunState types and projectRunState by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4525
* fix(chat-stream): capture RESUME_QUEUE stop policy before resync by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4521
* Fix(run_tests): allow grep patterns containing % and newlines on Windows by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4512
* chore: remove unused OnboardingBanner component by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4578
* chore: remove dead react-markdown Components augmentation by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4577
* chore: remove dead hasScrolledToBottom ref and prevContainerHeight tracking in Console by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4579
* fix(github_ops): clear stale rebase banner when a clean rebase finishes by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4501
* fix(chat): preserve blank lines inside code fences when copying a message by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4506
* Invalidate app folder preview cache after app lifecycle changes by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4496
* fix(pty): strip oversized OSC sequences in full instead of leaking payload by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4502
* fix(catalog): Preserve remote language model catalog across transient refresh failures by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4510
* chore: remove plans/catalog-data.ts reference catalog sketch by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4524
* Reject binary files in local agent read_file regardless of requested range by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4520
* feat: add an in-app bug report form by @RyanGroch in https://github.com/dyad-sh/dyad/pull/4428
* docs: add Turkish locale to i18n rule locale list by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4581
* Prevent long Thought previews from overflowing the chat panel by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4590
* Add Fast mode for ChatGPT subscription requests by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4585
* Simplify ChatGPT subscription setup and cancellation by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4589
* Show submitted chat messages immediately during subscription checks by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4591
* Fix Vercel project creation and keep its SDK updated by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4595
* Make Build, Ask, and Plan ChatGPT usage free of Dyad credits by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4596
* Fix main CI test synchronization and firewall fixture drift by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4597
* feat: isolate E2E test execution in sandboxes by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4436
* Offer actionable recovery for subscription billing errors by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4603
* Instruct agents to run test specs sequentially by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4605
* Revert sandboxed E2E test execution (#4436) by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4609
* Fix PR publishing with staged deletions and renames by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4610
* Bump to v1.16.0 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4612
* Add the app-builder benchmark (headless Dyad app builds, scoring, and results) by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4614
* Add run-benchmark skill for the app-builder benchmark by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4613
* feat(bug-report): let the reporter navigate before taking the screenshot by @RyanGroch in https://github.com/dyad-sh/dyad/pull/4587
* feat(agent): suggest a catalog plugin at the moment the agent needs it by @RyanGroch in https://github.com/dyad-sh/dyad/pull/4602
* Fix duplicate compaction summaries after chat reload by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4630
* Label and reposition chat annotation button by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4634
* feat(i18n): add Turkish translations for the bug report form by @fitzgpt in https://github.com/dyad-sh/dyad/pull/4633
* docs(triage): replace removed Upload Chat Session menu with Report a Bug by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4583
* docs: replace removed "Manage app" label in triage prompts by @detail-app[bot] in https://github.com/dyad-sh/dyad/pull/4582
* Make streaming chat follow-to-bottom reliable by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4615
* Isolate database data and auth users for each test case by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4629
* Experimental Claude Code integration by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4485
* Use Claude Opus 5.5 for automated PR reviews by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4653
* Fix Claude PR review action for Opus 5.5 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4654
* Promote a verified previous beta to stable by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4652
* Run multiple test specs in one batch with per-case isolation by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4618
* feat(cloudflare): deploy Cloudflare Workers from the Publish panel by @RyanGroch in https://github.com/dyad-sh/dyad/pull/4635
* Reland sandboxed E2E execution with batched per-case isolation by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4656
* Use remote Codex client version for subscription models by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4650
* Bump @vercel/sdk from 1.28.33 to 1.28.35 by @dependabot[bot] in https://github.com/dyad-sh/dyad/pull/4645
* Upgrade sandbox to MustardScript 0.3.0 and refresh tool guidance by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4626
* Use GPT-6 Luna for shared small-model tasks by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4651
* feat(publish): start on the tab the app is deployed to by @RyanGroch in https://github.com/dyad-sh/dyad/pull/4657
* Track subscription enablement on app load by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4660
* Show self-serve ChatGPT Business plans as Business by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4662
* Authenticate OAuth deep-link callbacks by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4433
* Show actionable Claude Code CLI errors in chat by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4665
* Stabilize file mention E2E selection by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/4664
* Bump to v1.17.0-beta.1 by @RyanGroch in https://github.com/dyad-sh/dyad/pull/4666
* Retry transient network failures during test database cleanup by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4676
* Simplify test database isolation messages by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/4678
* test: give the initial GitHub push wait a 30s timeout by @RyanGroch in https://github.com/dyad-sh/dyad/pull/4669
* Fix Supabase per-test isolation timeouts: skip views, batch cleanup, raise hook budget by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4689
* Stop an unresponsive MCP server from freezing every agent chat by @wwwillchen in https://github.com/dyad-sh/dyad/pull/4688
* Bump to v1.17.0 by @RyanGroch in https://github.com/dyad-sh/dyad/pull/4691

## New Contributors
* @fitzgpt made their first contribution in https://github.com/dyad-sh/dyad/pull/4555
* @hdimer made their first contribution in https://github.com/dyad-sh/dyad/pull/4424
* @detail-app[bot] made their first contribution in https://github.com/dyad-sh/dyad/pull/4523
* @dependabot[bot] made their first contribution in https://github.com/dyad-sh/dyad/pull/4645

**Full Changelog**: https://github.com/dyad-sh/dyad/compare/v1.15.0...v1.17.0

Related Repositories