What's new

Recent updates, improvements and new features. Newest first.

May 2026

Latest

Input validation & stability fixes

πŸ›‘οΈ

API enum validation

Three endpoints (manual workout logging, food log, and habit creation) now return a clear 400 error instead of crashing when an unrecognised activity type, meal type, or habit frequency is submitted. The valid values are listed in the error message.

πŸ“‰

Nutrition target validation

Calorie, protein, carb, fat, and water targets in Nutrition Settings now reject negative values and unrealistically high numbers (above 100,000) rather than silently storing them.

πŸ”

Dashboard tab navigation fix

Opening the dashboard with a ?tab= URL (e.g. from a notification link) no longer causes a brief page freeze. The tab was being read during server-side rendering and causing a React hydration mismatch. It is now read after the page loads.

⏱️

Workout duration cannot be negative

Manually logged workouts now reject a negative duration (e.g. βˆ’30 minutes). The field previously accepted any number including negative values. It now returns a clear error if duration is below zero.

πŸ“

Workout field upper bounds

Manual workout entries now enforce sensible upper limits: duration cannot exceed 1,440 minutes (24 hours), calories cannot exceed 10,000 kcal, and heart rate fields cannot exceed 250 bpm. Values above these limits return a clear error.

🎯

Habit target values cannot be negative

Habit numeric targets (floor value, target value, stretch value, and times target) now reject negative numbers with a clear error. Previously, a negative target could be saved silently.

πŸ₯—

Food quantity cannot be negative

Food log entries now reject a negative quantity (e.g. βˆ’50g) with a clear 400 error. The how-to guide stated that negative values were rejected, but the server-side check was missing β€” this has been corrected.

πŸ‹οΈ

Exercise set reps and weight bounds

Manually logged strength workouts now validate individual set data. Reps cannot exceed 9,999 and weight cannot exceed 2,000 kg per set. Non-numeric or negative values in either field now return a clear error rather than being stored silently.

May 2026

Fitbit integration & sync improvements

πŸ”΅

Fitbit connected

Fitbit is now a live integration. Connect from the Integrations tab and sync your workouts, daily steps, sleep stages, and weight log entries. Fitbit uses OAuth β€” you will be redirected to approve access.

⚑

Per-source sync

The sync button next to each integration now syncs only that source rather than triggering a full re-sync of everything. Faster, uses less API quota, and feels more responsive.

πŸ”„

Smarter deduplication

The dedup engine now re-processes recent unconfirmed workouts on each sync. If a Strava run and a Hevy session for the same workout arrived at different times, they will now correctly merge into one entry rather than staying as separate events.

May 2026

How-to page fixes

πŸ–±οΈ

Consistent click language

The how-to guide previously used "tap" in a few steps (barcode scanning, favourites) while the rest of the page used "click". All instructions now consistently use "click" throughout.

πŸ–ΌοΈ

Logo filename fix

The FitMesh logo files had a typo in their filename (FtiMesh instead of FitMesh) across all pages. The files and all references have been corrected sitewide.

April 2026

Food library, favourites & recipe builder

⭐

Personal food library

Every food you log via AI (Describe, Photo, or PDF import) is automatically saved to your personal library with the correct macros per 100g. Go to Library β†’ Foods to see everything, organised into Favourites, Recent, and All.

β˜…

Favourite foods & meals

Tap the β˜… star on any logged food row to save it as a favourite. Or use the "β˜… Save as meal" button at the bottom of any meal edit sheet to save an entire meal in one tap. Favourites appear at the top of the Favourites tab whenever you add food.

🍽️

Quick-log from favourites

The ⭐ Favourites tab in the add food modal now shows both your starred individual foods and saved meals. Starred foods show the default serving β€” tap to adjust quantity, then log in one tap. Saved meals log all items at once.

πŸ“–

Recipe builder

Go to Library β†’ Recipes β†’ + Create recipe. Describe the dish in plain text and AI parses it into a full ingredient list with macros. Adjust quantities per ingredient β€” macros rescale automatically. Set the number of servings and see per-serving totals before saving.

✏️

Edit logged food entries

Tap any logged meal card to open it, then tap ✏️ on an individual item to edit it inline. Change the name, quantity or any macro. Changing the quantity automatically rescales protein, carbs, fat and calories using the original per-gram ratio.

April 2026

Photo food logging & describe improvements

πŸ“·

Photo food logging

Tap πŸ“· Photo in the add food modal to take or upload a photo of your meal. AI identifies every item on the plate and estimates portions and macros. Tick what to keep and log in one tap. Uses 1 AI credit per photo (free: 3/day, PRO: 15/day).

⌨️

Keyboard mic & Wispr support

The Describe tab now works seamlessly with your phone keyboard's built-in microphone and dictation tools like Wispr. Just tap the mic icon on your keyboard and speak β€” no in-app microphone permission needed.

⚠️

Photo accuracy warning

When using photo logging, a note reminds you that visual estimates can vary and suggests switching to the Describe tab for more precise logging when accuracy matters.

March–April 2026

Polar integration & recovery tracking

πŸ”΅

Polar integration

Connect your Polar device or Flow account to sync workouts automatically. Go to the Integrations tab and connect Polar to get started.

😴

Recovery tab

A new Recovery section in the Training tab shows sleep, HRV, and readiness data from supported devices. Helps you track how well you are recovering between sessions.

March 2026

Account controls & data safety

πŸ”’

14-day deletion grace period

When you request account deletion, your account is scheduled for deletion in 14 days rather than deleted immediately. You can cancel from Account β†’ Delete account at any point during that window. A notification is sent with a link to download your data first.

πŸ“₯

Data export before deletion

The deletion notification includes a direct link to export your data so you can keep a copy before anything is removed.

πŸ’³

Billing portal fix

The Manage Billing button in Account now correctly detects whether you have a Stripe subscription. Gifted PRO accounts (no card on file) no longer see a broken button.

March 2026

Habits & compliance

🎯

Tiered compliance targets

Habits now support three tiers: a minimum floor (non-negotiable), a target (the actual goal) and a stretch goal. The weekly view shows which tier you hit each week rather than a simple pass/fail streak.

πŸ”’

Multiple completions per day

Habits like "take medication 3Γ— daily" or "drink water 8Γ— daily" now track count per day rather than a binary yes/no. Set a daily target and log each completion separately.

πŸ“Š

Compliance percentage view

Each habit now shows a rolling 7-day and 30-day compliance percentage alongside the streak. Useful for seeing whether you are consistently hitting a target, not just whether you're on a current run.

February 2026

Nutrition foundations

πŸ₯—

Describe food with AI

Type what you ate in plain English and AI breaks it into items with estimated macros. Works for complex meals, cooking from memory, or anything that isn't in a database.

πŸ“₯

Import from MyFitnessPal

Upload a PDF export from MyFitnessPal (or similar) and FitMesh reads every entry and previews it before import. Brings your history across without needing CSV access.

πŸ’§

Water tracking

Track daily water intake with a tap counter (250ml per tap). Syncs with water-based habits β€” hitting your daily target auto-completes any water habit you have set up.

πŸ“ˆ

Nutrition trends & charts

The Log tab shows daily calorie bars for the last 30 days, 7-day rolling macro averages, and a weekly summary card.