Releases: mealie-recipes/mealie
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
🍴🍴🍴🍴🍴🍴
v3.1.2 - Everything is a Food now v3
🍴🍴🍴🍴🍴🍴
Patch release to fix a few bugs found in v3.1.
✨ New features
🐛 Bug fixes
- fix: theme dark/light are swapped @DrDonoso (#6001)
- fix: Remove Temperature from OpenAI Integration @michael-genson (#6023)
- fix: Simplify AutoForm and fix select @michael-genson (#6022)
- fix: Light Mode Using Dark Mode Background Color @michael-genson (#6014)
- fix: Can't add first shopping list item to shopping list @michael-genson (#6013)
- fix: Remove Frontend Timeout @michael-genson (#6033)
🧰 Maintenance
7 changes
- chore(l10n): New Crowdin updates @hay-kot (#5995)
- chore(l10n): New Crowdin updates @hay-kot (#5999)
- chore(l10n): New Crowdin updates @hay-kot (#6006)
- chore(l10n): New Crowdin updates @hay-kot (#6009)
- chore: automatic locale sync @github-actions (#6024)
- chore(auto): Update pre-commit hooks @github-actions (#6029)
- chore(l10n): New Crowdin updates @hay-kot (#6017)
📚 Documentation
- docs(auto): Update image tag, for release v3.1.1 @github-actions (#5994)
⬆️ Dependency updates
- fix(deps): update dependency openai to v1.101.0 @renovate (#6005)
- chore(deps): update dependency ruff to v0.12.10 @renovate (#6004)
- chore(deps): update dependency mkdocs-material to v9.6.18 @renovate (#6008)
🙏 New Contributors
🍴🍴🍴🍴🍴🍴
v3.1.1 - Everything is a Food now v2
🍴🍴🍴🍴🍴🍴
This is just a quick patch release to fix the wrong tag assigned to the last release.
🧰 Maintenance
📚 Documentation
- docs(auto): Update image tag, for release 3.1.0 @github-actions (#5992)
⬆️ Dependency updates
- fix(deps): update dependency openai to v1.100.2 @renovate (#5993)
- fix(deps): update dependency requests to v2.32.5 @renovate (#5987)
🍴🍴🍴🍴🍴🍴
v3.1.0 - 🍎 Everything is a Food now
🍴🍴🍴🍴🍴🍴
Welcome to the latest Mealie release!
We’re happy to share that this is the first v3 update introducing new features, now that the hardest parts of the transition are behind us.
🎉 Highlights
🍎Everything is a Food now
To simplify ingredient logic and prepare for future automatic parsing, all ingredients are now represented as foods with four fields: amount, unit, food, and note. Unparsed ingredients are stored in the note field. These changes do also apply to the shopping list.
↕️ Main Page Now Remembers Your Recipe Sort Preferences
Your recipe sort preference is now saved per browser. If you’d rather see recipes in alphabetical order instead of by “last added,” your preferred sort options will be stored locally.
✨ New features
- feat: Remove "Is Food" and "Disable Amounts" Flags @michael-genson (#5684)
- feat: Move create-item button in shopping list to the top @lehnerpat (#5687)
- feat: Add label notifier @cm226 (#5879)
- feat: Button to select recipe cover image when creating recipe from multiple images @SkepticMystic (#5647)
- feat: Remove Not-Sort-By-Label and Refactor Shopping List Page @michael-genson (#5866)
- feat: Allow using OIDC auth cache instead of session @hr-kapanakov (#5746)
- feat: save default recipe ordering in local storage @felixschndr (#5826)
🐛 Bug fixes
- fix: cookbook random recipe selector @mariodz95 (#5768)
- fix: send the correct value for recipe scale and ensure the body is sent correctly @felixschndr (#5737)
- fix: Better UX and Error Handling For Adding Timeline Events @michael-genson (#5798)
- fix: add confirm button to bulk delete of tags @felixschndr (#5785)
- fix: JSON Editor Breaks On Invalid JSON @michael-genson (#5814)
- fix: Make Sure Test Webhook Always Fires @michael-genson (#5816)
- fix: Optimize Recipe Timeline Requests @michael-genson (#5811)
- fix: Reduce margin in RecipePageInstructions @felixschndr (#5783)
- fix: make only checkbox reactive @mariodz95 (#5739)
- fix: Manual Serving Edits @michael-genson (#5813)
- fix: Data Management Headers @michael-genson (#5830)
- fix: remove v-lazy from RecipeCard @frysztak (#5835)
- fix: Delete Group From Admin Page @michael-genson (#5837)
- fix: Missing Yield Text @michael-genson (#5827)
- fix: QueryFilter Hydration & script setup @Kuchenpirat (#5839)
- fix: Nuxt 3 Ingredient Parsing Issues and Tooltip Positions @michael-genson (#5829)
- fix: allow admin users to delete other household recipes @mariodz95 (#5767)
- fix: script setup #2 and some fixes @Kuchenpirat (#5845)
- fix: tags & tools edit confirm @Kuchenpirat (#5860)
- fix: correct JPEG media type in get_image_url to prevent API errors @wratner (#5897)
- fix: Added copy icons to first-login message @RichardVanLeeuwen (#5716)
- fix: add confidence calculation for BruteForceParser @Skye-Samuels (#5903)
- fix: change libldap-2.5 to libldap2 in docker @AipNooBest (#5946)
- fix: User Registration Form Validation and Other Setup Wizard Things @michael-genson (#5920)
- fix: Auto Form Select @michael-genson (#5919)
- fix: Add Hint Text To Apprise URL @michael-genson (#5895)
- fix: CONTAINS ALL doesn't contain all @michael-genson (#5900)
- fix: Remove Recipes From Cookbook API @michael-genson (#5899)
- fix: Add Recipe From Another Household To Shopping List @michael-genson (#5892)
- fix: error when trying to change recipe image @mariodz95 (#5771)
- fix: Missing Items On Admin Pages @michael-genson (#5984)
- fix: Update variable name in RecipeCard.vue to enable household ratings to appear on recipes @tauhammerhead (#5985)
🧰 Maintenance
51 changes
- chore(auto): Update pre-commit hooks @github-actions (#5765)
- chore(l10n): New Crowdin updates @hay-kot (#5770)
- chore(l10n): New Crowdin updates @hay-kot (#5775)
- chore(l10n): New Crowdin updates @hay-kot (#5780)
- chore(l10n): New Crowdin updates @hay-kot (#5787)
- chore(l10n): New Crowdin updates @hay-kot (#5792)
- chore(l10n): New Crowdin updates @hay-kot (#5794)
- chore(l10n): New Crowdin updates @hay-kot (#5804)
- chore(l10n): New Crowdin updates @hay-kot (#5805)
- chore(l10n): New Crowdin updates @hay-kot (#5809)
- chore(l10n): New Crowdin updates @hay-kot (#5817)
- chore(auto): Update pre-commit hooks @github-actions (#5825)
- chore: automatic locale sync @github-actions (#5815)
- chore(l10n): New Crowdin updates @hay-kot (#5828)
- chore(l10n): New Crowdin updates @hay-kot (#5831)
- chore(l10n): New Crowdin updates @hay-kot (#5838)
- chore(l10n): New Crowdin updates @hay-kot (#5847)
- chore: script setup #3 - recipe components @Kuchenpirat (#5849)
- chore(l10n): New Crowdin updates @hay-kot (#5854)
- chore(l10n): New Crowdin updates @hay-kot (#5855)
- chore(l10n): New Crowdin updates @hay-kot (#5862)
- chore: update references to GitHub repository @felixschndr (#5861)
- chore(l10n): New Crowdin updates @hay-kot (#5867)
- chore(l10n): New Crowdin updates @hay-kot (#5869)
- chore(l10n): New Crowdin updates @hay-kot (#5877)
- chore(l10n): New Crowdin updates @hay-kot (#5882)
- chore: automatic locale sync @github-actions (#5881)
- chore(l10n): New Crowdin updates @hay-kot (#5884)
- chore(l10n): New Crowdin updates @hay-kot (#5890)
- chore(auto): Update pre-commit hooks @github-actions (#5889)
- chore(l10n): New Crowdin updates @hay-kot (#5896)
- chore(l10n): New Crowdin updates @hay-kot (#5904)
- chore(l10n): New Crowdin updates @hay-kot (#5908)
- chore(l10n): New Crowdin updates @hay-kot (#5912)
- chore(l10n): New Crowdin updates @hay-kot (#5915)
- chore(l10n): New Crowdin updates @hay-kot (#5918)
- chore(auto): Update pre-commit hooks @github-actions (#5933)
- chore: automatic locale sync @github-actions (#5929)
- chore(l10n): New Crowdin updates @hay-kot (#5926)
- chore(l10n): New Crowdin updates @hay-kot (#5936)
- chore(l10n): New Crowdin updates @hay-kot (#5938)
- chore(l10n): New Crowdin updates @hay-kot (#5943)
- chore(l10n): New Crowdin updates @hay-kot (#5953)
- chore(l10n): New Crowdin updates @hay-kot (#5958)
- chore(l10n): New Crowdin updates @hay-kot (#5964)
- chore: automatic locale sync @github-actions (#5969)
- chore(l10n): New Crowdin updates @hay-kot (#5965)
- chore(l10n): New Crowdin updates @hay-kot (#5979)
- chore(auto): Update pre-commit hooks @github-actions (#5981)
- chore(l10n): New Crowdin updates @hay-kot (#5982)
- chore(l10n): New Crowdin updates @hay-kot (#5989)
📚 Documentation
- docs(auto): Update image tag, for release v3.0.2 @github-actions (#5769)
- docs: Fix broken postgres docker-compose example @lucasfijen (#5894)
🔨 Internal development
- dev: Pin Docker Digest And Add to Renovate @michael-genson (#5949)
⬆️ Dependency updates
38 changes
- fix(deps): update dependency openai to v1.97.1 @renovate (#5781)
- chore(deps): update dependency ruff to v0.12.5 @renovate (#5795)
- chore(deps): update dependency coverage to v7.10.0 @renovate (#5796)
- chore(deps): update dependency rich to v14.1.0 @renovate (#5800)
- fix(deps): update dependency orjson to v3.11.1 @renovate (#5802)
- chore(deps): update dependency mkdocs-material to v9.6.16 @renovate (#5808)
- chore(deps): update dependency coverage to v7.10.1 @renovate (#5821)
- fix(deps): update dependency sqlalchemy to v2.0.42 @renovate (#5836)
- chore(deps): update dependency ruff to v0.12.6 @renovate (#5840)
- chore(deps): update dependency ruff to v0.12.7 @renovate (#5843)
- fix(deps): update dependency openai to v1.98.0 @renovate (#5852)
- chore(deps): update dependency mypy to v1.17.1 @renovate (#5856)
- chore(deps): update dependency freezegun to v1.5.4 @renovate (#5853)
- fix(deps): update dependency apprise to v1.9.4 @renovate (#5878)
- fix(deps): update dependency openai to v1.99.1 @renovate (#5901)
- fix(deps): update dependency pillow-heif to v1.1.0 @renovate (#5870)
- chore(deps): update dependency coverage to v7.10.2 @renovate (#5887)
- chore(deps): update dependency ruff to v0.12.8 @renovate (#5913)
- fix(deps): update dependency openai to v1.99.3 @renovate (#5914)
- fix(deps): update dependency openai to v1.99.5 @renovate (#5917)
- chore(deps): update dependency freezegun to v1.5.5 @renovate (#5922)
- chore(deps): update dependency pylint to v3.3.8 @renovate (#5923)
- chore(deps): update dependency pre-commit to v4.3.0 @renovate (#5928)
- fix(deps): update dependency recipe-scrapers to v15.9.0 @renovate (#5925)
- fix(deps): update dependency openai to v1.99.7 @renovate (#5924)
- fix(deps): update dependency sqlalchemy to v2.0.43 @renovate (#5934)
- chore(deps): update dependency coverage to v7.10.3 @renovate (#5932)
- fix(deps): update dependency openai to v1.99.8 @renovate (#5935)
- fix(deps): update dependency tzdata to v2025 @renovate (#5942)
- fix(deps): update dependency openai to v1.99.9 @renovate (#5939)
- chore(deps): update node.js to 08535d6 @renovate (#5952)
- fix(deps): update dependency orjson to v3.11.2 @renovate (#5941)
- chore(deps): update node.js to 572a90d @renovate (#5955)
- chore(deps): update dependency ruff to v0.12.9 @renovate (#5956)
- fix(deps): update dependency ingredient-parser-nlp to v2.2.0 @renovate (#5963)
- chore(deps): update dependency mkdocs-material to v9.6.17 @renovate (#5962)
- chore(deps): update dependency coverage to v7.10.4 @renovate (#5967)
- fix(deps): update dependency openai to v1.100.1 @renovate (#5986)
🙏 New Contributors
- @frysztak made their first contribution in #5835
- @lucasfijen made their first contribution in #5894
- @wratner made their first contribution in #5897
- @lehnerpat made their first contribution in #5687
- @RichardVanLeeuwen made their first contribution in https://github.com...
v3.0.2 - Next Round of Bugfixes and Security
🍴🍴🍴🍴🍴🍴
Welcome to the latest Mealie release!
The focuss of this update is again application stability after the recent frontend upgrade:
- Continued bug fixes addressing regressions introduced during the frontend upgrade.
- A patch for a recently discovered XSS vulnerability. Thanks to @B1tBreaker for reporting the vulnerability.
🐛 Bug fixes
- fix: meal planner date range is correctly set @mariodz95 (#5725)
- fix: Update admin_backups.py to handle API backup file uploads correctly. @duckhead (#5715)
- fix: Mealplan Regressions @michael-genson (#5748)
- fix: Patch XSS Vulnerability @michael-genson (#5754)
- fix: multiple regressions on data management page @Kuchenpirat (#5758)
- fix: style of recipe actions to be compliant with design schema @felixschndr (#5736)
- fix: RTL Settings Ignored @michael-genson (#5762)
🧰 Maintenance
14 changes
- chore(l10n): New Crowdin updates @hay-kot (#5710)
- chore(auto): Update pre-commit hooks @github-actions (#5713)
- chore(l10n): New Crowdin updates @hay-kot (#5714)
- chore(l10n): New Crowdin updates @hay-kot (#5717)
- chore(l10n): New Crowdin updates @hay-kot (#5722)
- chore(l10n): New Crowdin updates @hay-kot (#5728)
- chore(l10n): New Crowdin updates @hay-kot (#5744)
- chore(l10n): New Crowdin updates @hay-kot (#5749)
- chore(l10n): New Crowdin updates @hay-kot (#5750)
- chore(l10n): New Crowdin updates @hay-kot (#5755)
- chore: automatic locale sync @github-actions (#5756)
- chore(l10n): New Crowdin updates @hay-kot (#5759)
- chore(l10n): New Crowdin updates @hay-kot (#5764)
- chore: automatic locale sync @github-actions (#5766)
📚 Documentation
- docs(auto): Update image tag, for release v3.0.1 @github-actions (#5708)
⬆️ Dependency updates
11 changes
- chore(deps): update dependency freezegun to v1.5.3 @renovate (#5702)
- fix(deps): update dependency openai to v1.95.1 @renovate (#5683)
- chore(deps): update dependency ruff to v0.12.4 @renovate (#5743)
- chore(deps): update dependency coverage to v7.9.2 @renovate (#5622)
- fix(deps): update dependency fastapi to ^0.116.0 @renovate (#5654)
- fix(deps): update dependency alembic to v1.16.4 @renovate (#5661)
- chore(deps): update dependency mypy to v1.17.0 @renovate (#5718)
- fix(deps): update dependency openai to v1.97.0 @renovate (#5726)
- chore(deps): update dependency pytest-asyncio to v1.1.0 @renovate (#5730)
- fix(deps): update dependency orjson to v3.11.0 @renovate (#5727)
- fix(deps): update dependency authlib to v1.6.1 @renovate (#5757)
🙏 New Contributors
- @mariodz95 made their first contribution in #5725
- @duckhead made their first contribution in #5715