Releases: mealie-recipes/mealie
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)
⬆️ Dependency updates
🍴🍴🍴🍴🍴🍴
v3.2.0
🍴🍴🍴🍴🍴🍴
❗❗❗Important Notice for PWA (Mobile) Users
TL;DR If you use the PWA (most/all mobile users), after upgrading, uninstall your PWA and install the new one. If you're accessing Mealie through a regular web browser and have not installed the PWA, please disregard!
The PWA has been overhauled to meet more modern standards. The old PWA configuration was constrained heavily by the old Nuxt 2 framework, and had several odd quirks and simply didn't work in a lot of instances. The new PWA implementation works much better and should be compatible with all devices which support PWAs (including both iPhone and Android devices).
A consequence of this is that the way the app is identified internally has changed, so existing PWA installs won't recognize that there has been an update to the application. In order to continue using the PWA, once you update Mealie, remove/uninstall your old PWA and re-install it.
🎉 Highlights
- New Settings Layout. No more clicking on "settings" when you're looking for the data management page and remembering that it's,
- Major performance improvements to the recipe overview page, making it several times more snappy.
- Lots of quality of life improvements, including many bugfixes.
- Upgrades to the PWA for mobile devices (see more above).
✨ New features
- feat: group recipe ingredients by section titles @felixschndr (#5864)
- feat: consolidate settings gui @Kuchenpirat (#6043)
- feat: Add option to switch sqlite to WAL @t0xicCode (#6050)
- feat: Improve first time setup ux @p0lycarpio (#6106)
🐛 Bug fixes
- fix: Make String Cleaner More Robust @michael-genson (#6032)
- fix: Handle missing OIDC groups claim @t0xicCode (#6054)
- fix: import from Paprika not importing some images @brokeh (#5911)
- fix: re-ordering of cookbooks @RichardVanLeeuwen (#5975)
- fix: Fix RecipeLastMade dialog date picker being off by a day @lehnerpat (#6079)
- fix: Fix PWA @michael-genson (#6090)
- fix: Make Frontend Respect TOKEN_TIME @michael-genson (#6089)
- fix: Incorrect Usage of $vuetify.display @michael-genson (#6066)
- fix: set touchless on AppSidebar @p0lycarpio (#6092)
- fix: Shopping list top buttons layout (margin and row wrapping) @lehnerpat (#6091)
- fix: Optimize Recipe Favorites/Ratings @michael-genson (#6075)
- fix: Optimize Recipe Context Menu @michael-genson (#6071)
- fix: Cookbooks page padding @p0lycarpio (#6097)
- fix: Context Menu Dialogs Not Working @michael-genson (#6108)
- fix: Missing Locale Dates @michael-genson (#6116)
- fix: Don't open the sidebar drawer by default on medium screens @noxhirsch (#6107)
- fix: Upgrade Vuetify, fix Dev Dependencies, and fix Migration Tree View @michael-genson (#6127)
- fix: Refactor and Optimize Explore Page Search @michael-genson (#6070)
- fix: add
breaksoption to markdown rendering, to get old linebreak behaviour @fleshgolem (#6156) - fix: Can't Edit Timeline Events @michael-genson (#6160)
- fix: Ingredient Parser Drops Units Sometimes @michael-genson (#6150)
🧰 Maintenance
21 changes
- chore(l10n): New Crowdin updates @hay-kot (#6034)
- chore(l10n): New Crowdin updates @hay-kot (#6049)
- chore(l10n): New Crowdin updates @hay-kot (#6058)
- chore(l10n): New Crowdin updates @hay-kot (#6063)
- chore(l10n): New Crowdin updates @hay-kot (#6067)
- chore: automatic locale sync @github-actions (#6069)
- chore(l10n): New Crowdin updates @hay-kot (#6073)
- chore(l10n): New Crowdin updates @hay-kot (#6076)
- chore(auto): Update pre-commit hooks @github-actions (#6077)
- chore(l10n): New Crowdin updates @hay-kot (#6080)
- chore(l10n): New Crowdin updates @hay-kot (#6088)
- chore(l10n): New Crowdin updates @hay-kot (#6093)
- chore(l10n): New Crowdin updates @hay-kot (#6100)
- chore(l10n): New Crowdin updates @hay-kot (#6105)
- chore: automatic locale sync @github-actions (#6117)
- chore(l10n): New Crowdin updates @hay-kot (#6113)
- chore(l10n): New Crowdin updates @hay-kot (#6123)
- chore(auto): Update pre-commit hooks @github-actions (#6125)
- chore: Update GitHub Configs @michael-genson (#6135)
- chore(l10n): New Crowdin updates @hay-kot (#6139)
- chore(l10n): New Crowdin updates @hay-kot (#6143)
📚 Documentation
- docs(auto): Update image tag, for release v3.1.2 @github-actions (#6037)
- docs: Fix list formatting on 'Features' docs page @lehnerpat (#6082)
- docs: Fix install grammar @Solrac8080 (#6118)
- docs: link to GitHub Release Notes @TheMerinoWolf (#6122)
- docs: fix typo starting-dev-server.md @HelgeKrueger (#6142)
🔨 Internal development
- dev: list availlable frontend updates on renovate dependency dashboard @Kuchenpirat (#6130)
⬆️ Dependency updates
28 changes
- fix(deps): update dependency lxml to v6.0.1 @renovate (#6011)
- fix(deps): update dependency openai to v1.102.0 @renovate (#6042)
- fix(deps): update dependency orjson to v3.11.3 @renovate (#6041)
- fix(deps): update dependency typing-extensions to v4.15.0 @renovate (#6035)
- fix(deps): update dependency beautifulsoup4 to v4.13.5 @renovate (#6026)
- fix(deps): update dependency rapidfuzz to v3.14.0 @renovate (#6044)
- chore(deps): update dependency coverage to v7.10.5 @renovate (#6021)
- fix(deps): update dependency authlib to v1.6.3 @renovate (#6018)
- fix(deps): update dependency alembic to v1.16.5 @renovate (#6048)
- chore(deps): update dependency ruff to v0.12.11 @renovate (#6056)
- chore(deps): update dependency coverage to v7.10.6 @renovate (#6062)
- fix(deps): update dependency openai to v1.103.0 @renovate (#6083)
- fix(deps): update dependency openai to v1.104.2 @renovate (#6086)
- chore(deps): update node.js to bfee10f @renovate (#6095)
- chore(deps): update node.js to d22c0ce @renovate (#6096)
- fix(deps): update dependency openai to v1.105.0 @renovate (#6094)
- fix(deps): update dependency openai to v1.106.0 @renovate (#6099)
- chore(deps): update dependency pytest to v8.4.2 @renovate (#6101)
- chore(deps): update dependency ruff to v0.12.12 @renovate (#6102)
- fix(deps): update dependency openai to v1.106.1 @renovate (#6103)
- chore(deps): update dependency mkdocs-material to v9.6.19 @renovate (#6121)
- chore(config): migrate renovate config @renovate (#6134)
- fix(deps): update dependency rapidfuzz to v3.14.1 @renovate (#6137)
- fix(deps): update dependency vite to v6.2.7 [security] @renovate (#6132)
- chore(deps): update node.js to f3e50c7 @renovate (#6136)
- fix(deps): update dependency openai to v1.107.0 @renovate (#6129)
- fix(deps): update dependency next-auth to ~4.24.0 [security] @renovate (#6133)
- fix(deps): update dependency axios to v1.12.0 [security] @renovate (#6158)
🙏 New Contributors
- @t0xicCode made their first contribution in #6054
- @brokeh made their first contribution in #5911
- @Solrac8080 made their first contribution in #6118
- @TheMerinoWolf made their first contribution in #6122
- @noxhirsch made their first contribution in #6107
- @HelgeKrueger made their first contribution in #6142