Skip to content

v1.0.100080-beta

Choose a tag to compare

@sketchy55 sketchy55 released this 20 Sep 00:06
· 1 commit to main since this release
21da9d6

What's New ✨

  • One Model Sheet, Three Roles — Coach / Vision / Insight aren’t three separate pickers anymore.

    • Long-press a model → assign roles — set Coach, Food Scanner & Vision, and AI Insights from one dialog.
    • Role tags on the row — see what’s active at a glance; “Set All Supported” when you want one model everywhere it can run.
    • Settings opens the same sheet — tap the model card in AI Settings; the old ModelPickerRow path is gone.
  • Food-Log Swipes You Can Remap — delete / edit / copy / none, per direction.

    • App Behavior → Food Log Swipes — swipe right and swipe left are independent.
    • Copy is a first-class action — timeline can copy on swipe; delete still gets undo after a short exit animation.
    • Swipe container rewrite — configurable actions, no double-collapse stutter on delete.
  • Smaller Downloads, Smarter Updates — we stopped shipping every ABI in one fat APK.

    • ABI splits released — armeabi-v7a, arm64-v8a, x86, x86_64, plus a universal APK.
    • In-app updater picks your ABI — prefers device ABI, then universal, then first available APK (AGP-style names included).
    • I have also added another universal APK that uses the old naming system to not break anything.
  • Nutrient Charts That Don’t Fake Empty Days — food micros/macros no longer treat “didn’t log” as zero.

    • Unlogged food days = gaps — averages ignore null days; long-range lines break across gaps instead of dragging through fake zeros.
    • Water / caffeine still count empty days as 0 — intentional; those are “you drank nothing” days.
    • TDEE / estimator math left alone — this is display/chart averaging only.
  • Plate Photos Without Melting RAM — camera URIs decode with sampling + max-dimension scaling before JPEG encode, so 12–48MP shots don’t OOM the scanner.

  • Recipes Remember Last Masses — logging a recipe with overridden ingredient grams can persist those defaults and recompute recipe totals for next time.

  • Scanner That Sleeps When You’re Not Scanning — barcode camera binds only while the scanner route is active / not paused after a hit, so background sheets don’t keep the lens thrashing.

  • Timeline Macro Pager That Settles Cleanly — consumed/remaining swipe uses spring fling, ignores mid-gesture external sync, and snaps only after the page settles.


Bugs Squashed 🐛

  • xAI That Stays Signed In — SuperGrok OAuth no longer dies quietly mid-session.
    • Auto-refresh with a 5-minute buffer — tokens refresh before they expire, with a mutex so concurrent calls don’t stampede the auth endpoint.
    • 401 → refresh → retry — chat, Responses API, vision, model fetch, and quick-log all retry once with a fresh token instead of just failing.
    • Foreground + launch refresh — app start and coming back to the foreground proactively keep the session warm.
    • Invalid refresh cleanup — revoked/invalid_grant sessions clear stale tokens and fall back to the API key / re-auth path.
  • Tap a logged food → accidentally “edit” it — tap now copies/adds; swipe-edit (or explicit edit) is the true edit path, with Save vs Add labeled correctly.
  • Nutrient averages tanked by blank days — unlogged food days no longer dilute averages (e.g. three 3000-cal days + one blank ≠ 2250).
  • Delete swipe animation stuttered / double-collapsed — container no longer fights itself on removal.
  • Barcode camera kept running under overlays — inactive/paused scanner unbinds; active resumes cleanly.
  • Back from home felt like a trap — root back finishes the activity instead of doing nothing useful.
  • Today’s calorie target lagged old check-ins in ranges — current target wins for today and future dates in the repository path.
  • Plate scan OOMs on big camera images — sampled decode + scale-before-encode.
  • Fixed i18n keys for food-log swipe actions (+ a few common labels).