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