v3.25.0

mealie-recipes/mealiev3.25.0Sep 2, 2026by github-actions[bot]

AI Summary

This release features a major overhaul of the internal authentication system, including automatic token refresh and a change to 'Remember Me' behavior. Additionally, the Meal Planner UI was reworked, and new features were added for deleting unused organizers, image lightboxes, and rating-based filtering.

Key Highlights

  • Overhauled internal auth with automatic token refresh and 'Remember Me' changes
  • Meal Planner UI reworked for better usability
  • Click-to-expand lightbox for recipe images and assets
  • Ability to leverage recipe ratings in meal plan rules and cookbooks

Breaking Changes

  • GET /api/auth/refresh has been removed and changed to a POST API endpoint

New Features

  • Token refresh to prevent mid-session logouts
  • Delete unused organizers from data management page
  • Rating as a query filter field
  • Click-to-expand lightbox for recipe hero image and asset images
  • Improved registration UX with form validation coloring
  • Improved recipe parsing UI
  • Rank exact and prefix matches above substring matches in food search
  • Autofocus on RecipeSelector input field

Full Release Notes

# 🍴🍴🍴🍴🍴🍴

This release comes with an overhaul to Mealie's internal auth, making it more inline with what you generally expect, specifically with "Remember Me" and `TOKEN_TIME`.

- Tokens now refresh automatically before they expire. As long as you use the app before your token expires, it will automatically be refreshed with a new token. What this means for users is that you won't be logged-out mid-session, and you shouldn't have to log-in periodically unless you haven't used the app in some time (see `TOKEN_TIME` changes).
- Once you close your tab/browser/session, you will be logged-out. To stay logged-in between sessions, check "Remember Me" when logging in. Since this is the _opposite_ behavior of how logins worked before this change, "Remember Me" is checked by default to help ease the learning curve.
- `TOKEN_TIME` now defines how long a session will last before expiring. Many instances previously set this value arbitrarily high to prevent users from being logged-out. Now with auto-refresh this is unnecessary, and can be substantially lowered (we recommend turning this down to at most 168 hours, i.e. one week).

#### ⚠️⚠️⚠️ IMPORTANT BREAKING CHANGE FOR APP DEVELOPERS ⚠️⚠️⚠️
`GET /api/auth/refresh` has been removed, and is instead now a `POST` API.

## 🎉 Highlights

- Overhauled internal auth (see above)
- You can now delete unused organizers from the data management page
- You can now leverage a recipe's rating in meal plan rules, cookbooks, and the recipe finder
- Clicking on a recipe's image or asset will show the the fully expanded image
- The Meal Planner UI has been reworked to make it easier to use

## 🚨 Breaking changes

- feat: add token refresh, fix remember me, and fix Safari token expiration @michael-genson (#8200)

## ✨ New features

- feat: add token refresh, fix remember me, and fix Safari token expiration @michael-genson (#8200)
- feat: organizer improvements — recipeCount, merge endpoint, delete unused UI @bferd (#7829)
- feat: Shopping list focus polishes @miah120 (#7890)
- feat: add rating as a query filter field @dominikrein (#7966)
- feat: click-to-expand lightbox for recipe hero image and asset images @bferd (#7933)
- feat: improve registration UX by coloring Next button based on form validity @Luna-81 (#8233)
- feat: Improve recipe parsing ui @miah120 (#7984)
- feat: rank exact and prefix matches above substring matches in food search @dyllan500 (#7781)
- feat: Meal Planner UI Improvements @miah120 (#7946)
- feat: add autofocus to RecipeSelector input field @torbenvanassche (#8262)

## 🐛 Bug fixes

- fix: fallback to regular HTML if video download fails @michael-genson (#8203)
- fix: Improve keyboard navigation of search results @mbianucci (#7869)
- fix: allow deleting a user who both rated and favorited a recipe (#8121) @chiliec (#8131)
- fix: wrap timeline event subjects @YibingZhang325 (#8218)
- fix: Account for on hand items when adding a recipe to a shopping list @miah120 (#7912)
- fix: close long-lived token auth transaction @stieglma (#7897)
- fix: stamp timeline events at request time, not process start @alexander-wenzel-dev (#7896)
- fix: repoint shopping list items when merging a food or unit @henry1113nz (#8146)
- fix: parse day- and week-only ISO 8601 durations in recipe time cleaner @TowyTowy (#7895)
- fix: strip trailing footnote markers from parsed ingredient names @henry1113nz (#8145)
- fix: hide "No Label" heading when copying an unlabeled shopping list @brent20 (#7905)
- fix: Add bottom padding to prevent fab overlapping content @miah120 (#7940)
- fix: resize images before AI import to avoid provider size limits @chiliec (#8241)
- fix: Keep instruction sticky in ingredient linker @miah120 (#7925)
- fix: skip image request when a recipe has no image @henry1113nz (#8075)
- fix: preserve source language in AI recipe parsing @x0x0b (#8236)
- fix: refetch organizer data pages on visit to avoid stale data @lotusk (#8260)

## 🧰 Maintenance

<details>
<summary>14 changes</summary>

- chore(l10n): New Crowdin updates @hay-kot (#8171)
- chore(l10n): New Crowdin updates @hay-kot (#8206)
- chore(l10n): New Crowdin updates @hay-kot (#8207)
- chore(l10n): New Crowdin updates @hay-kot (#8212)
- chore(l10n): New Crowdin updates @hay-kot (#8216)
- chore(l10n): New Crowdin updates @hay-kot (#8217)
- chore(l10n): New Crowdin updates @hay-kot (#8219)
- chore(l10n): New Crowdin updates @hay-kot (#8229)
- chore(l10n): New Crowdin updates @hay-kot (#8234)
- chore(l10n): Crowdin locale sync @[mealie-actions[bot]](https://github.com/apps/mealie-actions) (#8244)
- chore(l10n): New Crowdin updates @hay-kot (#8237)
- chore(l10n): New Crowdin updates @hay-kot (#8253)
- chore(l10n): New Crowdin updates @hay-kot (#8257)
- chore(l10n): New Crowdin updates @hay-kot (#8261)
</details>

## 📚 Documentation

- docs: Add advice when backup is successful but keeps user logged out @qlassalle (#7919)

## 🔨 Internal development

- dev: don't clobber devEngines.packageManager.version on release bump @lotusk (#8258)
- dev: fix mangled pnpm version @michael-genson (#8264)

## ⬆️ Dependency updates

<details>
<summary>10 changes</summary>

- fix(deps): update dependency openai to v3.3.1 @[renovate[bot]](https://github.com/apps/renovate) (#8201)
- fix(deps): update dependency yt-dlp to v2026.8.19 @[renovate[bot]](https://github.com/apps/renovate) (#8205)
- fix(deps): update dependency apprise to v1.13.0 @[renovate[bot]](https://github.com/apps/renovate) (#8208)
- chore(deps): update dependency ruff to v0.16.4 @[renovate[bot]](https://github.com/apps/renovate) (#8211)
- chore(deps): lock file maintenance @[renovate[bot]](https://github.com/apps/renovate) (#8248)
- fix(deps): update dependency openai to v3.4.0 @[renovate[bot]](https://github.com/apps/renovate) (#8251)
- fix(deps): update dependency openai to v3.5.0 @[renovate[bot]](https://github.com/apps/renovate) (#8252)
- chore(deps): update dependency ruff to v0.16.5 @[renovate[bot]](https://github.com/apps/renovate) (#8255)
- chore(deps): update node.js to be23f54 @[renovate[bot]](https://github.com/apps/renovate) (#8256)
- fix(deps): update dependency pydantic to v2.13.5 @[renovate[bot]](https://github.com/apps/renovate) (#8263)
</details>

## 🙏 New Contributors

* @mbianucci made their first contribution in https://github.com/mealie-recipes/mealie/pull/7869
* @chiliec made their first contribution in https://github.com/mealie-recipes/mealie/pull/8131
* @YibingZhang325 made their first contribution in https://github.com/mealie-recipes/mealie/pull/8218
* @stieglma made their first contribution in https://github.com/mealie-recipes/mealie/pull/7897
* @qlassalle made their first contribution in https://github.com/mealie-recipes/mealie/pull/7919
* @henry1113nz made their first contribution in https://github.com/mealie-recipes/mealie/pull/8146
* @dominikrein made their first contribution in https://github.com/mealie-recipes/mealie/pull/7966
* @brent20 made their first contribution in https://github.com/mealie-recipes/mealie/pull/7905
* @dyllan500 made their first contribution in https://github.com/mealie-recipes/mealie/pull/7781
* @x0x0b made their first contribution in https://github.com/mealie-recipes/mealie/pull/8236
* @torbenvanassche made their first contribution in https://github.com/mealie-recipes/mealie/pull/8262

# 🍴🍴🍴🍴🍴🍴