v1.7.0

immich-app/immichv1.7.0Jul 13, 2026by github-actions[bot]

AI Summary

This release focuses on extensive memory optimization across the application, specifically targeting chat attachments, voice-to-text, and preview processes to prevent OOMs. It includes significant architectural refactoring of Electron utility processes and TSC workers, alongside improvements to E2E testing and local agent performance.

Key Highlights

  • Major memory management improvements including bounds for chat attachments, voice-to-text recording, and preview console usage to prevent OOMs.
  • Architectural shift to serialize TypeScript utility processes and consolidate code explorer sessions.
  • Enhanced E2E testing coverage with AI-generated tests and restored MCP transport coverage.
  • Performance improvements for local agent file listing and reduced Supabase function bundle concurrency.
  • New feature: OpenRouter app attribution added.

New Features

  • AI-generated E2E testing feature
  • OpenRouter app attribution
  • Process-level memory diagnostics in session debug export

Full Release Notes

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

## What's Changed
* improve bump version script by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3853
* Fix safeStorage E2E keychain account names by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3856
* Add AI-generated E2E testing feature by @azizmejri1 in https://github.com/dyad-sh/dyad/pull/3681
* Add process-level memory diagnostics to session debug export by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3860
* Fix PreviewPanel Jotai test mock by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3865
* Run TSC worker in a utilityProcess instead of a worker thread by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3861
* Consolidate code explorer sessions into one byte-budgeted utility process by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3862
* Skip renderer problems auto-refresh for local-agent turns by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3864
* Add OpenRouter app attribution by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3867
* Add electron-workers rule: shared V8 cage, utilityProcess checklist, memory measurement by @keppo-bot[bot] in https://github.com/dyad-sh/dyad/pull/3868
* Improve local agent file listing performance by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3888
* fix: bound chat attachment memory usage by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3872
* Bound voice-to-text recording memory by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3879
* Bound preview console memory usage by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3875
* Bound child-process output memory and timeouts by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3876
* Reduce Supabase function bundle concurrency by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3891
* Prevent OOMs from large file reads by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3884
* Keep aiMessagesJson out of renderer IPC by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3889
* Stream upgrade backup checksums by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3890
* Fix Node.js external dependency detection by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3892
* Bump to v1.7.0-beta.1 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3893
* Prevent duplicate MCP clients and clean up transports by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3883
* Serialize TypeScript utility processes by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3895
* Restore MCP transport E2E coverage by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3898
* Bump to v1.7.0 by @wwwillchen in https://github.com/dyad-sh/dyad/pull/3917


**Full Changelog**: https://github.com/dyad-sh/dyad/compare/v1.6.2...v1.7.0