# 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]_