Changelog
0.3.2 - 2026-09-24
Fixed:
FoodPortion.selectionsent the portion's amount in the serving's unit as the number of servings, so a portion of a serving whose quantity isn't 1 (such as 6 oz or 100 g) was logged that many times over. It now sends the number of servings
0.3.1 - 2026-09-23
Food, water, and weight logs send and read the API's
created_atand keeptimestampUtc,consumedAt, andmeasuredAt; 0.3.0's food, water, and weight logs don't work with the current API, so upgrade to 0.3.1Water logs take 0.1–101.4 cups
0.3.0 - 2026-09-23
Breaking:
AlternativeFood.id,ServingOption.id,RestaurantMenuEntry.id, andLoggedFood.idare non-null; the API always returns these catalog IDsPhoto analysis uses the API's default, the reasoning-based analyzer, unless
reasoningEffortis set;AnalysisEffort.NONEselects the standard analyzerFood analyses wait at least 120 seconds for their answer
HTTP 409
conflictis reported asErrorCategory.VALIDATIONWater logs (
waterLogs.create,list,delete) and weight logs (weightLogs.create,list) per end user, with daily totals and latest daily weightsClient tokens can carry the
water_logs:read,water_logs:write,weight_logs:read, andweight_logs:writescopes; a token endpoint that mints least-privilege tokens must add them for these operationsServingSummary.weightGrams, the weight of one catalog servingCorrections send the prior scan in the API's new request shape;
foodLogs.updaterejects an empty patch before any network callglucose.predictrejects a fractionalGlucosePredictionProfile.agewithErrorCategory.VALIDATION; the API takes whole yearsThe example app has a Tracking tab for one day's food logs, nutrient totals, water, and weight
0.2.2 - 2026-09-16
Voice capture waits two seconds of silence before ending a capture;
VoiceCaptureSession(endOfSpeechSilence = …)tunes it
0.2.1 - 2026-09-16
Minimum Android version lowered from API 26 to API 24 (apps enable core library desugaring)
0.2.0 - 2026-09-16
Breaking:
DetectedFoodexposesservingandquantityinstead ofservings, matching the current January API;0.1.xfails to decode photo scansFood-log summaries per day or week with
foodLogs.getSummaryOptional reasoning-based photo analysis with
ScanFoodPhotoRequest.reasoningEffortSearchFoodsRequestgainsoffsetfor paging and acceptslimitup to 50
0.1.2 - 2026-09-14
Token-provider failures surface as
JanuaryException(ErrorCategory.AUTHENTICATION) instead of crashing the process
0.1.1 - 2026-09-03
Compiled with Kotlin 2.1.20 for compatibility with current React Native and Expo Android toolchains
0.1.0 - 2026-09-02
Coroutine-first Android SDK for API 26+, published to Maven Central
Provider-managed short-lived tokens with single-flight refresh
Nine-attempt bounded exponential backoff with jitter
User-scoped foods, restaurants, photo scanning, food log, and glucose clients
Food autocomplete, full food details, and local portion calculations
Photo preparation and native photo/barcode scanner
Reusable microphone speech recognition with live RMS, partial text, and stable lifecycle state
Typed imperial and metric glucose-profile measurements
Shared, white-label-ready Jetpack Compose demo components
Restaurant menu-item search, and paginated restaurant-menu lookup by restaurant ID (
getMenuItems)Single food log retrieval and no-content deletion aligned with API
v1.2
Last updated
Was this helpful?