Releases: mealie-recipes/mealie
v3.8.0
🍴🍴🍴🍴🍴🍴
🎉 Highlights
Security Fixes
#6743 fixes two security issues
- A security issue which allows users to access arbitrary system files
- Updates SafeMarkdown to be more aggressive with which HTML attributes we allow
Both security issues required access to Mealie in order to exploit them.
✨ New features
- feat: Optionally include URL when importing via HTML/JSON @michael-genson (#6709)
🐛 Bug fixes
- fix: Disable submit on enter when editing timeline events @michael-genson (#6707)
- fix: Improved bulk deletion by reducing refreshs @davidschinkel (#6634)
- fix: Put tooltips behind app bar @michael-genson (#6711)
- fix: More lenient postgres override parsing @michael-genson (#6712)
- fix: localize text validators message @p0lycarpio (#6719)
- fix: Security Patches @michael-genson (#6743)
🧰 Maintenance
10 changes
- chore(l10n): New Crowdin updates @hay-kot (#6706)
- chore: Miscellaneous cleanup @michael-genson (#6708)
- chore(l10n): New Crowdin updates @hay-kot (#6710)
- chore(l10n): Crowdin locale sync @github-actions (#6716)
- chore(l10n): New Crowdin updates @hay-kot (#6722)
- chore(l10n): New Crowdin updates @hay-kot (#6725)
- chore(auto): Update pre-commit hooks @github-actions (#6724)
- chore(l10n): New Crowdin updates @hay-kot (#6729)
- chore(l10n): New Crowdin updates @hay-kot (#6733)
- chore(l10n): New Crowdin updates @hay-kot (#6736)
⬆️ Dependency updates
8 changes
- fix(deps): update dependency fastapi to v0.124.4 @renovate (#6702)
- fix(deps): update dependency authlib to v1.6.6 @renovate (#6700)
- fix(deps): update dependency tzdata to v2025.3 @renovate (#6713)
- chore(deps): update dependency mypy to v1.19.1 @renovate (#6723)
- chore(deps): update dependency pre-commit to v4.5.1 @renovate (#6734)
- fix(deps): update dependency fastapi to v0.125.0 @renovate (#6740)
- chore(deps): update dependency ruff to v0.14.10 @renovate (#6742)
- fix(deps): update dependency openai to v2.13.0 @renovate (#6726)
🍴🍴🍴🍴🍴🍴
v3.7.0
🍴🍴🍴🍴🍴🍴
The newest version of Mealie includes several new features and quality of life improvements. We've also got five first-time contributors in this release!
ℹ️ IMPORTANT NOTICE
Included in this release we updated our image processing algorithm to improve image quality and compression (thanks @1-tempest!). This improves all new images added to Mealie moving forward. If you'd like to reprocess your existing images, we've included a user script:
docker exec -it mealie bash
python /opt/mealie/lib64/python3.12/site-packages/mealie/scripts/reprocess_images.pyMore information in the docs, including some configuration options to speed things up if you have stronger hardware. This process could take several minutes depending on how many recipes you have (and your hardware).
🎉 Highlights
- Updated image processing algorithm improving image quality and compression
- You can now choose a snack, drink, and dessert in your meal planner
✨ New features
- feat: Put calendar directly in the date picker dialogs @noxhirsch (#6110)
- feat: Add snack, drink, and dessert @cashpw (#6149)
- feat: frontend autocomplete is diacritics/ligatures insensitive @Noneangel (#6169)
- feat: Improve Image Minification Logic and Efficiency @1-tempest (#5883)
- feat: Reprocess image user script @michael-genson (#6704)
- feat: Improve startup workflow UI @miah120 (#6342)
- feat: autofill default credentials on first login @hay-kot (#6666)
- feat: Add user QueryFilter and improve UI on mobile @p0lycarpio (#6235)
- feat: Suggest HTML importer on URL importer failure @michael-genson (#6685)
🐛 Bug fixes
- fix: change log rotation size from 10kb to 10mb @hay-kot (#6648)
- fix: clear cached store data on logout to prevent user data leakage @hay-kot (#6665)
- fix: improve password manager autofill compatibility on login page @henricook (#6662)
- fix: Reprocess script UUID handling for postgres @michael-genson (#6705)
🧰 Maintenance
14 changes
- chore(l10n): New Crowdin updates @hay-kot (#6649)
- chore(l10n): New Crowdin updates @hay-kot (#6653)
- chore(l10n): New Crowdin updates @hay-kot (#6661)
- chore(l10n): New Crowdin updates @hay-kot (#6671)
- chore(l10n): Crowdin locale sync @github-actions (#6672)
- chore(l10n): New Crowdin updates @hay-kot (#6675)
- chore(auto): Update pre-commit hooks @github-actions (#6680)
- chore(l10n): New Crowdin updates @hay-kot (#6678)
- chore(l10n): New Crowdin updates @hay-kot (#6686)
- chore(l10n): New Crowdin updates @hay-kot (#6689)
- chore(l10n): New Crowdin updates @hay-kot (#6693)
- chore(l10n): New Crowdin updates @hay-kot (#6694)
- chore(l10n): New Crowdin updates @hay-kot (#6697)
- chore(l10n): New Crowdin updates @hay-kot (#6701)
📚 Documentation
- docs: add theming examples to backend configuration guide @n-winspear (#6443)
🔨 Internal development
- dev: Add
copilot-instructions.md@michael-genson (#6659)
⬆️ Dependency updates
17 changes
- chore(deps): update dependency ruff to v0.14.8 @renovate (#6655)
- fix(deps): update dependency fastapi to v0.123.8 @renovate (#6640)
- fix(deps): update dependency openai to v2.9.0 @renovate (#6656)
- fix(deps): update dependency fastapi to v0.123.9 @renovate (#6657)
- fix(deps): update dependency fastapi to v0.123.10 @renovate (#6660)
- fix(deps): update dependency fastapi to v0.124.0 @renovate (#6664)
- fix(deps): update dependency orjson to v3.11.5 @renovate (#6667)
- chore(deps): update dependency pytest to v9.0.2 @renovate (#6670)
- fix(deps): update dependency apprise to v1.9.6 @renovate (#6677)
- chore(deps): update dependency coverage to v7.13.0 @renovate (#6683)
- chore(deps): update node.js to 9a2ed90 @renovate (#6684)
- fix(deps): update dependency sqlalchemy to v2.0.45 @renovate (#6687)
- fix(deps): update dependency recipe-scrapers to v15.11.0 @renovate (#6691)
- fix(deps): update dependency fastapi to v0.124.2 @renovate (#6688)
- fix(deps): update dependency openai to v2.11.0 @renovate (#6696)
- chore(deps): update dependency ruff to v0.14.9 @renovate (#6699)
- chore(deps): update node.js to 20988bc @renovate (#6698)
🙏 New Contributors
- @cashpw made their first contribution in #6149
- @Noneangel made their first contribution in #6169
- @1-tempest made their first contribution in #5883
- @n-winspear made their first contribution in #6443
- @henricook made their first contribution in #6662
🍴🍴🍴🍴🍴🍴
v3.6.1
🍴🍴🍴🍴🍴🍴
Minor bug fixes to remove some unnecessary backend polling. This release also tests a new workflow which will hopefully update the version in time for the release build.
🐛 Bug fixes
- fix: Remove Auth Refresh @michael-genson (#6646)
- fix: Bump version before building release @michael-genson (#6647)
🧰 Maintenance
🍴🍴🍴🍴🍴🍴
v3.6.0
🍴🍴🍴🍴🍴🍴
This version of Mealie comes with a bunch of fixes and stability improvements. Some users have been experiencing issues with session times (i.e. getting logged out too quickly), particularly on Safari/iOS, and those should be resolved now.
✨ New features
- feat: Remove backend cookie and use frontend for auth @michael-genson (#6601)
🐛 Bug fixes
- fix: Favorites page fails to load when sorted by random @ithabi (#6517)
- fix: Can't edit extra long category name depending on resolution @ithabi (#6536)
- fix: Set maxAge on frontend auth cookie @michael-genson (#6576)
- fix: Tool management bug #6447 - correct mismatch between event fired vs event handler @simon-lam (#6590)
- fix: PWA follows OS screen rotation/lock settings @cordlord (#6573)
- fix: recipe recursion false positive @parumpum (#6591)
- fix: Asset type selector dropdown #6413; asset entry layout; asset download content disposition @simon-lam (#6595)
- fix: Enabled newlines in timeline comment @davidschinkel (#6620)
🧰 Maintenance
23 changes
- chore(l10n): New Crowdin updates @hay-kot (#6513)
- chore(l10n): New Crowdin updates @hay-kot (#6547)
- chore(l10n): New Crowdin updates @hay-kot (#6548)
- chore(l10n): New Crowdin updates @hay-kot (#6552)
- chore(l10n): New Crowdin updates @hay-kot (#6554)
- chore(l10n): New Crowdin updates @hay-kot (#6557)
- chore(l10n): New Crowdin updates @hay-kot (#6559)
- chore(l10n): Crowdin locale sync @github-actions (#6553)
- chore(l10n): New Crowdin updates @hay-kot (#6561)
- chore(l10n): New Crowdin updates @hay-kot (#6563)
- chore: lint @michael-genson (#6582)
- chore(l10n): New Crowdin updates @hay-kot (#6565)
- chore(l10n): Crowdin locale sync @github-actions (#6589)
- chore(auto): Update pre-commit hooks @github-actions (#6558)
- chore: Update Renovate config to pin versions in pyproject.toml @michael-genson (#6603)
- chore(l10n): New Crowdin updates @hay-kot (#6594)
- chore: Fail frontend lint if there are warnings @michael-genson (#6619)
- chore(l10n): New Crowdin updates @hay-kot (#6624)
- chore(l10n): Crowdin locale sync @github-actions (#6625)
- chore(l10n): New Crowdin updates @hay-kot (#6628)
- chore(l10n): New Crowdin updates @hay-kot (#6631)
- chore(l10n): New Crowdin updates @hay-kot (#6637)
- chore(auto): Update pre-commit hooks @github-actions (#6632)
📚 Documentation
- docs(auto): Update image tag, for release v3.5.0 @github-actions (#6542)
🔨 Internal development
⬆️ Dependency updates
18 changes
- chore(deps): update node.js to aa648b3 @renovate (#6568)
- fix(deps): pin dependencies @renovate (#6604)
- fix(deps): update dependency recipe-scrapers to v15.10.0 @renovate (#6618)
- chore(deps): update dependency ruff to v0.14.7 @renovate (#6606)
- chore(deps): update dependency types-python-dateutil to v2.9.0.20251115 @renovate (#6607)
- chore(deps): update dependency pylint to v4.0.3 @renovate (#6605)
- fix(deps): update dependency alembic to v1.17.2 @renovate (#6608)
- fix(deps): update dependency rapidfuzz to v3.14.3 @renovate (#6610)
- chore(deps): update dependency coverage to v7.12.0 @renovate (#6611)
- chore(deps): update dependency mkdocs-material to v9.7.0 @renovate (#6612)
- chore(deps): update dependency mypy to v1.19.0 @renovate (#6613)
- chore(deps): update dependency pre-commit to v4.5.0 @renovate (#6614)
- fix(deps): update dependency fastapi to v0.122.0 @renovate (#6615)
- fix(deps): update dependency openai to v2.8.1 @renovate (#6616)
- fix(deps): update dependency pydantic-settings to v2.12.0 @renovate (#6617)
- fix: Bump Pydantic to v2.12.5 @michael-genson (#6622)
- chore(deps): update dependency pylint to v4.0.4 @renovate (#6626)
- fix(deps): update dependency fastapi to v0.123.0 @renovate (#6627)
- fix(deps): update dependency beautifulsoup4 to v4.14.3 @renovate (#6629)
- fix(deps): update dependency fastapi to v0.123.1 @renovate (#6638)
🙏 New Contributors
- @ithabi made their first contribution in #6536
- @simon-lam made their first contribution in #6590
- @cordlord made their first contribution in #6573
- @davidschinkel made their first contribution in #6620
🍴🍴🍴🍴🍴🍴
v3.5.0
🍴🍴🍴🍴🍴🍴
Welcome to the latest release of Mealie! This release contains a minor breaking change; the flow for downloading a recipe .zip has been simplified and no longer requires a zip token. If you are leveraging the .zip API, you'll want to update your scripts.
🎉 Highlights
- You can now add recipes as an ingredient for other recipes. Got a great teriyaki sauce recipe to go with your hibachi fried rice? You can add it as an ingredient now.
🚨 Breaking changes
- fix: Refactor Recipe Zip File Flow @michael-genson (#6170)
✨ New features
- feat: Add
DELETE /{slug}/image@chollinger93 (#6259) - feat: Add recipe as ingredient @parumpum (#4800)
🐛 Bug fixes
- fix: Locale dates format @p0lycarpio (#6211)
- fix: Update the random button flow @aliyyanWijaya (#6248)
- fix: Include contents of purpose field when parsing ingredients @strangetom (#6494)
- fix: Refactor Recipe Zip File Flow @michael-genson (#6170)
- fix: Stabilize shopping list queuing @michael-genson (#6498)
- fix: Brute parser fails if unit or food is empty @michael-genson (#6500)
- fix: Make Ingredients and Instructions independently scrollable in cook mode @AurelienPautet (#6358)
- fix: Improve recipe ingredient selection @p0lycarpio (#6518)
- fix: prevent URL encoding in postgres placeholder display @LaurianeH-05 (#6438)
🧰 Maintenance
14 changes
- chore(l10n): New Crowdin updates @hay-kot (#6469)
- chore(l10n): New Crowdin updates @hay-kot (#6478)
- chore(l10n): Crowdin locale sync @github-actions (#6485)
- chore(l10n): New Crowdin updates @hay-kot (#6486)
- chore(l10n): New Crowdin updates @hay-kot (#6487)
- chore: Update some frontend deps @michael-genson (#6490)
- chore(l10n): New Crowdin updates @hay-kot (#6492)
- chore(auto): Update pre-commit hooks @github-actions (#6493)
- chore(l10n): New Crowdin updates @hay-kot (#6495)
- chore(l10n): New Crowdin updates @hay-kot (#6502)
- chore(l10n): New Crowdin updates @hay-kot (#6506)
- chore(l10n): New Crowdin updates @hay-kot (#6508)
- chore(l10n): Crowdin locale sync @github-actions (#6524)
- chore(auto): Update pre-commit hooks @github-actions (#6528)
📚 Documentation
- docs(auto): Update image tag, for release v3.4.0 @github-actions (#6471)
🔨 Internal development
- dev: Migrate to uv @michael-genson (#6470)
⬆️ Dependency updates
6 changes
- fix(deps): update dependency tzdata to v2025 @renovate (#6481)
- chore(deps): update dependency types-python-slugify to v8 @renovate (#6480)
- chore(deps): update node.js to 55b6bbe @renovate (#6503)
- chore(deps): update node.js to e5bbac0 @renovate (#6507)
- chore(deps): update dependency pytest to v9 @renovate (#6525)
- chore(deps): update node.js to 7f80506 @renovate (#6539)
🙏 New Contributors
- @aliyyanWijaya made their first contribution in #6248
- @strangetom made their first contribution in #6494
- @chollinger93 made their first contribution in #6259
- @LaurianeH-05 made their first contribution in #6438
🍴🍴🍴🍴🍴🍴
v3.4.0
🍴🍴🍴🍴🍴🍴
This release contains mostly bug fixes, though we fit in a few features for you too!
🎉 Highlights
You can now set the default activity per-device (thanks @miah120!). Upon logging-in (or opening the PWA). You can choose to navigate to:
- Your recipes (like before)
- Your shopping lists
- The meal planner
This can be configured in your profile. By default, your default activity will be the recipes page (just like how it used to be before this update).
✨ New features
- feat: Add new migration for DVO Cook'n @keyofdminer (#5085)
- feat: Support User-Level Default Activities @miah120 (#5125)
- feat: Improve shopping list label sections @miah120 (#6345)
🐛 Bug fixes
- fix: Change 'Units' to 'Unit' in shopping list item editor @ritoban23 (#6372)
- fix: Check
x-forwarded-protoheader when determining auth cookie samesite attribute @michael-genson (#6383) - fix: Upgrade Pydantic and remove manual Postgres URL parsing @michael-genson (#6385)
- fix: Use
crossorigin: "use-credentials"with PWA manifest @michael-genson (#6430) - fix: dash slug names @fernandom06 (#5709)
- fix: Make docs:gen consistent regardless of timestamp (again) @michael-genson (#6432)
- fix: Changed sorting icons @RichardVanLeeuwen (#6354)
- fix: Heart and Ranking Stars overlap each other @AurelienPautet (#6359)
- fix: Food seed only works for American English (#6204) @flomero (#6436)
🧰 Maintenance
25 changes
- chore(l10n): New Crowdin updates @hay-kot (#6347)
- chore(l10n): New Crowdin updates @hay-kot (#6353)
- chore(l10n): New Crowdin updates @hay-kot (#6357)
- chore(l10n): Crowdin locale sync @github-actions (#6364)
- chore(l10n): New Crowdin updates @hay-kot (#6367)
- chore(l10n): New Crowdin updates @hay-kot (#6371)
- chore(l10n): New Crowdin updates @hay-kot (#6376)
- chore(l10n): New Crowdin updates @hay-kot (#6381)
- chore(auto): Update pre-commit hooks @github-actions (#6370)
- chore(l10n): New Crowdin updates @hay-kot (#6384)
- chore(l10n): New Crowdin updates @hay-kot (#6388)
- chore(l10n): New Crowdin updates @hay-kot (#6395)
- chore(auto): Update pre-commit hooks @github-actions (#6407)
- chore(l10n): New Crowdin updates @hay-kot (#6396)
- chore(l10n): New Crowdin updates @hay-kot (#6434)
- chore(l10n): New Crowdin updates @hay-kot (#6435)
- chore(l10n): New Crowdin updates @hay-kot (#6439)
- chore(l10n): Crowdin locale sync @github-actions (#6440)
- chore(l10n): New Crowdin updates @hay-kot (#6441)
- chore(l10n): New Crowdin updates @hay-kot (#6444)
- chore(l10n): New Crowdin updates @hay-kot (#6446)
- chore(l10n): New Crowdin updates @hay-kot (#6455)
- chore(auto): Update pre-commit hooks @github-actions (#6445)
- chore(l10n): New Crowdin updates @hay-kot (#6462)
- chore(l10n): New Crowdin updates @hay-kot (#6464)
📚 Documentation
- docs(auto): Update image tag, for release v3.3.2 @github-actions (#6346)
⬆️ Dependency updates
36 changes
- chore(deps): update dependency openai to v2.3.0 @renovate (#6330)
- chore(deps): update dependency pydantic to v2.12.0 @renovate (#6310)
- chore(deps): update dependency fastapi to v0.118.3 @renovate (#6336)
- chore(deps): update dependency rich to v14.2.0 @renovate (#6341)
- fix(deps): update dependency aiofiles to v25 @renovate (#6344)
- chore(deps): update dependency psycopg2-binary to v2.9.11 @renovate (#6351)
- chore(deps): update dependency sqlalchemy to v2.0.44 @renovate (#6352)
- chore(deps): update dependency python-ldap to v3.4.5 [security] @renovate (#6356)
- chore(deps): update dependency alembic to v1.17.0 @renovate (#6361)
- fix(deps): update dependency fastapi to ^0.119.0 @renovate (#6362)
- chore(deps): update dependency pylint to v4 @renovate (#6366)
- chore(deps): update dependency pylint to v4.0.1 @renovate (#6389)
- chore(deps): update dependency mkdocs-material to v9.6.22 @renovate (#6391)
- chore(deps): update dependency coverage to v7.11.0 @renovate (#6392)
- fix(deps): update dependency pillow to v12 @renovate (#6394)
- chore(deps): update dependency pydantic to v2.12.3 @renovate (#6377)
- chore(deps): update dependency ruff to v0.14.1 @renovate (#6397)
- chore(deps): update dependency openai to v2.6.0 @renovate (#6398)
- fix(deps): update dependency uvicorn to ^0.38.0 @renovate (#6400)
- chore(deps): update dependency fastapi to v0.119.1 @renovate (#6408)
- chore(deps): update dependency pylint to v4.0.2 @renovate (#6409)
- chore(deps): update node.js to 58644f2 @renovate (#6418)
- chore(deps): update node.js to a2a7dcc @renovate (#6422)
- chore(deps): update dependency ruff to v0.14.2 @renovate (#6425)
- fix(deps): update dependency vite to v7 [security] @renovate (#6412)
- chore(deps): update node.js to 23c24e8 @renovate (#6424)
- fix(deps): update dependency fastapi to ^0.120.0 @renovate (#6426)
- chore(deps): update dependency openai to v2.6.1 @renovate (#6429)
- chore(deps): update dependency orjson to v3.11.4 @renovate (#6431)
- chore(deps): update dependency ingredient-parser-nlp to v2.4.0 @renovate (#6448)
- chore(deps): update dependency python-dotenv to v1.2.1 @renovate (#6442)
- chore(deps): update dependency alembic to v1.17.1 @renovate (#6456)
- chore(deps): update dependency fastapi to v0.120.1 @renovate (#6450)
- chore(deps): update node.js to v24 @renovate (#6451)
- chore(deps): update dependency fastapi to v0.120.2 @renovate (#6457)
- chore(deps): update dependency fastapi to v0.120.3 @renovate (#6465)
🙏 New Contributors
- @keyofdminer made their first contribution in #5085
- @ritoban23 made their first contribution in #6372
- @fernandom06 made their first contribution in #5709
- @AurelienPautet made their first contribution in #6359
- @flomero made their first contribution in #6436
🍴🍴🍴🍴🍴🍴
v3.3.2
🍴🍴🍴🍴🍴🍴
This release contains bug-fixes related to authentication and fixes a breaking change related to long passwords (>72 bytes). No action is needed for users with long passwords, though it may be worth checking out the PR for more information.
✨ New features
- feat: Added url to current version release @Choromanski (#6308)
🐛 Bug fixes
- fix: Re-write Nuxt auth backend and get rid of sidebase auth @michael-genson (#6322)
- fix: Remove unused next-auth dependency @p0lycarpio (#6328)
- fix: No Redirect On Valid Token @michael-genson (#6327)
- fix: Translate log-out string @michael-genson (#6332)
- fix: Truncate Long Passwords (>72 bytes) @michael-genson (#6335)
🧰 Maintenance
8 changes
- chore(l10n): Crowdin locale sync @github-actions (#6268)
- chore(l10n): New Crowdin updates @hay-kot (#6273)
- chore(l10n): New Crowdin updates @hay-kot (#6309)
- chore(l10n): New Crowdin updates @hay-kot (#6313)
- chore(l10n): New Crowdin updates @hay-kot (#6317)
- chore(l10n): Crowdin locale sync @github-actions (#6318)
- chore(auto): Update pre-commit hooks @github-actions (#6324)
- chore(l10n): New Crowdin updates @hay-kot (#6320)
📚 Documentation
- docs(auto): Update image tag, for release v3.3.1 @github-actions (#6300)
⬆️ Dependency updates
7 changes
- chore(deps): update node.js to 2bb201f @renovate (#6295)
- chore(deps): update dependency openai to v2.0.1 @renovate (#6296)
- chore(deps): update dependency authlib to v1.6.5 @renovate (#6299)
- chore(deps): update dependency ruff to v0.13.3 @renovate (#6301)
- chore(deps): update dependency openai to v2.1.0 @renovate (#6302)
- chore(deps): update dependency pylint to v3.3.9 @renovate (#6321)
- chore(deps): update dependency ruff to ^0.14.0 @renovate (#6334)
v3.3.1
🍴🍴🍴🍴🍴🍴
This release contains few minor bug fixes that can impact users trying the ingredient parser for the first time.
🐛 Bug fixes
- fix: Default to "0" qty when creating ingredients everywhere @michael-genson (#6285)
- fix: Restore recipe meta for non-logged-in users @michael-genson (#6286)
- fix: Updated pwa orientation to any @Choromanski (#6298)
🧰 Maintenance
- chore(auto): Update pre-commit hooks @github-actions (#6282)
📚 Documentation
- docs(auto): Update image tag, for release v3.3.0 @github-actions (#6267)
- docs: Update TOKEN_TIME docs to include max @michael-genson (#6279)
⬆️ Dependency updates
9 changes
- chore(deps): update dependency beautifulsoup4 to v4.14.0 @renovate (#6260)
- fix(deps): update dependency fastapi to ^0.118.0 @renovate (#6281)
- chore(deps): update dependency beautifulsoup4 to v4.14.2 @renovate (#6283)
- chore(deps): update dependency tzdata to v2025 @renovate (#6287)
- fix(deps): update dependency openai to v2 @renovate (#6294)
- chore(deps): update dependency apprise to v1.9.5 @renovate (#6290)
- chore(deps): update node.js to d367fd3 @renovate (#6292)
- chore(deps): update dependency pillow-heif to v1.1.1 @renovate (#6291)
- chore(deps): update dependency mkdocs-material to v9.6.21 @renovate (#6293)
🍴🍴🍴🍴🍴🍴
v3.3.0 - Overhauled Ingredient Parsing
🍴🍴🍴🍴🍴🍴
Welcome to the latest Mealie release!
This update brings a major update to how you parse recipes, home to some of the most heavily-requested features. This update also brings a truckload of fixes to round out some performance issues and fix some fairly-regular annoyances.
❗❗❗Minor breaking change with TOKEN_TIME
This PR introduces a maximum for the TOKEN_TIME variable. If TOKEN_TIME is greater than 87600 (10 years, in hours) the application will fail to load. This was introduced as setting too high of a value can cause an overflow error when generating auth tokens, which can be more difficult to debug since the error wouldn't necessarily appear at startup.
🎉 Highlights
📋 Semi-automated Ingredient Parser
Mealie v3.3.0 introduces an entirely new workflow to parsing recipes. The new parsing workflow includes many heavily-requested features such as:
- A more focused, guided ingredient parser which lets you parse one ingredient at a time
- Initiate parsing immediately after creating a new recipe (with an option to turn this off, though we encourage you to try it!)
- Automatically parse ingredients which can be matched with a reasonably high level of accuracy
- Much much more!
Auth Timeout and iframe Support
Users have been experiencing issues with authentication, including being logged-out seemingly randomly between sessions (even if TOKEN_TIME is set, which is a requirement for longer session times). This update should resolve flaky session times ignoring the TOKEN_TIME.
Additionally, support for hosting Mealie in an iframe (such as via Home Assistant) should be fixed. Note that iframe support only works if being served over HTTPS, which is a browser requirement. For more information, see the samesite Cookie header spec.
✨ New features
- feat: Manually calculate OpenAI Parsing Confidence @michael-genson (#6141)
- feat: Upgraded Ingredient Parsing Workflow @michael-genson (#6151)
- feat: Ingredient Parser Enhancements @michael-genson (#6228)
- feat: Simplify Default Layout Logic and Add Household.name To Cookbooks API @michael-genson (#6243)
🐛 Bug fixes
- fix: Print Button Does Nothing @michael-genson (#6178)
- fix: ingredient linker and instructions titles @p0lycarpio (#6146)
- fix: multiple RecipeRating backend calls @p0lycarpio (#6194)
- fix: Actually Fix Token Time @michael-genson (#6215)
- fix: Remove explicit timeout from OpenAI image API Call @michael-genson (#6227)
- fix: Workflow Issues with Deleting Ingredient In Parser @michael-genson (#6230)
- fix: Enabled Using Mealie In iframe If Served Over HTTPS @michael-genson (#6128)
- fix: Remove constraint on unhashed password being 'LDAP' @cmintey (#6236)
- fix: Remove Double Cookie Refresh @michael-genson (#6242)
- fix: Misc Issues with Ingredient Parser @michael-genson (#6250)
- fix: Make Ingredient Parser Dialog Use Full Space @michael-genson (#6253)
- fix: Check for non-hid properties when injetcing SPA meta @michael-genson (#6256)
- fix: Stores Not Populating Sometimes @michael-genson (#6266)
🧰 Maintenance
18 changes
- chore(l10n): New Crowdin updates @hay-kot (#6145)
- chore(auto): Update pre-commit hooks @github-actions (#6174)
- chore(l10n): New Crowdin updates @hay-kot (#6176)
- chore(l10n): New Crowdin updates @hay-kot (#6213)
- chore(l10n): Crowdin locale sync @github-actions (#6206)
- chore(auto): Update pre-commit hooks @github-actions (#6222)
- chore(l10n): New Crowdin updates @hay-kot (#6218)
- chore(l10n): New Crowdin updates @hay-kot (#6224)
- chore(l10n): New Crowdin updates @hay-kot (#6225)
- chore(l10n): New Crowdin updates @hay-kot (#6231)
- chore(l10n): New Crowdin updates @hay-kot (#6234)
- chore(l10n): New Crowdin updates @hay-kot (#6237)
- chore(l10n): New Crowdin updates @hay-kot (#6241)
- chore(l10n): New Crowdin updates @hay-kot (#6254)
- chore(l10n): New Crowdin updates @hay-kot (#6257)
- chore: Upgrade Node and Nuxt @michael-genson (#6240)
- chore: Add Stricter Frontend Formatting @michael-genson (#6262)
- chore(l10n): New Crowdin updates @hay-kot (#6264)
📚 Documentation
- docs(auto): Update image tag, for release v3.2.1 @github-actions (#6172)
- docs: Add Info Regarding Theme Settings Config @michael-genson (#6198)
- docs: Fix formatting in some community guides @lehnerpat (#6223)
- docs: Update navigation instructions for (admin) settings pages @lehnerpat (#6220)
- docs: Improve formatting in 'Automating Backups with n8n' community guide @lehnerpat (#6221)
⬆️ Dependency updates
21 changes
- chore(deps): update dependency ruff to ^0.13.0 @renovate (#6148)
- chore(deps): update node.js to abcf9c9 @renovate (#6138)
- fix(deps): update dependency openai to v1.107.3 @renovate (#6147)
- fix(deps): update dependency pydantic to v2.11.9 @renovate (#6159)
- chore(deps): update dependency mypy to v1.18.1 @renovate (#6161)
- chore(deps): update dependency pytest-asyncio to v1.2.0 @renovate (#6162)
- chore(deps): update dependency mkdocs-material to v9.6.20 @renovate (#6179)
- fix(deps): update dependency fastapi to v0.116.2 @renovate (#6181)
- fix(deps): update dependency authlib to v1.6.4 @renovate (#6182)
- fix(deps): update dependency openai to v1.108.0 @renovate (#6185)
- chore(deps): update dependency ruff to v0.13.1 @renovate (#6191)
- chore(deps): update dependency mypy to v1.18.2 @renovate (#6193)
- chore(deps): update dependency openai to v1.109.1 @renovate (#6196)
- chore(deps): update dependency ruff to v0.13.2 @renovate (#6239)
- fix(deps): update dependency uvicorn to ^0.37.0 @renovate (#6200)
- fix(deps): update dependency fastapi to ^0.117.0 @renovate (#6205)
- chore(deps): update dependency coverage to v7.10.7 @renovate (#6216)
- chore(deps): update dependency lxml to v6.0.2 @renovate (#6219)
- chore(deps): update dependency pydantic-settings to v2.11.0 @renovate (#6233)
- chore(deps): update dependency pyyaml to v6.0.3 @renovate (#6245)
- fix(deps): update dependency bcrypt to v5 @renovate (#6246)
🍴🍴🍴🍴🍴🍴
v3.2.1
🍴🍴🍴🍴🍴🍴
A quick bug fix release to fix state issues on the recipe explorer overview page.
🐛 Bug fixes
- fix: Explorer Page State Not Working On Hitting Back @michael-genson (#6171)
📚 Documentation
- docs(auto): Update image tag, for release v3.2.0 @github-actions (#6164)