π΄π΄π΄π΄π΄π΄
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 #5716
- @Skye-Samuels made their first contribution in #5903
- @AipNooBest made their first contribution in #5946
- @hr-kapanakov made their first contribution in #5746
- @tauhammerhead made their first contribution in #5985