Chompass

app.chompass
by Zapstore _@zapstore.dev

Republished from GitHub / F-Droid by the Zapstore main account.

First release: Aug 10, 2026, 38 total releases.

Most recent release: Sep 25, 2026.

Website Repo

Appears in 0 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Sep 25, 2026 5.3.0
    ### Added - **Quick chips for caffeine and nicotine can be turned off** (web): *Settings → App & Display → Home display* lists the quick chips for each tracker. Uncheck the ones you never use and the diary card shows only the ones you log. - **Scroll wheels in the custom caffeine and nicotine dialogs** (web): picking an amount is a scroll instead of a typed number, matching Android. The nicotine dialog takes the count and an optional mg value, and caffeine spans 0 to 500 mg. - **Remove a logged food photo with an X** (Android): the edit sheet puts an X on the photo. Tap it, then Save to drop the photo; Cancel keeps it, and the meal details stay as they are. ### Changed - **Customize Progress reads as an entry** (Android): the link at the top of the Progress tab is now a full row with icon and chevron instead of a small right-aligned text link.
    More…
    ### Fixed - **Untracked-day chips are translated in 16 languages** (Android): "Not tracked", "Mark day", and their TalkBack labels fell back to English in Arabic and most other languages, and the Today label did too. All of them now show in the app language.
  • Sep 25, 2026 5.2.1
    ### Fixed - **The web Home loads again after the 5.2.0 update** (web): installs that had opened the app before the untracked-days feature threw a database error and rendered an empty Home screen; Progress, Coach, and Settings kept working. The database upgrade now creates the store the feature expects, so Home and the diary render again with all data intact. Fixes Codeberg [#112](https://codeberg.org/fitguy/Chompass/issues/112) by [@sbandoalleciance](https://codeberg.org/sbandoalleciance). - **Fat shows G in Brazilian Portuguese** (Android + web): the quick macro letters are initials, and F for fat read as fiber where fat is Gordura. The letters now follow the app language, so Brazilian Portuguese shows G for fat while the other languages keep their initials. Follows Codeberg [#111](https://codeberg.org/fitguy/Chompass/issues/111) by [@lucasmz](https://codeberg.org/lucasmz). - **Typed descriptions carry into photo notes** (Android): text entered in Add Food now appears in the photo note when you add a photo.
  • Sep 24, 2026 5.2.0
    ### Added - **More OpenAI models in the picker** (Android + web): choose GPT-5.6 Sol, Terra, or Luna, or GPT-6 Sol or Luna from the built-in model list. Follows Codeberg [#107](https://codeberg.org/fitguy/Chompass/issues/107) by [@NuperSu](https://codeberg.org/NuperSu). - **The OpenAI model list refreshes itself** (Android): opening the model picker pulls the current GPT lineup from OpenAI with your saved key, so new models show up without an app update. Offline or without a key it uses the built-in list. - **Day-type colors across the week strip and Progress charts** (Android): each day-type profile can pin a color from an 8-swatch preset. The hero chip and the week strip show it, untracked days get a hollow marker on a muted tile, and every Progress chart gains a marker lane: per-day dots, week buckets past 90 days, and dashes for untracked days. The web app round-trips the color, and entries without one keep the stable auto color. - **The web entry form warns about stale ingredient estimates** (web): editing the ingredients of an AI-analyzed meal dims a note that the vitamin and mineral values belong to the previous mix, matching Android. ### Changed
    More…
    - **Saving is instant, Health Connect catches up in the background** (Android): manual saves, saved-meal relogs, and recipe logs write the diary first and mirror to Health Connect behind the scenes, so the sheet dismisses right away. Home shows a snackbar once per session while queued writes are still retrying. Planned meals no longer queue Health Connect retries at all, and Log now stays the confirm path. - **A named weigh-as-you-go meal keeps the last photo as its thumbnail** (Android): the diary and Saved Meals show the finished plate instead of the first ingredient shot. Unnamed drafts keep per-item photos, and the emoji stays first-wins. - **API key fields ask you to paste** (Android + web): placeholders that mimicked a filled key, like AIza... or sk-..., are gone. The onboarding key step, the Settings AI key sheets, the speech key sheet, and the web Settings field now show "Paste your API key". - **Untracked and import sheets match the other review sheets** (Android): they share the same toolbar and save bar, and queue thumbnails show a loading state instead of the missing-photo icon while a photo decodes. - **Haptics on wheels, Save, Undo, and plan placement** (Android): wheel pickers tick as a value settles, and Save, the Undo actions, and placing a meal on a future day give a short buzz. - **Serving edits settle on Save instead of every keystroke** (Android): typing an amount keeps the wheel and the text in sync while calories and macros wait, so intermediate digits no longer rescale the row. The result applies when you save, leave the field, or switch the unit. ### Fixed - **Open Food Facts requests stop at 8 seconds** (Android): searches and lookups could hang for tens of seconds on a slow connection. Every request now gives up at 8 seconds and search moves to its next attempt. - **A language chosen in system Settings survives a restart** (Android): with the in-app language left on System, a cold start could wipe the per-app language picked in the system settings. - **The calorie wheel covers kJ amounts** (Android): the wheel clamped the display-unit value at 5000, which kJ users hit around 1200 kcal of food. It now spans the converted equivalent, and kcal users are unchanged. - **TalkBack reads inspected chart values** (Android): inspecting a point on a Progress chart announces the metric, date, and value, and taps past the last bar's right edge no longer select it. - **Caffeine totals follow the system locale** (Android): numbers format the way the phone formats them, and the tracker card uses its own color. - **Coach voice failures show up in chat** (Android): a denied microphone permission or a failed transcription now surfaces in the chat error row instead of disappearing, and the image-only send prompt is translated. - **Review photos use less memory** (Android): photos in the review sheet decode size-bounded with rotation applied, like the home pipeline, instead of loading a full-size bitmap. - **The plan week window shows loading and retry** (Android): it used to paint seven empty day sections until the data arrived, and nothing at all when the read failed. A spinner shows while loading, and a Retry row appears on failure. - **Small controls meet the 48 dp touch target** (Android): steppers, pickers, sheet icons, and the log-now check are easier to tap and announce themselves. The onboarding provider controls gained selection semantics, the API-key test shows a checking indicator while it runs, and the Progress customize chip meets the target too. - **Review-sheet polish** (Android): the serving hint returns under the unlocked serving card, the empty-diary text no longer flashes before the first load, and body measurements ask for a height when derived numbers are missing. - **Fat reads as a floor on Home** (Android + web): passing the fat target shows a calm "Minimum met" instead of the over wording, and the card no longer takes the over color. Follows Codeberg [#109](https://codeberg.org/fitguy/Chompass/issues/109) by [@OlivierM16](https://codeberg.org/OlivierM16). - **Day-type colors are translated everywhere** (Android): the color names and the week-strip accessibility label ship complete in German, Spanish, French, and Polish.
  • Sep 21, 2026 5.1.1
    ### Added - **Untracked days** (Codeberg #106): mark any diary day as not tracked. It shows a distinct chip, stays out of averages, trends, the weight forecast, and adaptive goals, and does not fire the streak reminder. Optional rough calories stay on the day for your record only. Diary JSON export is now 1.6 so the flag round-trips on Android and the PWA. - **Undo for day-type switches** (Android): switching a day between Training and Rest shows an Undo chip. One tap brings back the day type you switched from, and today's targets return with it. - **Progress shows the update check again** (Android): the app checks Codeberg once per start for a newer release and flags it on the About tab badge. Nothing app-specific is sent: one anonymous request for the latest release tag, compared on the phone. The About row opens the Codeberg releases page, which also carries direct APK downloads. - **Read exact values off the Progress charts** (Android): tap a weight, body fat, measurement or calorie chart and a tag pins the date and value at that point. Tap the same spot again to dismiss it. - **Progress sections collapse** (Android): the header of every Progress card (weight and body fat, measurement plots, calories, macro and nutrient averages, activity, wellness) folds its content away. Each card remembers its state when you leave the tab. - **The typed analyze prompt survives Cancel** (Android): closing the Type it out sheet keeps what you typed, so a stray dismiss no longer costs the whole meal description. Submitting clears it.
    More…
    ### Changed - **Goal pickers go past the wheels with a numpad** (Android): tapping the picked value opens a numpad, so exact and off-grid amounts are a few taps instead of spinning. Unusually high amounts ask for a confirmation before saving. The separate custom-value field is gone; the enter-custom link only appears where typing genuinely reaches beyond the wheels, like therapeutic vitamin D doses. - **Every wheel picker sheet has a Cancel** (Android): the settings wheel sheets open on the saved value, and nothing changes until Save. Cancel, scrim tap, or back leaves the stored value in place. - **Amount edits either scale the entry or leave the numbers alone** (Android): with the numbers locked, which is the default, correcting the weight moves calories and macros with it. Unlock the numbers and a weight change leaves them as they are while you edit them. Follows Codeberg [#105](https://codeberg.org/fitguy/Chompass/issues/105) by [@BrassCat](https://codeberg.org/BrassCat). - **Nutrient wheels go past 999.9** (Android): sodium and other micros can now be entered up to 9999.9, so a high-sodium fast food is one entry instead of being capped. Follows Codeberg [#104](https://codeberg.org/fitguy/Chompass/issues/104) by [@bluepostofficebox](https://codeberg.org/bluepostofficebox). - **Coach confirmation replies use your language** (Android): after you accept or dismiss a food, weight, or water log from the coach, the follow-up line is translated instead of staying English. - **Meal type sits under the food name on more sheets** (Android): editing a favorite and adding a food by hand now put meal type right after the name, then serving, matching the review and edit sheets. - **Open Food Facts results use the labeled serving** (Android): picking a packaged food opens the review on that product's serving when Open Food Facts has one. If it does not, the amount stays in grams instead of inventing a 100 g serving. - **Planned meals match logged-row height** (Android): the Planned label sits next to the time, and Log now is a check on the row plus an action on the edit sheet. The calorie arc and macro bars show planned amounts as a fainter fill under what you have already eaten. ### Fixed - **Relogging a saved meal uses the current meal slot** (Android): opening a recent or favorite from last night no longer starts the review on Evening when you log it in the morning. The slot follows the time you are logging, and you can still change it. When Suggest meals by time of day is off, the saved slot is kept. Follows Codeberg [#102](https://codeberg.org/fitguy/Chompass/issues/102) by [@Ir0nhid3](https://codeberg.org/Ir0nhid3). - **Typed nutrient amounts save** (Android): typing a micro on the numpad and hitting Save on the food sheet keeps that number. Switching back to the wheel is no longer required. - **Marking a day not tracked shows on Home** (Android): Save used to sit under the navigation bar, and the chip did not update until a later refresh. The button is reachable, and the chip switches as soon as you save. - **Streamed answers no longer overwrite your edits** (Android): while an analysis streams into the review sheet, fields you already edited keep your numbers. - **Wheel pickers work with TalkBack** (Android): rows carry their labels, and the picker announces which value is selected. - **The home widget keeps today's totals after midnight** (Android): a same-day write right after midnight used to show 0 or stale kcal until the app restarted. - **The review sheet opens reliably** (Android): a state dedupe could swallow the pending-review update after a scan, leaving the sheet closed. - **Small controls are easier to tap** (Android): the review sheet's lock button and the Add Food search gear meet the 48 dp touch target. - **AI errors speak your language** (Android): failed analyses, coach replies, Mealie imports and goal recalculations now show the localized message instead of raw provider text like Failed to connect. The recalculate-goals alert is no longer fixed English. - **Your place survives a share or shortcut** (Android): sharing a photo into the app or starting a shortcut used to drop the screen you were on. It is saved now and comes back when you tap its tab. - **Back works after a coach deep link with the tab off** (Android): opening chompass://go/coach while the coach tab is hidden landed on a stack whose back button bounced and left the app. It lands on Home with a working back button now.
  • Sep 16, 2026 5.1.0
    ### Added - **Meal planning marks future plans and logs them in one tap** (Android): turn on Settings → Food & Entry → Meal planning to plan ahead. Entries you save onto an upcoming day get a Planned chip in the diary and still count toward that day's totals. One tap on Log now turns a plan into a normal entry on today, with the meal slot picked by the current time when meal suggestions are on. Plans are never written to Health Connect until you log them. Follows Codeberg [#96](https://codeberg.org/fitguy/Chompass/issues/96) by [@sbandoalleciance](https://codeberg.org/sbandoalleciance). - **Saved meals and recipes can be placed on a day** (Android): rows in the Add Food list carry a Plan button while meal planning is on. Pick a day in the dialog and the meal is placed there as a plan, with a confirmation note. Relogging from the same list stays a normal entry for today. Follows Codeberg [#102](https://codeberg.org/fitguy/Chompass/issues/102) by [@Ir0nhid3](https://codeberg.org/Ir0nhid3). - **Plan the week on one canvas** (Android): the Add Food More menu gains Plan week, a seven-day view of your diary. The + on each day opens your saved meals, frequents, favorites and recipes; picking one places it as a plan on that day. Planned rows carry the Planned chip. Tap a chip to open that day on Home, long-press to remove a row. The window shifts a week at a time within the eight-week limit. ### Changed - **Open Food Facts search starts on** (Android): the Add Food search now looks in Open Food Facts by default, alongside the foods on your phone and the bundled USDA and Swiss databases, so a brand name finds the packaged product without a detour into Settings. What you type stays on the phone until that source is on. Switching it off is one tap on the databases heading in the search, or the switch in Settings → Food & Entry → Search food databases. Foods you already logged keep their source badge either way.
    More…
    ### Fixed - **Custom endpoints list their models** (Android): the model picker for a custom OpenAI-compatible endpoint now fetches the server's model list; typing an ID still works. Follows Codeberg [#103](https://codeberg.org/fitguy/Chompass/issues/103) by [@alzari555](https://codeberg.org/alzari555). - **The on-device memory reserve can be tuned** (Android): when analysis is refused on a phone with little free memory, the model sheet has an advanced setting to lower the reserve. Follows Codeberg [#46](https://codeberg.org/fitguy/Chompass/issues/46) by [@invisibleman](https://codeberg.org/invisibleman) and [@marcelklehr](https://codeberg.org/marcelklehr). - **Photo scans stop wandering and hanging on Gemini** (Android): requests to Gemini now ask for a JSON answer, tell the model how much it may think, and carry your response-length limit, so scans come back as an answer instead of stalling until the timeout. Ports the reliability fix from upstream Fud AI. - **Photos upload as real JPEGs** (Android): a shared HEIC, PNG or WebP photo used to be sent to the AI labeled as JPEG, which could stall the analysis, and sideways portrait photos stayed sideways. Photos are converted to JPEG before upload with the rotation applied, and a photo that cannot be converted now shows a clear error instead of hanging. - **A failed multi-photo scan keeps all its photos after a restart** (Android): retrying a scan that failed while the app was killed in the background used to lose every photo but the first. - **Back out of Settings opened from the Add Food search** (Android): the databases heading link used to leave the Add Food sheet open behind the settings screen, so the back button flickered the sheet up and left you in Settings. The sheet closes on the way out now, and back leaves the screen the way the back arrow does.
  • Sep 15, 2026 5.0.0
    ### Added - **Choose which food databases search looks in** (Android): 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** (Android + web): 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. Follows Codeberg [#96](https://codeberg.org/fitguy/Chompass/issues/96) by [@sbandoalleciance](https://codeberg.org/sbandoalleciance). - **Custom caffeine and nicotine drinks** (Android): 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. Codeberg [#55](https://codeberg.org/fitguy/Chompass/issues/55) by [@DontBlameMe](https://codeberg.com/DontBlameMe). - **Show energy in kilojoules** (Android + web): 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. Follows Codeberg [#100](https://codeberg.org/fitguy/Chompass/issues/100) by [@andyzukunft](https://codeberg.org/andyzukunft). - **Control how much the model thinks on custom endpoints** (Android): 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. Follows Codeberg [#97](https://codeberg.org/fitguy/Chompass/issues/97) by [@mik112](https://codeberg.com/mik112). - **Scanning an unknown barcode offers to add the product** (Android + web): 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.
    More…
    ### Changed - **Adding food is one search field instead of a wall of buttons** (Android): 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". Follows Codeberg [#94](https://codeberg.org/fitguy/Chompass/pulls/94) by [@armen-kocharyan](https://codeberg.org/armen-kocharyan). - **Tracker quick-entries live behind a Trackers button** (Android): 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** (Android): 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** (Android): 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** (Android): 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. Follows Codeberg [#97](https://codeberg.org/fitguy/Chompass/issues/97) by [@mik112](https://codeberg.com/mik112). - **Food database results arrive without waiting for the network** (Android): 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** (Android): 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** (Android + web): 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** (Android): 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. ### Fixed - **Scanning the same product twice no longer forks its saved entry** (Android): 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. Closes Codeberg [#98](https://codeberg.org/fitguy/Chompass/issues/98) by [@mik112](https://codeberg.org/mik112). - **Long meal lists no longer fail on local AI models** (Android): 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. Closes Codeberg [#97](https://codeberg.org/fitguy/Chompass/issues/97) by [@mik112](https://codeberg.org/mik112). - **The response-length error names the fix** (Android): 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. Follows Codeberg [#97](https://codeberg.org/fitguy/Chompass/issues/97) by [@mik112](https://codeberg.com/mik112). - **Very long lists split into batches instead of failing** (Android): 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. Follows Codeberg [#97](https://codeberg.org/fitguy/Chompass/issues/97) by [@mik112](https://codeberg.com/mik112). - **Deleted caffeine and nicotine presets stay deleted** (Android): 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.
  • Sep 14, 2026 4.10.0
    ### Changed - **Meal type and time sit under the food name** (Android): on add and edit, meal and time come right after the name, then serving. Edit also keeps date there. They used to sit below nutrition. - **Mealie import matches other sheets** (Android): Cancel is in the title bar, the API token is masked, long recipe names ellipsize, and an http:// host with Allow insecure HTTP off uses the same localized error as other AI calls. - **Nutrition details uses Cancel** (Android): the meal or day nutrition sheet no longer has a Done button. Cancel and swipe dismiss it like other read-only sheets. ### Fixed - **Notifications show the app mark in the status bar** (Android): the small icon used the full launcher icon, which Android flattens into a blank tile when it tints. It now uses the plain mark. - **A damaged data file no longer risks erasing your history** (Android): if a stored month file or preference ever fails to read, the app keeps showing what it can and copies the unreadable bytes aside before saving anything over them, instead of silently replacing them with the next entry. A damaged settings file no longer crash-loops the app on launch. Ports the data-loss fix from upstream Fud AI (PR #296).
    More…
    - **Meals no longer go missing from Health Connect after a hiccup** (Android): if the Health Connect service was briefly unreachable (mid-update, cold start), the mirror write was skipped with no retry, so the diary and Health Connect drifted apart and a reinstall rebuilt an incomplete food log. Unconfirmed writes are now queued and retried on the next sync, retries cannot duplicate a record that did land, and deleting an entry can no longer be undone by a late write. Ports the fix from upstream Fud AI (#204, #312). - **Your settings edits are not undone by a background refresh** (Android): saving a value such as the water cup size right as the app re-read its settings from storage could snap the row back to an older number. Edits made while the app refreshes now win. Follows Codeberg [#92](https://codeberg.org/fitguy/Chompass/issues/92) by [@joe455555](https://codeberg.org/joe455555). - **A late time change on the review sheet still logs** (Android): changing Time and tapping Log in one motion could save the earlier time. The picked time now survives further edits and a late change through Log. Follows Codeberg [#93](https://codeberg.org/fitguy/Chompass/issues/93) by [@smg950u](https://codeberg.org/smg950u). - **Analysis no longer fails when the AI provider cuts its reply short** (Android): under heavy load, the default Gemini model sometimes stopped its answer midway, which showed as "Could not understand the AI response". The app now detects a cut answer and asks the model again in one request, and a reply the provider cut short now says so instead of the generic error. Follows Codeberg [#68](https://codeberg.org/fitguy/Chompass/issues/68) by [@Ludisc](https://codeberg.org/Ludisc) and [@mbethke](https://codeberg.org/mbethke). - **Re-run works on finished and failed queue entries** (Android): the Play button on an entry in the analysis-queue history did nothing. It now runs that entry again, whether it failed earlier or succeeded. Follows Codeberg [#99](https://codeberg.org/fitguy/Chompass/issues/99) by [@mik112](https://codeberg.org/mik112). - **Long ingredient lists no longer fail with local AI models** (Android + web): models that reason before answering wrapped their thinking into the reply, which showed as "Could not understand the AI response". Thinking is now stripped from the reply before it is read, and replies that list each ingredient get a higher response-length floor so a long list is not cut short at the default cap. Follows Codeberg [#97](https://codeberg.org/fitguy/Chompass/issues/97) by [@mik112](https://codeberg.org/mik112). - **On-device AI runs with less free memory** (Android): the safety margin kept in reserve before loading the on-device model was still sized for smaller phones and refused everyday use on 8 GB devices. The margin now scales down with the phone's memory. Follows Codeberg [#46](https://codeberg.org/fitguy/Chompass/issues/46) by [@marcelklehr](https://codeberg.org/marcelklehr) and [@invisibleman](https://codeberg.org/invisibleman). - **On-device AI works in release builds** (Android): analysis with an on-device model crashed the app in builds from F-Droid or Codeberg, on every model, while the same code built from Android Studio worked. The release optimizer renamed internals that the on-device engine reads by name; those names are now preserved. Follows Codeberg [#101](https://codeberg.org/fitguy/Chompass/issues/101) by [@dadus33](https://codeberg.org/dadus33). - **The calorie ring still shows today's burn after you eat past the base budget** (Android): the live and typical burn shades stay on top of the eaten fill, so they do not disappear once intake covers that part of the arc. - **Trailing arrows flip in right-to-left languages** (Android): More Nutrition, What-if, View more, and similar carets point with the reading direction. - **Trackers and Customize Progress are clearer with TalkBack** (Android): the Add Food Trackers row announces Expanded or Collapsed. Customize Progress on the Progress tab is a 48 dp button and is read once.
  • Sep 9, 2026 4.9.0
    ### Added - **Import recipes from Mealie** (Android): Saved Meals → Recipes has an import button. Enter your self-hosted Mealie URL and an API token, pick recipes, and they land as named meals. Nutrition comes along when Mealie has it. Re-importing the same recipe updates it instead of duplicating. Follows Codeberg [#85](https://codeberg.org/fitguy/Chompass/issues/85) by [@voegly](https://codeberg.org/voegly). ### Fixed - **The time on a new food is the time you picked** (Android): changing Time on the review sheet after analysis now logs that clock time. Follows Codeberg [#93](https://codeberg.org/fitguy/Chompass/issues/93) by [@smg950u](https://codeberg.org/smg950u). - **Editing one ingredient no longer moves the others** (Android + web): changing an ingredient's grams updates that row and the meal total, and leaves the rest as they were. Follows Codeberg [#91](https://codeberg.org/fitguy/Chompass/issues/91) by [@vandelli](https://codeberg.org/vandelli). - **Water drink reminders open and keep the window you saved** (Android): Drink Reminders on the Water screen opens the drinking-window sheet in one tap when reminders are on. Saving start, end, and cup size writes them together, so the rows do not stick on the old values until you restart. Follows Codeberg [#92](https://codeberg.org/fitguy/Chompass/issues/92) by [@joe455555](https://codeberg.org/joe455555).
  • Sep 8, 2026 4.8.0
    ### Added - **Home shows Today or the date you are viewing** (Android): a line above the calorie ring reads Today, or the selected date. Tap the date to jump back to today. - **Turn off meal suggestions by time of day** (Android): Settings → Food & Entry has a Suggest meals by time of day switch. When it is off, new logs start as Other instead of guessing Lunch or Dinner from the clock. Relog and Copy from day keep the original meal. Follows Codeberg [#88](https://codeberg.org/fitguy/Chompass/issues/88) by [@BrassCat](https://codeberg.org/BrassCat). - **Ollama lists the models on your computer** (Android): opening the model picker fetches names from your Ollama server. If the host cannot be reached, the default list stays, and you can still type any model ID. - **A note when ingredient edits leave vitamins stale** (Android): More Nutrition warns when the meal's ingredients no longer match the AI estimate. Re-estimate on the diary edit sheet runs a new analysis. ### Changed
    More…
    - **A named meal in the builder now logs as one food** (Android + web): leave the name empty to log each ingredient, or type a name to save one food with those ingredients listed inside it. Relogging and scaling then apply to the whole meal. Follows Codeberg [#91](https://codeberg.org/fitguy/Chompass/issues/91) by [@vandelli](https://codeberg.org/vandelli). - **On-device AI food analysis is faster and more reliable** (Android): the on-device model now returns the core nutrition for a food without the long micronutrient list, cutting its response roughly in half. This means fewer "Could not understand the AI response" errors on phones where the reply previously ran long. Micronutrient estimates remain available with cloud providers. Follows Codeberg [#68](https://codeberg.org/fitguy/Chompass/issues/68) by [@Ludisc](https://codeberg.org/Ludisc) and [@mbethke](https://codeberg.org/mbethke). - **Add Food recents show the meal type** (Android + web): each recent chip includes Lunch, Dinner, or the custom meal name. The web add-meal list uses the localized label. - **Trackers on Add Food collapse when several are on** (Android): with three or more of water, caffeine, nicotine, and fasting enabled, that section starts collapsed so Photo and barcode stay near the top. Tap Trackers to expand. - **Tracker and note sheets match other sheets** (Android): water, caffeine, nicotine, fasting, and note sheets use the same Cancel title bar and gradient Save as food sheets. ### Fixed - **Long names and large fonts no longer hide buttons** (Android): the recovered-analysis and paste chips on Home, meal headers, saved meal rows, the activity level row, and dialog buttons now truncate their label instead of pushing the close, log, or chevron controls off the row. The day type mode chips wrap to a second line instead of clipping. - **The water tracker uses one color** (Android): the water card's progress bar, Auto badge, and next-drink line now use the water color like its icon, instead of the app accent. - **Screen reader labels for the steppers** (Android): the plus and minus buttons for the Home nutrient card count and step goal now announce themselves. - **Fasting Start and Stop are easier to tap** (Android): those buttons meet the 48 dp touch target.
  • Sep 7, 2026 4.7.0
    ### Added - **Product photos and an info card for barcode foods** (Android + web): scanning a barcode now shows the product's front photo from Open Food Facts in the review sheet, plus an info card with package size, ingredients, Nutri-Score, NOVA group, Eco-Score, allergens, labels, and categories. When the package size is known, the serving picker offers the whole package as a unit. A credit line names Open Food Facts contributors and the CC BY-SA 3.0 license, and opens the product page. The photo and card stay on your device: they are not included in exports or sync. ### Fixed - **A late-night dinner now saves** (Android + web): setting Dinner to a time after midnight, such as 2:00, used to fail the meals editor check because the slot list still ran breakfast, lunch, dinner, snack. Start times are checked around the clock, so a 2am dinner in the usual meal order saves. Follows Codeberg [#88](https://codeberg.org/fitguy/Chompass/issues/88) by [@BrassCat](https://codeberg.org/BrassCat). - **Barcode review keeps the product name and photo** (web): looking up a barcode with extra product details used to open a blank Log food form. The review now shows the name, photo, product card, and serving or package units. - **Barcode product photos show the whole pack** (Android + web): the front photo sits in a wide letterbox instead of a cropped square, so a jar or bottle is not zoomed or squeezed. Tapping the photo opens the Open Food Facts product page.
  • Sep 6, 2026 4.6.1
    ### Fixed - **On-device photo analysis no longer refuses healthy free memory** (Android): the free-memory check before a photo analysis asked for a fixed extra margin that was sized for smaller phones, so phones with more RAM could be told "not enough memory" even when the analysis would have run fine. The margin now scales with the phone's memory. Follows Codeberg [#46](https://codeberg.org/fitguy/Chompass/issues/46) by [@marcelklehr](https://codeberg.org/marcelklehr) and [@invisibleman](https://codeberg.org/invisibleman). - **The Meals editor no longer loses edits without a word** (Android): meal time edits made in the time picker looked saved, but closing the sheet without the Save button at the bottom threw them away silently. The sheet now asks before discarding unsaved changes. Follows Codeberg [#88](https://codeberg.org/fitguy/Chompass/issues/88) by [@BrassCat](https://codeberg.org/BrassCat). - **Changing the amount on a relogged meal now scales its nutrition** (Android): reopening a saved meal before logging it ignored amount changes when the meal had no stored weight, so the values only updated after saving once. Amount edits now scale the nutrition right away whenever the meal's unit (slices, cups, and the like) says how much was originally eaten. Follows Codeberg [#89](https://codeberg.org/fitguy/Chompass/issues/89) by [@BrassCat](https://codeberg.org/BrassCat). - **Coach with Search Grounding works on Gemini 3 models again** (Android): asking the coach anything while Google Search grounding was on failed with a provider error on Gemini 3 models, because the request did not allow the search tool to run beside the app's own tools. The request now allows both together. Follows Codeberg [#90](https://codeberg.org/fitguy/Chompass/issues/90) by [@smg950u](https://codeberg.org/smg950u).
  • Sep 4, 2026 4.6.0
    ### Added - **Meal nutrition vs your daily goals** (Android + web): tap a meal name on Home (Lunch, Dinner, and the rest) to see that slot's totals the same way as the day sheet, now with a percent of each daily goal. View more still opens the whole day. Follows Codeberg [#87](https://codeberg.org/fitguy/Chompass/issues/87) by [@bergieberg](https://codeberg.org/bergieberg). - **Vitamins and minerals for each ingredient** (Android + web): meals broken into ingredients (chicken, rice, and the rest) can now show each ingredient's estimated fiber, sugars, vitamins, and minerals, with a percent of your daily goal. Open a meal's nutrition on Home, or expand an ingredient in the review and edit sheets. The ingredient values are labeled as estimates and may not add up exactly to the meal totals. Estimates arrive from the AI analysis when the meal's ingredient breakdown is on. Follows Codeberg [#86](https://codeberg.org/fitguy/Chompass/issues/86) by [@bergieberg](https://codeberg.org/bergieberg). - **Accidentally dismissed meal reviews can be recovered** (Android): swiping the review sheet away before logging no longer throws the analysis away. Home shows a recovered analysis chip with the food's name; tap it to bring the review back without a new AI call, or close the chip to discard it for good. ### Changed - **Gemini 3.8 Flash is the default AI model** (Android + web): new installs and anyone who never picked a model now get Google's newest Flash for photo and text analysis. The fallback model stays Gemini 3.5 Flash-Lite, and 3.7 Flash is still in the model list.
    More…
    ### Fixed - **Meal schedules that cross midnight now save** (Android + web): the meals editor used to quietly put every meal time back to the defaults when the start times did not run in a plain morning to night order, for example a night shift plan with a meal after 0:00. Start times may now wrap past midnight, and when a schedule still cannot be saved the editor says so instead of silently restoring defaults. Follows Codeberg [#88](https://codeberg.org/fitguy/Chompass/issues/88) by [@BrassCat](https://codeberg.org/BrassCat). - **Changing an ingredient amount now scales its vitamins and minerals** (Android): in the review, edit, and favorite sheets, editing an ingredient's quantity updated only its calories and macros; the vitamin and mineral values now follow the new amount. - **Multi-ingredient meals no longer come back cut off on length-capped AI providers** (Android + web): with the default response length, Anthropic, OpenAI-compatible, and local Ollama models could return a truncated reply for meals broken into ingredients, which then failed with a truncation error. Those requests now get a higher response allowance while ingredient breakdown is on; your own response length setting still applies when it is higher. - **Ingredient nutrition now behaves the same on the web app as in the app** (web): negative or oversized vitamin and mineral values in an imported file are handled the same as on Android, present zero values show as 0 instead of a dash, and a file with text where a number belongs no longer breaks the nutrition sheet. - **Imported ingredient vitamins and minerals are cleaned** (Android): diary and sync imports now validate ingredient micro values, so a hand-edited file can no longer show a negative amount.
  • Sep 3, 2026 4.5.0
    ### Added - **Notice when a backup replaces your data** (Android): after a reinstall, Android can restore an older backup over the profile you just set up. The app now shows a one-time Backup restored dialog so that replacement is visible. Dismissing it remembers the notice until another restore happens. Follows Codeberg [#60](https://codeberg.org/fitguy/Chompass/issues/60) by [@Ir0nhid3](https://codeberg.org/Ir0nhid3). ### Fixed - **Log meal stays on screen in the meal builder** (Android): with five or more ingredients the Log meal and Add another row sat below the fold with no way to reach it. The sheet now caps its height, the ingredient list scrolls, and those buttons stay pinned. Closes Codeberg [#84](https://codeberg.org/fitguy/Chompass/issues/84) by [@BrassCat](https://codeberg.org/BrassCat). - **Save and Log stay visible at large font size** (Android): on a narrow screen with a large system font, long labels could hide the primary button on recipe builder and copy-from-day. The primary pill now keeps a visible single line; the title and secondary label yield first. - **Long sheets keep their action buttons reachable** (Android): importing a shared meal, a long daily or context note, the fasting goal sheet, and live voice transcript no longer push Save, Add, or Analyze off the screen.
  • Sep 1, 2026 4.4.0
    ### Added - **Choose which nutrients Progress averages** (Android + web): Customize Progress (web: Settings, App) now lists every nutrient with a goal, each with a switch. Turn on iron, saturated fat, or vitamins and the averages card on Progress shows those rows. The fiber, sugar, and sodium trio stays as the default, so nothing changes until you pick. Past months count these nutrients from your existing logs. Follows Codeberg [#75](https://codeberg.org/fitguy/Chompass/issues/75) by [@bluepostofficebox](https://codeberg.org/bluepostofficebox). ### Fixed - **Weight keeps the pounds you picked** (Android): weight was stored rounded to a tenth of a kilogram, so a pounds pick could come back different: 275 lbs showed 274.9, and 151.6 or 171.6 could shift by 0.1. Storage now keeps finer detail, and every tenth of a pound reads back exactly. Kilogram entries are unchanged. Closes Codeberg [#82](https://codeberg.org/fitguy/Chompass/issues/82) by [@bluepostofficebox](https://codeberg.org/bluepostofficebox). - **Onboarding no longer wipes macro day types** (Android): finishing onboarding used to save a fresh default profile, which could drop settings onboarding doesn't ask about: macro day types, macro locks, the protein grams-per-kilo mode, and the name. Onboarding now keeps those and only writes the body stats and goal answers you entered. - **Logged active burns always count** (Android + web): Add Food → Active burn now adds those calories to that day's goal even when the calorie gauge is set to Static goal. The static gauge still ignores automatic burn from Health Connect or the activity estimate, and a burn only affects the day it was logged on.
  • Aug 31, 2026 4.3.0
    ### Added - **Saved meals from Add Food** (Android + web): a Saved meals row opens Recents, favorites, and recipes. The compact chips stay. The extra Recents tile is gone. Closes Codeberg [#76](https://codeberg.org/fitguy/Chompass/issues/76) by [@BrassCat](https://codeberg.org/BrassCat). - **Progress averages for fiber, sugar, and sodium** (Android + web): off until you turn them on in Customize Progress. A warning explains that Open Food Facts often omits them and photo analysis can guess. Closes Codeberg [#75](https://codeberg.org/fitguy/Chompass/issues/75) by [@bluepostofficebox](https://codeberg.org/bluepostofficebox). - **Saved Meals review explains Log vs the pencil** (Android + web): a one-line hint says Log adds a diary meal, and the pencil on a favorite edits the saved food. - **Edit or delete a logged active burn** (Android + web): Add Food → Active burn now lists that day's named logs. Tap a row to change the name or calories, or delete it. Closes Codeberg [#74](https://codeberg.org/fitguy/Chompass/issues/74) by [@bluepostofficebox](https://codeberg.org/bluepostofficebox). - **Meal time uses a compact hour:minute wheel** (Android): tap Time on Edit Food for a small 00:00 wheel. Tap the number to type. The last choice is remembered. Closes part of Codeberg [#77](https://codeberg.org/fitguy/Chompass/issues/77) by [@BitLicker000](https://codeberg.org/BitLicker000). - **System date and time pickers** (Android): Settings → App & Display has a toggle to use the phone's date and time dialogs when editing a meal. Off by default. Those dialogs follow dark mode. Closes part of Codeberg [#77](https://codeberg.org/fitguy/Chompass/issues/77) by [@BitLicker000](https://codeberg.org/BitLicker000).
    More…
    - **Apply a new meal time to the rest of the slot** (Android): Edit Food can copy the new date and time onto the other items in that meal. Closes the rest of Codeberg [#77](https://codeberg.org/fitguy/Chompass/issues/77) by [@BitLicker000](https://codeberg.org/BitLicker000). ### Changed - **Share uses the Android glyph** (Android): Edit Food share and Settings export no longer use the iOS share icon. - **Meals editor meets 48 dp and TalkBack** (Android): move, name, and start-time controls are large enough to tap and have labels for the screen reader. ### Fixed - **Saved AI server URL shows on the settings row** (Android): Settings → AI & Speech now shows the custom or Ollama URL you saved, and reopening the editor starts with that URL instead of a blank field. The fallback URL row does the same. Closes Codeberg [#52](https://codeberg.org/fitguy/Chompass/issues/52) by [@savionlee](https://codeberg.org/savionlee). - **Barcode calories stay in kcal when carbs are missing** (Android + web): scanning a product that lists calories but omits carbs no longer divides those calories by about 4. If Open Food Facts stores carbs under total carbohydrates, that value is used, and the search results show those carbs too. Closes Codeberg [#71](https://codeberg.org/fitguy/Chompass/issues/71) by [@Melati-Pohan](https://codeberg.org/Melati-Pohan). - **Add-another swipe returns to the in-progress meal** (Android): after the first ingredient is on the meal sheet, swiping down on the camera, photo note, or review goes back to that meal instead of the Add Food hub. The meal sheet also needs a firmer swipe to close, and a typed photo description survives rotation. Log meal and Add another truncate instead of stacking letter by letter in long languages. Closes Codeberg [#80](https://codeberg.org/fitguy/Chompass/issues/80) by [@BrassCat](https://codeberg.org/BrassCat). - **Add another opens the full Add Food sheet** (Android + web): after the first ingredient, Add another and Add next ingredient open Photo, barcode, frequent, and note, not only the camera. Closes Codeberg [#78](https://codeberg.org/fitguy/Chompass/issues/78) by [@BitLicker000](https://codeberg.org/BitLicker000).
  • Aug 28, 2026 4.2.0
    ### Added - **Pick the weigh-in reminder time** (Android): Settings → Trackers & Reminders now lets you choose when the weight log reminder fires, instead of a fixed 8:00. Closes Codeberg [#69](https://codeberg.org/fitguy/Chompass/issues/69) by [@Making1167](https://codeberg.org/Making1167). - **Food and body-fat reminder times** (Android): the food log reminder and the body-fat reminder now have a time wheel in Settings → Trackers & Reminders, like the daily summary and weigh-in reminder. Defaults stay 19:00 and 8:00. ### Changed - **The web app uses your language in more places** (web): the entry form, the whole Settings screen, the diary menus, sheets and toasts, the coach, photo analysis and the update prompt now follow the app language instead of hardcoded English. German ships fully translated; other languages show English text on these surfaces until the next translation batch. - **Trackers have their own colors** (Android): water reads blue and caffeine amber. Nicotine keeps the caution color. Progress bars stay the app accent.
    More…
    - **The update prompt moved to the bottom** (web): the "new version is ready" prompt used to sit over the week pager, the first settings row and the coach headline. It now docks at the bottom like the install banner, and both reserve their space instead of covering content. - **Typing stays put while the app updates** (web): sending a coach message no longer throws you out of the coach text field, and the entry form keeps your cursor in place when it refreshes mid-edit (unit change, serving lock, AI correction) instead of rebuilding the form around you. ### Fixed - **Close sheets with a swipe or the back gesture** (web): bottom sheets like Add Food can now be swiped down from anywhere on the sheet, not just the small handle, and starting the swipe on a button no longer gets ignored. The back gesture or browser back button closes the open sheet instead of navigating away or leaving the app while the sheet stays open. - **Integer wheels round typed decimals** (Android): typing 72.9 on a whole-number wheel now commits 73 instead of 72. - **Typed notes survive picking photos** (web): on the photo and note analyze screen, choosing photos no longer wipes the description you already typed; voice dictation appends stay too. - **Day notes survive the minute tick and get a working button** (web): leaving the diary open while writing a day note no longer gets the note wiped by the once-a-minute fasting refresh, and "Add a note for this day" now actually opens the editor. The note entry only shows when the Daily notes setting is on, matching Android. - **Shared meals land on the right day** (web): importing a shared meal link near midnight no longer logs the foods to the wrong day. The entry form, photo analysis, barcode screen and onboarding derived "today" from UTC the same way and were fixed too. - **Screen reader and keyboard fixes** (web): tapping around no longer re-announces the whole page; the week picker renders five weeks instead of 53 (35 day buttons instead of 371 for keyboard users); the desktop calorie bar now works with Enter and Space; delete confirmations start focus on Cancel so a hasty Enter no longer confirms the deletion; Escape closes one sheet at a time instead of all of them; chip rows and day pickers expose honest toggle state; recalculation, import, sync and coach status lines are announced when they change. - **Custom nicotine and caffeine entries are honest** (web): a custom entry logs as kind "other" instead of pretending to be a cigarette or a coffee. - **Progress stays light on repeat visits** (web): switching ranges or re-opening Progress no longer stacks leftover tap handlers from earlier renders, and the weight and body fat delete confirmations now follow the app language too.
  • Aug 27, 2026 4.1.0
    ### Added - **The diary shows what you logged, not grams** (Android + web): log food in cups, ounces, slices, or any custom serving and the food card shows that amount ("2 oz", "1 slice") instead of converting it back to grams. Entries without a matching serving keep showing grams, and totals stay gram-based under the hood. Progressive-meal ingredient rows follow the same rule. Closes Codeberg [#65](https://codeberg.org/fitguy/Chompass/issues/65) by [@swayevenly](https://codeberg.org/swayevenly). - **Favorites are editable saved foods** (Android + web): every food in Favorites has an edit button. Change the meal type, name, serving, or macros and Save updates the saved food permanently, so the next time you log it the saved values come back. Renaming is refused when another food already uses that name. Reviewing a saved food now starts on its saved meal type on Android too (the web app already did); the one-tap plus button still logs into the current meal. Closes Codeberg [#66](https://codeberg.org/fitguy/Chompass/issues/66) by [@swayevenly](https://codeberg.org/swayevenly). - **Waist body-fat estimate without a neck measure** (Android + web): RFM sits next to the Navy tape estimate. Optional Use as my body fat logs it like a normal reading. Tape estimates are typically a few percentage points from a scan. ### Fixed - **Saved Meals stays on the tab you picked** (Android): switching between Recent, Frequent, and Favorites in the Saved Meals sheet no longer jumps back to the previous tab moments later.
    More…
    - **Weight wheel keeps the tenth you see** (Android): logging 80.2 no longer lands as 80.3. The tenths wheel could show one value while Save stored a slightly different one. Typing a weight and tapping Save now stores exactly what you typed; it used to keep the previous weight unless you touched the wheel again. Codeberg [#63](https://codeberg.org/fitguy/Chompass/issues/63) by [@tuxMode](https://codeberg.org/tuxMode). - **Water from food no longer double-counts slices** (Android): two slices totalling 220 g credit about 150 ml, not 250. The food-water toggle was multiplying the already-total grams by the slice count. Codeberg [#16](https://codeberg.org/fitguy/Chompass/issues/16) by [@1260er](https://codeberg.org/1260er). ### Changed - **Active burn follows the day type** (Android + web): when you have enough recent Training and Rest days, the Home ring's typical active burn is the average for that day type, not one blended number. The caption reads like `380 of 620 active · Training`. Recalculate and Coach see the same per-type typicals.
  • Aug 26, 2026 4.0.0
    ### Added - **Custom meal names and extra meals** (Android + web): meals are no longer only breakfast, lunch, dinner, and snack. Rename any slot (for example Comida instead of Almuerzo), add extra meals, hide ones you do not use, reorder them, and set each start time so auto-guess still works. Names follow diary export, import, shared meals, and WebDAV. Settings → Meals. Closes Codeberg [#61](https://codeberg.org/fitguy/Chompass/issues/61) by [@dolc73](https://codeberg.org/dolc73). - **Type numbers on wheels** (Android): tap the number on a calorie, macro, weight, or limit wheel to type the value, then Done. The last choice (type or wheel) is remembered. Dates, times, and units stay wheels. Closes Codeberg [#62](https://codeberg.org/fitguy/Chompass/issues/62) by [@swayevenly](https://codeberg.org/swayevenly). - **Day types, different goals per day** (Android + web): set up to 7 named day types, each with its own calorie and macro targets, for example a high-carb Training day and a low-carb Rest day. Assign them the way your plan works: switch today's type by hand from a chip under the Home ring, map them to weekdays, or run a repeating cycle like 2 training days then a rest day, with one-day overrides when the schedule shifts. Off by default under Settings → Goals & Nutrition → Day types, and available outside keto mode (a switch to keto pauses the plan and keeps your day types). - **Day types everywhere goals appear** (Android + web): Home's ring, macro cards and the active-burn split follow the day's type, and the daily summary notification and widgets show the right target at midnight. Coach knows today's type and the weekly average, AI Recalculate can adjust each day type separately (shown as before/after columns in the results sheet), and the weekly Adaptive tweak moves every day type while keeping their spread. - **Goals history is frozen per day** (Android + web): the target that was in effect is recorded for each day, so Progress shows the actual per-day targets over your history and its range lines use the average of what you actually targeted, instead of painting today's goal across the whole past. Diary exports carry each day's targets, and the journal syncs through WebDAV and comes along in backups. - **Coach sees your average intake by default** (Android + web): the coach now knows your average calories and macros over the last 7 and the last 30 logged days without needing to look them up, so questions like "how am I doing" get an immediate, grounded answer. With day types on, it weighs single days against that day's target and the week against the weekly average. - Closes Codeberg [#60](https://codeberg.org/fitguy/Chompass/issues/60) by [@Ir0nhid3](https://codeberg.org/Ir0nhid3).
    More…
    ### Changed - **Add Food sheet is less wordy** (Android): the extra section titles (More ways to log, Water, Caffeine, Nicotine, Fasting) are gone. The rows still show their icons. Recent and frequent chips sit under voice, barcode, and search, above water and the other trackers. - **Photo review no longer asks to confirm the portion** (Android): size chips and the extra exact-weight row are removed. Correct the portion with the existing tip note, or edit grams on the serving card. The Settings toggle is gone too. - **Smoother back gesture on Android 14 and 15**: the system back preview is on. ### Fixed - **Caffeine and nicotine limit sheets stay on screen** (Android): the daily-limit sheets no longer sit under the status bar, and Save stays visible when the keyboard is open. - **Delete leftover serving units** (Android): leftover prefix units from older versions can be removed from an entry. Select the unit, tap the pencil, then the trash next to the checkmark. Grams stays; nutrition is unchanged. Follow-up to Codeberg [#59](https://codeberg.org/fitguy/Chompass/issues/59). - **Logged weight stays in history when Health Connect or WebDAV is catching up** (Android): if you logged today's weight while the app was still pulling from Health Connect or WebDAV, the new row could vanish from Weight History a moment later. The pull now adds remote rows without replacing the one you just saved. Codeberg [#63](https://codeberg.org/fitguy/Chompass/issues/63) by [@tuxMode](https://codeberg.org/tuxMode). - **What if? shows the advice, not the JSON** (Android): when the model wraps its suggestion in JSON, the dialog shows the advice text.
  • Aug 25, 2026 3.24.1
    ### Fixed - **Moving a food to another meal no longer makes its card vanish** (Android): on some devices, after changing an entry's meal type, for example from Lunch to Breakfast, the food disappeared from the home screen until the app was restarted, even though it was still saved and counted in the day's totals. The card now stays on screen right after the change on every device. Follow-up on Codeberg [#56](https://codeberg.org/fitguy/Chompass/issues/56) by [@tuxMode](https://codeberg.org/tuxMode).
  • Aug 24, 2026 3.24.0
    ### Added - **Intermittent fasting timer** (Android + web): an optional, local-only fasting timer. Start or stop a fast from Home or the Add food sheet, and set your own fasting and eating windows freely, with quick picks for the common protocols (12:12, 14:10, 16:8, 18:6, 20:4, 23:1). The popular 16:8 is the default, so enabling the tracker gives you a working cycle. Off by default under Settings → Trackers & Reminders → Fasting. - **Fasting bar and Auto fast windows** (Android + web): the Home bar shows how long until you can eat while fasting, and how long until the next fast starts while your eating window is open, including the time spent eating so far. Auto fast windows runs the cycle for you: your fast starts at the fast start time you choose (default 20:00) and ends at the goal, with no buttons on Home for auto fasts (you can still start one manually). Auto fast windows is on by default, turn it off in Settings → Trackers & Reminders → Fasting. - **Fasting reminders** (Android): a start nudge before the fast begins and a break-fast nudge before it reaches the goal, both on by default with a lead time you choose from 0 to 120 minutes. The start nudge works with auto windows too. - **Fasting stays on your device** (Android): the timer survives restarts, and nothing is synced, exported, or included in shared meals. Coach knows how long you have been fasting when you ask about eating timing. While the timer is on, long-press the app icon for a Start or stop fasting shortcut. - **Optional nicotine tracking** (Android + web): log cigarettes, vapes, pouches and more with quick +1 chips or a custom count (with optional nicotine in mg), see today's total against a daily limit you set, and edit or delete any entry from a per-day history. Everything stays on your device and in your WebDAV sync; nothing is sent to an AI provider. Off by default under Settings → Trackers & Reminders → Nicotine. - **Caffeine tracking** (Android + web): coffee, tea, and energy drinks now carry their caffeine, with a daily total and an adjustable daily max (default 400 mg) in Goals & Nutrition. Caffeine from photo, text, barcode, and manual logging is kept, can be edited, and is included in diary exports, shared meals, sync, and Health Connect. Closes Codeberg [#55](https://codeberg.org/fitguy/Chompass/issues/55) by [@DontBlameMe](https://codeberg.org/DontBlameMe). - **Caffeine tracker** (Android + web): a water-style tracker on top of the caffeine nutrient, off by default under Settings → Trackers & Reminders → Caffeine. Home shows today's caffeine, from tracker logs and food entries, against the daily max from Goals & Nutrition. The Add food sheet gains +1 chips for coffee, tea, and energy drinks, and each logged cup lands in a per-day history you can edit or delete.
    More…
    - **Daily notes** (Android + web): each day can carry a short free-text note for your thoughts, progress, and observations. On Android the note lives on Home for the day you are viewing, and opens an editor with a 1000-character limit. On the web app the same note appears on the day page. Notes follow your selected day, so you can journal for past days too. They sync through WebDAV, come along in backup restore, and are included in the JSON and Markdown diary exports (a day with only a note still exports). Closes the daily-notes part of Codeberg [#58](https://codeberg.org/fitguy/Chompass/issues/58) by [@DonSync](https://codeberg.org/DonSync). The note card is off by default; enable it under Settings → Trackers & Reminders → Daily notes. - **Water history editing** (Android): tap the water card to open the day's logged glasses with their times. Tap a glass to change its amount, or remove it with the delete button. Works for past days too, not just today. Closes the water-edit part of Codeberg [#58](https://codeberg.org/fitguy/Chompass/issues/58) by [@DonSync](https://codeberg.org/DonSync). - **Analysis queue** (Android): Add Food now has an Analysis queue. Failed photo and text analyses are saved there automatically with their photos and description, so nothing is lost when the AI call fails. You can run any saved prompt again later, for example against a model on your home PC, and you can queue a meal from the photo sheet without analyzing it first. Each entry shows its note, photos, and target day, and you can edit them, run one item or all waiting items, and clear the finished history, which is kept for 7 days. Closes Codeberg [#53](https://codeberg.org/fitguy/Chompass/issues/53) by [@madarexxx](https://codeberg.org/madarexxx). - **Failed analyses keep your photos and description** (Android): when an AI analysis fails, the photos and note are no longer lost. The error dialog offers Retry for every photo case, including multiple photos, and an Open queue shortcut. Even after you dismiss it, the prompt stays in the queue and history. - **Prompt history in the note inputs** (Android): the analysis and note sheets gain a Prompt history button. It lists your saved prompts, newest first, and one tap fills the input in grey until you edit it. Prompts from the analysis queue and failed analyses appear there automatically. ### Changed - **Settings reorganized for findability** (Android): Settings now groups look and feel under Display and the tracking tools, water, nicotine, caffeine, fasting, and reminders, under Trackers & Reminders. Personal Info gains a Units row with one Metric/Imperial toggle, and the hub has a Search settings box that finds any setting by name or group. ### Fixed - **Fasting auto cycle starts on time** (Android + web): with Auto fast windows on, your fast now starts at the fast start time you set, even the first time you enable it. Before, a fresh cycle waited for the next day: at 20:00 with an 18:00 start time, Home kept showing the next fast starting tomorrow instead of the countdown to your next eating window. The fasting bar also shows the correct time spent eating while the eating window is open. - **Settings search understands your language** (Android): the search field now also matches the localized section names, so a term like "Ziele" in German or "Poids" in French lands on the right setting even before a translation adds its own search words. Each app language can add its own search terms; until then English terms and universal units like kg, kcal and ml still work. Search matching is also the same in every language (accents and capital letters are handled consistently) and responds more quickly as you type. - **On-device AI falls back to a smaller model when the chosen one cannot run** (Android): when the primary on-device model is too big for the free memory on your phone, photo analysis now switches to the fallback model you picked in Settings → AI & Speech, for example from Gemma 4 E4B to E2B, instead of failing with a memory error. Closes Codeberg [#54](https://codeberg.org/fitguy/Chompass/issues/54) by [@ARR8](https://codeberg.org/ARR8). - **Review and save buttons stay readable on light wallpapers** (Android): with a light wallpaper, the white text on the accent-gradient buttons could vanish on phones whose accent color comes out near-white. The label now switches to a dark color automatically when the accent is too light. Follow-up on Codeberg [#44](https://codeberg.org/fitguy/Chompass/issues/44) by [@ionsingo](https://codeberg.org/ionsingo). - **Custom serving names save as one unit, not one entry per letter** (Android): while renaming a serving unit (for example a homemade dish's "bowl" or "slice"), every letter you typed was added to the unit list as its own entry, so "spice" turned into s, sp, spi, spic and spice. The name now applies when you tap the checkmark, and only the finished unit is saved. Closes Codeberg [#59](https://codeberg.org/fitguy/Chompass/issues/59) by [@ionsingo](https://codeberg.org/ionsingo). - **Wheel pickers save the value you see** (Android): if you turned a settings wheel, for example the fasting start time, the water goal, or a reminder lead time, and tapped Save while the wheel was still finishing its move, the old value was saved instead of the one shown. The selected value now follows the wheel as it moves, so saving always stores the row you see highlighted. - **Moving a food to another meal no longer reshuffles the whole food list** (Android): with "Latest Meals First" sorting, changing an entry's meal type used to rebuild every section header below it, which could make the card disappear from the home screen on slower phones until the app was restarted. The list now keeps the unaffected sections in place. Codeberg [#56](https://codeberg.org/fitguy/Chompass/issues/56). - **Web sync reads files from older versions** (web): a sync file saved by an earlier app version, without the daily-notes field, now loads normally instead of failing to open.
  • Aug 22, 2026 3.23.0
    ### Added - **Saturday as the week start** (Android + web): Settings → App & Display → Week Starts On now offers Sunday, Monday, or Saturday, and the diary, charts, and week summaries follow it. A Monday start chosen before stays Monday. - **Locked/Auto toggle on calorie and macro goals** (Android + web): Settings → Goals & Nutrition shows Locked or Auto on each calorie and macro row. Tap the chip to pin the current number so Recalculate and Adaptive leave it alone, or set it back to Auto to let them adjust it. In the web app, typing a custom calorie or macro locks it when you save. Follow-up on Codeberg [#45](https://codeberg.org/fitguy/Chompass/issues/45) by [@Ludisc](https://codeberg.org/Ludisc). - **Clear on-device AI leftovers** (Android): Settings → AI & Speech → On-device model can now wipe a finished model, a broken partial download, the compile cache, and the engine in memory. Leftover files also show up there when the provider is back on Gemini, so a stuck download is not hidden behind the On-Device picker. ### Changed - **Recalculate explains its new targets** (Android): the one-line result is now a sheet with your new calorie and macro targets next to the previous ones, which AI provider and model set them (and which backup model answered when one failed), the formula chain behind the number, the data it used, and the model's reasoning. The explanation stays on the Goals screen (Recalculation details) and behind the home card's info icon, so you can reopen it anytime, including after Adaptive Goals adjusts your calories.
    More…
    - **Recalculate uses your full history with cloud AI** (Android): cloud providers now get your raw weigh-in series and the last 14 days of logged intake and judge the trend themselves. The on-device model stays conservative until your history is dense enough, and the app falls back to the built-in formula or your measured Health Connect burn when the logs are too thin. - **Cheap cloud models use the safe Recalculate path** (Android): lite, nano, haiku, mini, and free endpoint models now run the same conservative tier as on-device AI instead of judging your raw weigh-in series. A device run showed they can otherwise pin the goal to your resting burn on a thin history. - **Logging food, water, and weight entries is faster on long histories** (Android): saves no longer rewrite your whole history in one file each time. Adding one entry now touches only that calendar month, so the app stays as quick after a year of logging as it is on day one. Your existing data moves over automatically on update; exports, backups, and sync are unchanged. - **Progress stays smooth on a long diary** (Android): the Progress charts now read a compact daily summary of your meals instead of every logged entry, so switching to a longer range no longer loads your whole food history at once. Totals and averages are unchanged. ### Fixed - **Recalculate no longer anchors on a short weight trend** (Android): with only a few weigh-ins, the AI sometimes set your calorie goal at your resting burn instead of your activity-based target, because early readings can look like a much lower or higher maintenance than you really have. It now only uses your logged trend once it is dense enough (at least 4 weigh-ins across 14 days with 4 logged food days), and otherwise keeps the built-in formula or your measured Health Connect burn. A trend below your resting burn is ignored instead of dragging the goal down. - **Gemma download survives screen-off and time limits** (Android): the on-device model file no longer resets to zero when the screen locks or Android interrupts the download, and a clean cut is retried instead of deleting the file. Follow-up on Codeberg [#51](https://codeberg.org/fitguy/Chompass/issues/51) by [@samuraihelmet](https://codeberg.org/samuraihelmet). - **On-device download no longer runs out of memory at 100%** (Android): the app used to re-read the whole multi-gigabyte model file to verify it, which could crash the app and hide the On-Device option. It now hashes the file while downloading, and Settings shows On-Device right away. - **Onboarding no longer appears stuck with the on-device provider** (Android): with on-device AI selected, onboarding used to run the AI plan calculation behind the Setting up screen, which could look frozen for about a minute while the engine started. It now uses the built-in formula targets unless the engine is already warm. - **Recalculate no longer hangs on a stalled read** (Android): a slow settings read could leave the goal rings spinning for minutes after the model had already answered. Failures and stalls now clear the spinner and show an error instead. - **Settings opens without the lag** (Android): the settings screen used to finish its disk and Health Connect reads on the main thread, which could stall the tab switch and the first rows on a busy phone. Those reads now happen in the background, so the screen appears immediately. - **On-device AI no longer slows down a low-memory phone** (Android): when the phone is low on free memory, the Gemma engine now refuses to load with a clear message instead of swapping and stalling every app while it starts. - **Energy Burn Goals row no longer spins for nothing** (Android): the Recalculate busy indicator under Energy Burn Goals only shows when the recalculation actually reads Health Connect.
  • Aug 21, 2026 3.22.0
    ### Added - **Daily summary shows today's deficit or surplus** (Android): the evening notification now uses logged calories and measured burn (Health Connect when available) to say whether the day landed in deficit, surplus, or on target. Expand it to see eaten vs your calorie goal, and net carbs when keto is on. You can set the time under Settings → Notifications. Off by default. - **Optional nutrient goals can be estimated with AI on demand** (Android): Settings → Other Nutrient Goals now has an Estimate with AI button that fills sugar, fiber, sodium, vitamins, and the other optional goals from your profile and calorie target. It only runs when you tap it. Recalculate leaves these values alone, so your manual edits stay as you set them. ### Changed - **Lose goals stay at or above resting calories** (Android + web): formula, Recalculate, Adaptive, and onboarding never set a daily target below your estimated resting burn or 1,200 kcal. A faster weekly pace shrinks to fit that floor instead of writing a crash diet. You can still type a lower number after a confirm. Adaptive also raises a target that is already too low. - **Adaptive Goals is a small weekly nudge** (Android): about once a week it now adjusts calories by at most 150 kcal from your recent weight trend, and only after about four weeks of weigh-ins (six readings). Locked calorie and macro rows stay as you set them. Recalculate still asks the AI for a full plan, and if calories are locked it plans protein, carbs and fat around that number instead of replacing it. Closes Codeberg [#45](https://codeberg.org/fitguy/Chompass/issues/45) by [@Ludisc](https://codeberg.org/Ludisc).
    More…
    ### Fixed - **On-device AI opens up to 6 GB phones** (Android): phones with about 6 GB of RAM now see the on-device option in Settings → AI Provider. It used to hide because usable memory runs a bit below the marketed amount, so most 6 GB phones missed the cutoff. If the on-device engine fails to start, the app now retries once before showing an error. - **On-device model downloads resume after an interruption** (Android): the Gemma model file no longer restarts from zero when the connection drops or the download stalls, which could loop forever on a multi-GB file. If storage runs out, you get a clear error instead. Closes Codeberg [#51](https://codeberg.org/fitguy/Chompass/issues/51) by [@samuraihelmet](https://codeberg.org/samuraihelmet). - **Coach average matches the Progress chart** (Android + web): asking the coach for a full analysis now uses the average of days you actually logged, not empty days before you started. Progress Avg also skips today, which is still being logged. Closes Codeberg [#49](https://codeberg.org/fitguy/Chompass/issues/49) and [#50](https://codeberg.org/fitguy/Chompass/issues/50) by [@tuxMode](https://codeberg.org/tuxMode). - **Recalculate returns as soon as calories and macros are ready** (Android): it no longer waits on a second AI call for optional nutrients, which could sit for minutes after Gemini hiccuped.
  • Aug 20, 2026 3.21.2
    ### Fixed - **Opening the app no longer crashes on some Huawei phones** (Android): on older Huawei EMUI builds based on Android 10, tapping the icon could close the app before Home appeared when the language follows the system. Closes Codeberg [#43](https://codeberg.org/fitguy/Chompass/issues/43) by [@tuxMode](https://codeberg.org/tuxMode). - **German water and serving labels** (Android + web): the next-drink line now says Nächste, and the water widget shows only the amount and time so the line is not cut off. Cup, tablespoon and teaspoon now use the German unit names Cup, EL and TL. The serving card labels the unit column Einheit. Follow-up on Codeberg [#3](https://codeberg.org/fitguy/Chompass/issues/3) by [@1260er](https://codeberg.org/1260er). - **Switching to maintain updates calories right away** (Android): changing the goal from lose or gain to maintain now applies the formula targets immediately, so the old deficit does not stay on screen until Recalculate. Follow-up on Codeberg [#3](https://codeberg.org/fitguy/Chompass/issues/3) by [@1260er](https://codeberg.org/1260er).
  • Aug 19, 2026 3.21.1
    ### Changed - **Faster Home, Progress, and Settings on a long diary** (Android): those screens no longer load the whole food and body history just to show today or the selected range. - **Add Food and Progress stay smooth on a long diary** (Android): Add Food opens without scanning a year of meals first. Progress range chips only read the months in view, and long calorie charts roll up to weekly bars. Logging a meal no longer forces Add Food to rescan recents. - **Faster cold start** (Android): Home appears after one settings read instead of a chain of them. Background cleanup and widget refresh wait until the first screen is up. - **Smaller Codeberg download** (Android): the Obtainium and Codeberg APK no longer includes Intel libraries that phones do not use. Phones are unchanged. Emulators need an ARM system image. ### Fixed
    More…
    - **Deleted weigh-ins stay gone after WebDAV sync** (Android): deleting a weight and then tapping Sync Now no longer brings the old row back from the file. That used to happen when Auto-sync was off. Extra rows already in the file still need to be deleted once, then synced. Follow-up on Codeberg [#39](https://codeberg.org/fitguy/Chompass/issues/39) by [@tuxMode](https://codeberg.org/tuxMode). - **Serving unit wheel stays open and every row is reachable** (Android): on Review Food, quantity and unit sit in one row, the unit list stays on screen, and a short list turns one row at a time so the last unit can be selected. Closes Codeberg [#42](https://codeberg.org/fitguy/Chompass/issues/42) by [@tuxMode](https://codeberg.org/tuxMode). - **Coach reads streamed replies from local endpoints** (Android): a greeting from OmniRoute or a similar OpenAI-compatible proxy that streams its reply now shows in the coach instead of an error. Follow-up on Codeberg [#8](https://codeberg.org/fitguy/Chompass/issues/8) by [@darkxylese](https://codeberg.org/darkxylese).
  • Aug 19, 2026 3.21.0
    ### Added - **Local AI endpoints over plain HTTP** (Android): an Allow insecure HTTP switch in Settings → AI & Speech lets custom and Ollama endpoints use http:// URLs in release builds, for example on a home network. Off by default. Cloud providers use https. Follow-up on Codeberg [#8](https://codeberg.org/fitguy/Chompass/issues/8) by [@ARR8](https://codeberg.org/ARR8). - **Ollama endpoints trust certificates you install** (Android): custom endpoints already did. Remote Ollama servers with your own CA now connect the same way. - **Clearer local-endpoint errors** (Android): blocked plain HTTP and untrusted certificates now explain what to do (turn on Allow insecure HTTP, or install the CA on the phone) instead of showing a raw network error. - **Polish and Turkish language packs** (Android + web): Chompass now speaks 18 languages. Polish and Turkish cover the full Android app, from onboarding through the diary, coach, widgets, and safety notices, plus the web app's core screens. Choose them in Settings → App & Display → Language. - **Full Android translations** (Android): Russian, Ukrainian, Italian, Dutch, Brazilian Portuguese, Romanian, Azerbaijani, Hindi, Japanese, Korean, Simplified Chinese, and Arabic now cover the whole app, not just the main screens. French, Spanish, and German pick up the last missing strings. ### Changed
    More…
    - **Log again shows recent and frequent foods** (Android + web): Add Food now has two scrollable rows under Log again, recent on top and frequent below. The extra hint under the heading is gone. - **Add Food tiles, nutrition badges, and goal wheels** (Android + web): Add Food tiles share one height. The weight-chart legend is the shorter "Weigh-in". On Android, letter badges in the nutrition sheet sit on center, and goal wheels no longer repeat the nutrient name as a title.
  • Aug 19, 2026 3.20.0
    ### Added - **OLED appearance mode** (Android): a new OLED option in Settings → App & Display → Appearance turns the app and all four home-screen widgets true black, so OLED screens can switch pixels off. Text and accent colors stay the same as Dark mode. Choosing Light or Dark explicitly now also applies to the widgets, not just the app. - **Per-app language selector** (Android): a Language row in Settings → App & Display switches the whole interface to any of the 16 supported languages, independent of the system language. The choice is saved and survives restarts; System follows the device language. - **Wheel pickers for entering values** (Android): calories, macros, serving size, meal times, water, manual activity, AI settings, and photo notes now use scrollable wheel pickers instead of typed fields. Time wheels follow the 12 or 24 hour format of the app language. - **Buy fitguy a yogurt** (Android + web): a Ko-fi donation link now appears in the app's About screen, the website footer and download page, the PWA About screen, and the README. The F-Droid listing's donation link points to Ko-fi instead of the repository. Closes Codeberg [#36](https://codeberg.org/fitguy/Chompass/issues/36) by [@tpapastylianou](https://codeberg.org/tpapastylianou).
  • Aug 18, 2026 3.19.0
    ### Fixed - **Numbers, dates and decimals now follow the app locale** (Android + web): diary entries, recipes, results, wheel pickers, birthday age and coach dialogs all use locale-aware formatting instead of US defaults. Medium dates are now locale-natural. - **TalkBack reads week strip, onboarding pickers, swipe rows and the hero arc correctly** (Android): accessibility semantics added so screen readers announce these elements properly. - **Empty macro cards render as bare tracks** (Android): the calorie ring no longer shows broken layout when a macro has no data. - **Picker sheets use unified primary button styling** (Android): the iOS-style capsule button now appears consistently across picker dialogs. - **Calorie accent color unified with the theme primary** (Android): the ring and accent elements now match the Material3 color scheme. - **Wheel picker follows external selection, icons honor iconSize, chips have semantics** (Android): the wheel no longer fights programmatic selection, icons respect sizing, and chips are accessible. - **Coach preview uses the production send button** (Android): visual consistency between preview and live coach.
    More…
    - **Photo memory usage capped to the stored-image limit** (Android): in-memory decodes no longer exceed the on-disk cap, reducing OOM risk on large images. - **Update Available row explains F-Droid delivery** (Android): the about screen now clarifies that updates come via F-Droid, not the Play Store.
  • Aug 18, 2026 3.18.0
    ### Added - **Macro goals rise with the active-burn target** (Android + web): on an active day the calorie ring can show a higher goal than the stored budget, and the protein, carbs and fat cards now scale up with it so they agree with the ring. Keto mode keeps the base split. Closes Codeberg [#38](https://codeberg.org/fitguy/Chompass/issues/38) by [@neshamon](https://codeberg.org/neshamon). - **The on-device model joins the AI fallback options** (Android): when a provider call fails, the app can now use the on-device model as the fallback target. It appears in the fallback list under Settings → AI & Speech once a model is downloaded. Closes Codeberg [#37](https://codeberg.org/fitguy/Chompass/issues/37) by [@ARR8](https://codeberg.org/ARR8). ### Fixed - **Typed entries no longer close by accident** (Android): a downward drag on the note sheet, or on an entry sheet while typing, no longer dismisses the sheet mid-entry. Dismissal stays on the handle, the scrim and the cancel button. Backing out of an Add food tool returns to the grid. Closes Codeberg [#30](https://codeberg.org/fitguy/Chompass/issues/30) by [@dpile103](https://codeberg.org/dpile103).
    More…
    - **The onboarding pace line keeps its spacing** (Android): the estimated-days line on the goal-pace screen no longer runs the number into the word before it ("in30 Tagen" in German). - **Duplicate weight rows no longer appear after WebDAV sync** (Android + web): rows with the same date and weight, written by the app or the web app, now merge into one row instead of piling up with every sync. Closes Codeberg [#39](https://codeberg.org/fitguy/Chompass/issues/39) by [@tuxMode](https://codeberg.org/tuxMode). - **The last sync time shows in your local time zone** (Android): the sync screen used to show the raw UTC timestamp. It now shows the local time. Closes Codeberg [#40](https://codeberg.org/fitguy/Chompass/issues/40) by [@tuxMode](https://codeberg.org/tuxMode). - **Edit Food Entry shows no AI controls when AI is off** (Android): with AI features turned off, the edit sheet now only shows a plain note field and a Save button. The note on a logged entry stays editable, and no AI call can be started from anywhere in the app.
  • Aug 17, 2026 3.17.2
    ### Fixed - **WebDAV sync and sync-file import no longer drop food photos and emoji** (Android + web): after a successful sync or import, food photos were replaced by the default picture and emoji were lost. Photos are still kept out of the backup file on purpose, but they now stay in place locally, and emoji are part of the backup again. Fixes Codeberg [#34](https://codeberg.org/fitguy/Chompass/issues/34) by [@tuxMode](https://codeberg.org/tuxMode).
  • Aug 17, 2026 3.17.1
    ### Fixed - **Settings values line up on the right again** (Android): values and their arrows sit at the right edge of each row again. Long labels still wrap instead of stacking letter by letter.
  • Aug 16, 2026 3.16.1
    ### Fixed - **German and Russian labels fit at large font sizes** (Android): compact labels in German are shortened (for example "Mittag" instead of "Mittagessen"), Russian macro status lines use the shorter suffix form, and the macro card's status line shrinks to fit long values. Chips, tabs, buttons, meal slots, and bottom-nav labels no longer truncate or overflow.
  • Aug 15, 2026 3.15.0
    ### Added - **Barcode scanning reads QR and Data Matrix codes** (Android + PWA): the square matrix codes printed on many packages now scan like a barcode, and products found in the Open Food Facts database log the same way. Codes that only carry an internal number are ignored. Follow-up to Codeberg [#24](https://codeberg.org/fitguy/Chompass/issues/24) by [@felixbrucker](https://codeberg.org/felixbrucker). - **Onboarding explains what goes to your AI provider** (Android + PWA): during setup and under Settings → AI & Speech, the app now spells out which data leaves the device for each provider: food photos and meal notes for food analysis, "What if?" impact with today's diary totals, coach chat with your profile and recent logs, and your profile when AI estimates goals. Only the on-device Gemma 4 models keep everything on your phone; Ollama runs on your own computer. The web app always uses a cloud provider and says so in its onboarding. The Privacy Policy gains a data-sharing table. ### Fixed - **Barcode scan now says why it failed** (Android): scanning a product that is not in the Open Food Facts database now shows a clear "product not found" message instead of "something went wrong", and temporary Open Food Facts hiccups are retried automatically before giving up. Closes Codeberg [#24](https://codeberg.org/fitguy/Chompass/issues/24) by [@felixbrucker](https://codeberg.org/felixbrucker).
    More…
    - **Fixing a food's weight no longer changes its nutrition** (Android): for foods that came from other apps (diary import) and have no recorded serving, correcting the weight in the edit screen used to rescale the macros, which were already correct. The weight can now be corrected freely, and only counts as a serving once you set it yourself. Follow-up to Codeberg [#10](https://codeberg.org/fitguy/Chompass/issues/10) by [@felixbrucker](https://codeberg.org/felixbrucker). - **WebDAV sync no longer crashes on some Huawei phones** (Android): on older Huawei EMUI builds based on Android 10, saving your diary to a WebDAV server stopped with an error and the sync never completed. Closes Codeberg [#23](https://codeberg.org/fitguy/Chompass/issues/23). - **Plainer English wording** (Android + PWA): dialogs and settings copy reworded for clarity. Other languages are unaffected.
  • Aug 15, 2026 3.14.0
    ### Added - **Home ring spans your whole expected day** (Android): with *Add Active* on, the calorie ring now runs from zero to your projected daily burn, sedentary goal plus your usual active burn, instead of starting at the base goal in the morning. The goal line reads against that expected total, and the caption shows how much of your usual active burn you have covered so far, turning a different color once you burn more than usual. The calorie widget shows the same expected goal and remaining. - **Reasoning effort for OpenRouter models** (Android + PWA): a new *Reasoning effort* option under Settings → AI & Speech controls the thinking budget of reasoning-capable models. Auto keeps the app default; Low to High trade speed and token cost for accuracy on hard photos or logs. Closes upstream [#194](https://github.com/apoorvdarshan/fud-ai/issues/194). - **A separate model for photos** (Android + PWA): *Vision model* under Settings → AI & Speech lets photos use a different model than text, per provider. Leave it on *same as Model* for today's behavior, or set a vision-capable model when your main model is text-only. Closes upstream [#195](https://github.com/apoorvdarshan/fud-ai/issues/195). - **Fixed launcher icon option** (Android): a new switch in Settings, next to Theme Color, keeps the launcher icon teal and stops it from following the theme color or wallpaper. Useful on launchers that briefly hide or close the app when the icon changes.
    More…
    ### Fixed - **Morning budget no longer includes a guessed active burn** (Android): with *Add Active* on, the home ring and widget now use the active calories actually recorded so far, zero until your first workout or sync of the day, instead of substituting a whole-day estimate that inflated the budget and then dropped when the first measurement landed. The estimate still applies when no activity source is connected at all. - **Active calories match the day you're viewing** (Android): with Health Connect connected and *Add Active* on, the home ring's active burn and budget no longer show a previous day's value after switching days or reopening the app. Closes Codeberg [#22](https://codeberg.org/fitguy/Chompass/issues/22) by [@HattDroid](https://codeberg.org/HattDroid). - **Changing the theme no longer closes the app on some devices** (Android): on some Xiaomi and Samsung launchers, switching dark or light mode or the theme color could drop you back to the home screen when the launcher icon color changed. The icon now updates only while the app is in the background, and a light wallpaper no longer turns the launcher icon gray. Closes Codeberg [#13](https://codeberg.org/fitguy/Chompass/issues/13) by [@armishinwn](https://codeberg.org/armishinwn) and [#21](https://codeberg.org/fitguy/Chompass/issues/21) by [@HattDroid](https://codeberg.org/HattDroid).
  • Aug 14, 2026 3.10.0
  • Aug 14, 2026 3.13.0
    ### Added - **New default AI model**: photo and text food analysis now uses Gemini 3.7 Flash by default, with better accuracy for the same free-tier cost. Your saved model choice is untouched, and the free fallback stays the high-quota Flash-Lite model. - **AI model availability hints**: the model picker now flags paid-only models (Pro models need billing on your AI Studio project) and notes when free-tier availability varies by account and region. The same note appears during onboarding. - **Clearer AI error messages**: when a provider can't find the model you picked, the app now explains that it may be paid-only, region-restricted, or a wrong endpoint, and points to the fix, instead of showing raw provider text. The rate-limit message now points free-tier users at the Flash-Lite model. - **Custom serving sizes for any food** (Android): tap the pencil next to the serving unit in any food review or edit flow to rename it and set its weight (a 120 g pizza slice can become "big slice" at 180 g). Works from plain grams too: a dish without a suggested unit (a homemade curry, a stew) can get a named serving like "bowl" at 300 g, and the serving survives later name edits. The entry remembers the custom serving, and quantity changes scale from it like before. Available in manual entry, AI photo/text results, saved entries, and ingredient rows. - **More nutrients in manual entry** (Android): the manual food dialog now records the optional nutrients, not just fiber. Tap *More Nutrition* to expand the full list (sugars, fat types, cholesterol, sodium, potassium, vitamins, minerals, omega-3) and fill in the values you know; they land on the entry like any other logged nutrient.
    More…
    ### Fixed - **Open food-entry dialogs survive rotation** (Android): rotating the phone no longer closes the in-progress text, voice, camera, or manual entry flow and discards what you typed. Captured photos and the photo review sheet already survived; now the open-sheet state and typed drafts do too. - **Manual entry dialog scrolls when full** (Android): with *More Nutrition* expanded, the dialog content scrolls within the screen, so Save stays reachable on small screens and at large font sizes.
  • Aug 13, 2026 3.12.0
    ### Added - **Weather input for the dynamic water goal** (Android): the expected-high temperature behind the +4 %/°C factor can come from two sources: the manual °C wheel (default, unchanged) or Open-Meteo, which finds today's forecast high for a searched city. No account, no key, no location permission; attribution is shown in Settings. When no fresh forecast exists, the manual value is the fallback, so the goal, reminders, and widgets keep working. - **Body-measurement trend plots** (Android): the Progress tab can now chart how each body measurement changes over time, with one card per site: current value, net change over the selected range, and a trend line. Off by default: enable sites in *Settings → App & Display → Customize progress*, which also hosts the Progress default range. Data comes from Personal Info → Body measurements. Plots follow the 1W to All range chips and the cm/in unit setting. Closes Codeberg [#18](https://codeberg.org/fitguy/Chompass/issues/18) by [@dorian-grosch](https://codeberg.org/dorian-grosch). ### Fixed - **"What if?" popup scrolls when the suggestion is long** (Android): the dialog now scrolls within a fixed height, so long AI suggestions stay readable on small screens and at large font sizes. Closes Codeberg [#17](https://codeberg.org/fitguy/Chompass/issues/17) by [@dorian-grosch](https://codeberg.org/dorian-grosch).
  • Aug 13, 2026 3.9.0
  • Aug 10, 2026 3.8.0