• Choose which food databases search looks in: Settings → Food & Entry → Search food databases now has a switch per source — Open Food Facts, USDA, Swiss. USDA and Swiss start on: they are bundled with the app, so searching them never leaves your phone. Open Food Facts starts off, because it is a lookup over the internet. Turning a source off only removes it from search; scanning a barcode still looks the product up, and foods you already logged keep their source badge
• Plan meals on future days: swipe or tap past today on Home, up to eight weeks ahead. Logging, Copy To, and the analysis-queue day arrows use that day. Empty future days say no meals planned. Health Connect still skips future-dated writes
• Custom caffeine and nicotine drinks: edit or delete any drink or product, built-ins included, or add your own with a default amount, like a 65 mg espresso or a pouch with its mg per dose. Presets drive the +1 chips on the Add food sheet. A caffeine drink can also carry milk (kind and ml); logging it writes the caffeine tracker row and a milk food in the current meal. Home caffeine totals include tracker mg. Deleting the caffeine row removes the milk food; deleting the milk food keeps the caffeine log. Nicotine stays habit-only. Presets stay on the device. Settings → Trackers → Caffeine or Nicotine
• Show energy in kilojoules: Settings → Personal on Android and App → Units on the web have an Energy setting: kcal or kJ. The default stays kcal. The Home ring, totals, pickers, widgets, and notifications follow the setting. Analysis and exports stay in kcal
• Control how much the model thinks on custom endpoints: Settings → AI & Speech has a thinking control for custom OpenAI-compatible endpoints and Ollama, with Off, Low, Medium, High and Auto. Auto (the default) sends nothing, so existing setups are unchanged; Off asks the model to skip thinking so the response budget pays for the answer
• Scanning an unknown barcode offers to add the product: when a barcode has no match in Open Food Facts, the error now has an Add to Open Food Facts action. It opens the Open Food Facts product form in the browser with the barcode in the link, so the next person's scan finds it
• Adding food is one search field instead of a wall of buttons: the Add Food sheet used to ask which tool you wanted before you could say what you ate, and kept your own saved foods and the food databases behind two more sheets. Now you type once. Your recents, frequents, favorites and recipes appear as you type, alongside matches from the USDA and Swiss databases that ship with the app, in one ranked list with no duplicates across sources. Your own foods always come first. Typing stays on your phone: packaged products from Open Food Facts stay off until you turn them on, and nothing you type is sent anywhere in the meantime. While they are off, a small hint under the databases heading links to the setting. Once on, an Open Food Facts chip on the databases heading turns them back off in one tap, and it is the same setting as the one in Settings, so it stays on wherever you turned it on. Photo and barcode sit under the field as buttons and voice moved into the field itself; the note sheet, saved meals, manual entry, copy from day, active burn and the analysis queue moved under "More options"
• Tracker quick-entries live behind a Trackers button: water, caffeine and nicotine +1 chips open from a fourth button next to Photo and Barcode, replacing the standalone Trackers section above the results. Turning a tracker off, or deleting all of its presets, hides its row instead of leaving an empty block
• Your saved meals are on the Add Food sheet itself: the Recents, Frequent, Favorites and Recipes tabs now sit right in the sheet with their lists, instead of behind another tap. They occupy exactly the space the search results use, so typing swaps the list contents without resizing the sheet and shoving the input field around mid-word. Scrolling a long list grows the sheet to show more, and only when there is actually more worth showing
• AI analysis is now something you ask for, not the only way in: the Analyze action sits in the search field itself, so a food you have already logged or one the databases know is a single tap and costs nothing, while free-text estimation is one tap on the field's Analyze button, or the Done/Send key on your keyboard
• Higher ceilings for AI response length and read timeout: the max response length setting now reaches 16000 tokens (was 8000) and the read timeout 900 seconds (was 300), so long replies from local models fit in one answer
• Food database results arrive without waiting for the network: the bundled USDA and Swiss results used to wait for the Open Food Facts request to finish, so on a plane or a bad connection you waited on a request that could not succeed. Your saved foods and the bundled databases now appear immediately, and Open Food Facts results join when they arrive if you switched them on. A slow or unreachable Open Food Facts no longer holds anything else back, and the lookup gives up after a few seconds instead of retrying for as long as a minute
• Packaged-food search is leaner on Open Food Facts: searching packaged foods now uses Open Food Facts' dedicated search engine, which answers in one request and handles typos and brand names better, German ones included. One search is capped at four requests, and when Open Food Facts reports rate limiting, search pauses for a minute instead of piling on. Requests carry the app name, version and a contact address, per their usage policy
• Food review and edit take less scrolling: serving on Android starts as one row; tap to open the quantity and unit wheels. Ask AI to correct is a compact prompt without the correction chips
• Caffeine and nicotine Save stays on screen: custom, edit, and drink-editor sheets keep Save pinned when the keyboard is up, so tap-to-type on the wheels does not hide it
• Scanning the same product twice no longer forks its saved entry: relogging a packaged product, or analyzing the same meal by name twice, now reuses the existing saved food, so its history stays in one place. Each log still gets its own diary row. Manually logging two different foods that share a name still gets numbered to keep them apart
• Long meal lists no longer fail on local AI models: an entry with many ingredients asked for the largest answer schema, and models that spend much of their token budget on hidden reasoning came back cut off mid-answer, so the whole entry failed. The analysis now retries once with a smaller macros-only schema, and an answer that ends without a finish signal gets one clean retry. Models that handle the full schema keep their micros
• The response-length error names the fix: when a model runs out of response length mid-answer, the error now says what to do: raise the max response length or limit thinking, instead of the generic could-not-understand reply
• Very long lists split into batches instead of failing: when a long ingredient list still fails after the automatic retries, the app now sends it in batches of four items and merges the answers into one entry with every item's nutrition, instead of failing the whole entry
• Deleted caffeine and nicotine presets stay deleted: deleting a tracker's last preset brought the whole built-in list back, and deselecting the last quick-entry chip snapped the selection back to defaults. Empty is now a valid state for both, and it survives restarts and reseeds
