# Mealie v3.20.0
- Product: Mealie (https://whatsnew.fyi/product/mealie)
- Vendor: Mealie
- Date: 2026-06-24
- Version: v3.20.0
- Original notes: https://github.com/mealie-recipes/mealie/releases/tag/v3.20.0
- Permalink: https://whatsnew.fyi/product/mealie/releases/v3.20.0
What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog.
Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'.
---
- **added** — Enhanced PR Lint/Validation
- **added** — Warn when deleting foods used in recipes
- **added** — Added version info to backup file
- **fixed** — Add missing dependencies in package.json
- **fixed** — Support CSV/TXT upload and add validation for Plan to Eat import
- **security** — Harden recipe content against stored XSS (chips, instructions, asset media)
- **fixed** — Default ingredient_references on RecipeInstruction init
- **fixed** — Upgrade pytest-asyncio
- **fixed** — Refactor cookie settings for Home Assistant i-frame login
- **fixed** — Send default_headers with curl_cffi impersonation (fixes 403 on WAF sites)
- **removed** — Drop unused python dependencies aniso8601 and appdirs
- **security** — Update vitest to v4 for security fixes
- **security** — Update dompurify to v3.4.11 for security fixes
#### 🍴🍴🍴🍴🍴🍴
This release contains several fixes and security updates, including a fix for the recipe parser which should hopefully make it more consistent on some less-trusted networks.
##### ✨ New features
- feat: Enhanced PR Lint/Validation @Choromanski (#7329)
- feat: warn when deleting foods used in recipes @ZacharySchaffter (#7117)
- feat: Added version info to backup file @Choromanski (#7416)
##### 🐛 Bug fixes
- fix: add missing dependencies in package.json @p0lycarpio (#7709)
- fix: support CSV/TXT upload and add validation for Plan to Eat import (#6360) @hay-kot (#7622)
- fix: harden recipe content against stored XSS (chips, instructions, asset media) @hay-kot (#7719)
- fix: default ingredient_references on RecipeInstruction init @alexander-wenzel-dev (#7732)
- fix: Upgrade pytest-asyncio @michael-genson (#7746)
- fix: refactor cookie settings for Home Assistant i-frame login @cheebreezee (#7741)
- fix: Various lint issues @michael-genson (#7766)
- fix: send default_headers with curl_cffi impersonation (fixes 403 on WAF sites) @xenoputtss (#7792)
##### 🧰 Maintenance
11 changes
- chore(l10n): Crowdin locale sync @[mealie-actions[bot]](https://github.com/apps/mealie-actions) (#7713)
- chore: add 5-day dependency cooling period for supply-chain hardening @hay-kot (#7718)
- chore: drop unused python dependencies aniso8601 and appdirs @hay-kot (#7717)
- chore(l10n): Crowdin locale sync @[mealie-actions[bot]](https://github.com/apps/mealie-actions) (#7734)
- chore(l10n): New Crowdin updates @hay-kot (#7747)
- chore(l10n): New Crowdin updates @hay-kot (#7749)
- chore(l10n): Crowdin locale sync @[mealie-actions[bot]](https://github.com/apps/mealie-actions) (#7757)
- chore(l10n): New Crowdin updates @hay-kot (#7756)
- chore(l10n): Crowdin locale sync @[mealie-actions[bot]](https://github.com/apps/mealie-actions) (#7784)
- chore(l10n): New Crowdin updates @hay-kot (#7765)
- chore(l10n): New Crowdin updates @hay-kot (#7791)
##### 📚 Documentation
- docs: fix broken link to backend configuration in AI providers page @BuildmodeOne (#7793)
##### 🔨 Internal development
- dev: Improve support for front end unit tests @miah120 (#7163)
##### ⬆️ Dependency updates
30 changes
- chore(deps): update dependency pytest-asyncio to v1.4.0 @[renovate[bot]](https://github.com/apps/renovate) (#7694)
- chore(deps): update dependency vitest to v4 [security] @[renovate[bot]](https://github.com/apps/renovate) (#7723)
- chore(deps): lock file maintenance @[renovate[bot]](https://github.com/apps/renovate) (#7742)
- fix(deps): update dependency python-multipart to v0.0.32 @[renovate[bot]](https://github.com/apps/renovate) (#7729)
- fix(deps): update dependency apprise to v1.11.0 @[renovate[bot]](https://github.com/apps/renovate) (#7728)
- fix(deps): update dependency uvicorn to v0.49.0 @[renovate[bot]](https://github.com/apps/renovate) (#7744)
- chore(deps): update dependency ruff to v0.15.16 @[renovate[bot]](https://github.com/apps/renovate) (#7726)
- fix(deps): update dependency openai to v2.41.0 @[renovate[bot]](https://github.com/apps/renovate) (#7733)
- chore(deps): update node.js to 9c1d881 @[renovate[bot]](https://github.com/apps/renovate) (#7748)
- chore(deps): update node.js to 40ad9f3 @[renovate[bot]](https://github.com/apps/renovate) (#7752)
- fix(deps): update dependency beautifulsoup4 to v4.15.0 @[renovate[bot]](https://github.com/apps/renovate) (#7753)
- chore(deps): lock file maintenance @[renovate[bot]](https://github.com/apps/renovate) (#7759)
- fix(deps): update dependency yt-dlp to v2026.6.9 @[renovate[bot]](https://github.com/apps/renovate) (#7758)
- fix(deps): update dependency openai to v2.41.1 @[renovate[bot]](https://github.com/apps/renovate) (#7761)
- fix(deps): update dependency pillow-heif to v1.4.0 @[renovate[bot]](https://github.com/apps/renovate) (#7762)
- chore(deps)
_[Truncated at 4000 characters — full notes: https://github.com/mealie-recipes/mealie/releases/tag/v3.20.0]_