v0.22.0-beta
Summary
Cookbooks, a container of multiple recipes. Basic user management, in the admin settings one can now manage admins/users. Site logins for imports, Logins can now have multiple accounts which will be cycled.
Features
Cookbooks
Recipes can now be grouped into cookbooks.
- A Cookbook is a title and a set of recipes.
- The quick filters are now removed and instead we have three toggles, to toggle between your library(cookbooks + recipes), cookbooks and recipes.
- Cookbooks work Offline: every one you can see, and what is in it, is part of the guaranteed offline set.
- Deleting a cookbook leaves its recipes alone, deleting a recipe leaves its cookbooks existing even if it was the last recipe in a cookbook.
Managing the people on your server
Server owners and admins get a Users section under Settings => Admin; this contains every account on the server with its picture, name, email, household, roles and join date.
- Manage admin access.
- Delete a accounts you no longer want on the server.
- Deleting someone who administers a household hands that household to a member who is staying, rather than taking it away from everyone in it. A household with nobody left in it goes with its last member.
Contributed by @YONN2222.
Several logins for one site
Save more than one account for a site you import from.
- A Site Authentication Token now names the account it belongs to. Tokens sharing a name belong to the same login.
- Imports from a site with more than one account use one account at a time, picked at random.
- A token saved without an account name is not tied to a login and goes with every import for its domain.
- The job detail under Settings => Admin => Jobs names the account an import used.
Fixes and Improvements
- A site's tokens stay with that site Every Site Authentication Token a user had saved was sent with every import they ran, whatever site it was for, so an Instagram session cookie travelled to unrelated recipe blogs. An import now sends only the tokens whose domain matches the URL it is importing.
- Toasts are readable wherever they land A confirmation or error message was drawn underneath the navigation bar, and underneath any dialog that stays open — so a dialog reporting a failure could hide its own explanation.
- Deleted accounts could still login Sessions are held in Redis, and each one carried a copy of the account as it looked at sign-in. Nothing checked that copy again, so a session stayed usable after the account behind it was gone, and clearing the database left every open session working.
- OIDC no longer demotes the server owner On a server where OIDC claim mapping is on, the first account was created as owner and admin and then had admin taken straight back off by the same sign-in.
- Measurement units written out in full are recognised A unit spelled as several words, "cuillères à soupe", "spiseskefuld med top", "el, gehäuft", was not detected as a unit at all, while its abbreviation was.
- Profile pictures keep their transparency A picture with a transparent background was shown on a coloured disc picked from your name, so a transparent PNG came out green, blue or yellow instead of following light or dark mode.
- Test connection works for OpenAI-compatible endpoints An endpoint whose URL already ended in
/v1, which is how OpenRouter and most others print it, had a second/v1added only by the connection test, so the test answered 404 while every real AI request through the same saved configuration succeeded. - Units are shown in your language The unit vocabulary only carried names for seven out of fourteen supported languages. Meaning Spanish, Russian, Polish, Norwegian, Portuguese or Bulgarian readers saw English: "500 grams de harina" on a shopping list, not "500 gramos". French had names for 17 of the 64 units and English for the rest.
- AI enrichment works with more providers Enrichment asked for a strict JSON schema and gave up if the endpoint could not serve one, which behind an aggregator failed with a routing error blaming your privacy settings. It now retries in plain JSON mode, which most models handle. See AI provider.