MealStack release notes
Release 0.9.1
Shipped as build 86 154 changes, grouped by where you'll notice them.
What changed
Today
- Your first day starts when you set up. Install at 3 PM and breakfast and lunch read “before you started”, dimmed, instead of hours late: nothing to skip one at a time, and they don’t count against the day. Tick anything you did eat and it logs at its own time.
- A late session asks before it squeezes. When dinner or the after-session shake belongs past your “Last meal by” time, Today asks “Eat later tonight?” and offers to move tonight’s last meal (say to 11:30 PM) for today only. Say yes and the evening lands after the session; keep your time and Today says what won’t fit. Move the session back and tonight’s time follows it. Undo is on the line.
- Something eaten too close to the session asks whether the session can start later. Pre-workout at 5:54 for a 6:00 session asks “Start the session later?” with 6:25 (the half hour it needs), 6:15, 6:30, a time you pick, or keep 6:00. A meal an hour before lifting asks too. It asks once for what you ate. Something logged from the Lock Screen asks when you next open the app, while the later start is still ahead.
- Linked to IronStack, a session moved in either app shows up in the other: “IronStack moved today’s session. 6:25 PM, from 6:00 PM.” with Sync or Skip. Neither app moves the other’s session on its own, and a moved session in MealStack is said in IronStack the same way.
- The Lock Screen shows one meal at a time. The card for a meal past its time used to stay up beside the next one, still counting how late it was.
- Add a snack from Add: a name and its macros, or one of your meals, at the time you ate it. It counts in today’s totals and in History, and nothing on the day moves.
- One rule for on target: within 5 g either way, on the bars, the line under them, the calories and the stack pages. Calories are on target when every macro is.
- Rows say which way they moved: “moved up” or “moved back”, five minutes or more from the time the plan gave them, the same words for VoiceOver.
- “How your day is timed” in the date and session menus says what the session, the carb surge, fuel, late meals, your first day and snacks mean.
- “Session done” says when it opens, “Session done (from 5:30 PM)”, instead of sitting greyed out.
- With Apple Health reading on, what other apps logged today shows under your totals: “Also in Apple Health today: 1,420 kcal (MacroFactor)”. It’s never added to them.
- Totals say logged meals count as planned, and the Log sheet has “Ate something different?” to change the plate for today before you log it.
- The stack menu only shows when your rotation has more than one stack.
- Today opens with Mission Built, MealStack and the tagline at the top, the same way IronStack’s Home does.
- Taps land faster. The clock that moves the countdown no longer redraws every screen in the app, logging a meal no longer waits while your whole history is saved, and the Log sheet closes before the work starts instead of after.
- Moving today’s session moves meals instead of squeezing them. Move a 6:00 PM session to noon and the meals that no longer fit before it, two hours apart, go after it (“moved after the session”), with the carb surge still before it and dinner after them. Move it late enough that dinner would run past your last-meal time and dinner comes before the session instead, when the morning has room. Today says what moved.
- Swipe a meal right to log it where it stands. Swipe left for Skip, and Change to put something else on the plate for today; on fuel, Skip and Delete. Push the row all the way and it does the first thing on that side without waiting for a tap.
- Hold a row for everything it can do: log it, log it at a time, 15 / 30 / 45 minutes later, put it back on its time, swap it, open the plate, skip it, meals today, and for fuel, delete it.
- Snooze a meal from its hold menu or Not yet: 15, 30 or 45 minutes, an hour, or Until a time you pick. What comes after it moves with it, and so does its alert.
- Snooze today, from the date at the top: no alerts and nothing called late for the rest of the day, on Today, the widget or the Lock Screen. The plan stays as it is, tomorrow is a normal day, and the date says “Snoozed” until you turn it off.
- “Add” sits under the day’s list, in place of “Add fuel”: a meal on today, fuel on the plan, a meal off your Meals shelf, or ask Coach. A meal added this way is today’s only, and the day says so if nothing else fits before your last-meal time.
- The Fuel explainer no longer pops up over Today the moment a plan is built. It’s gone: what fuel is belongs on the Add fuel sheet, where you’re adding fuel, and it’s still there in full.
- “Since last” stays on screen when the day has nothing else that fits, and when it’s fed: how long since you ate is the question those two screens leave open, and it used to disappear with the countdown. At the accessibility text sizes it drops under the countdown instead of being squeezed beside it.
- “Since last” counts from last night’s last meal until you log the first one today, so the morning shows how long you’ve fasted. Water and creatine don’t restart it.
- Overnight fast, in Settings under Your day: pick 12, 14 or 16 hours. Once the day’s meals are done, “Day’s fed” shows how far you are toward it and when you’ll get there, and “Since last” counts toward it until the first meal next morning. Off by default.
- Check my calendar, in Settings under Your day, off until you turn it on: MealStack reads today’s events, and when a meal lands during one, Today offers to move it to the nearest time around it that keeps your gaps (“Move it to 12:15 PM”), or Leave it. It never moves anything by itself and never changes your calendar.
- The line that says what moved now offers “Keep every day” when there’s a standing version of what you just did: an extra meal today becomes the plan’s count, and a stand-in becomes the plate. Keeping leaves its own line, with its own Undo.
- A meal the day can no longer hold says why under its name: “Session started without it” or “Won’t fit before 9:00 PM”. Tap the box if you ate it, or tap Skip. When only those are left, Today says “Nothing else fits today” with Skip the rest, instead of “Day’s fed”.
- With no daily target set, the totals show what you’ve eaten and nothing about what’s left, with “No daily target yet · Set one” under them.
- “Add fuel” sits under the day’s list.
- “Swap for another meal”, under Not yet and on a meal’s page, opens your Meals shelf for that meal, ready to use one for today only.
- Swapping a meal, the Meals shelf now starts with “Add a new meal”. Build it there and it goes straight on the meal you were swapping, today only or for good.
- Tapping the box on a logged meal opens the meal instead of un-logging it. Un-log is on the meal’s page, and it can be undone.
- Push back reads “15 min later”, and the session steps read “1 hr earlier” and “30 min later”. The line over the next item stays on one line (“Fuel · 5 hr 19 min late”).
- The day type menu says “Today only. Tomorrow follows your training days.”
- The log sheet’s “What happens next” lists what comes after the meal you’re logging. Fuel from earlier in the day that you didn’t take no longer shows up there.
- A session moved to its usual time by an earlier build no longer offers “Usual time”.
- The Home Screen widget sits on the app’s dark ground at every size, with the phone in light or dark. It used to be a pale tile in light mode.
- The widget moves past a missed carb surge when the session starts, even on a day with nothing timed at the session itself. It used to wait for the meal after.
- VoiceOver reads each meal in the list as one item (name, time and where it stands) with Log, Skip and Open as actions, and reads times as “1 hour 23 minutes”.
- At the largest text sizes the totals stack instead of squeezing into one row.
The Plan tab
- Type an amount. Tap it and a keypad opens with plus and minus either side; the totals move as you type. Anything weighed has a g / oz switch, and ounce rows read “6 oz · 170 g”.
- A new ingredient takes the label’s per-serving figures: pick Per serving, type the serving’s grams, then the numbers as printed. MealStack works out the rest.
- “Today only” means today only. A rename, a new note or typed macros stay on today (the meal says “for today” with Put it back) and the plan is untouched; Keep every day is on the line. It stays on offer after a meal is logged, and then changes what today counts as eaten.
- The stack page has the meal count: “5 meals on training days, Add or remove”.
- The built-in stacks, meals and pantry use plain names: “protein powder”, “meal-replacement shake”, “electrolyte packet”. Anything you edited keeps your words.
- Swipe a stack, meal or ingredient left for the trash, the way iPhone lists work. The line at the bottom says what went, with Undo.
- Every trash button says Delete, and every line after one starts with “Deleted” and what went, with Undo. Skip is still Skip: a skipped meal keeps its place.
- “From your meals”, opened from Today, only picks a meal now. Deleting from there hid the Undo behind the sheet. Deleting fuel from its own page closes the page, so the Undo is right in front of you.
- History and Badges open faster with months of days on the record: each past day is worked out once, not every time the screen draws.
- Edit, top left, puts a circle next to each row. Pick as many as you like, or Select all, and Delete takes them together as one change with one Undo. The rotation always keeps one stack, and the built-in ingredients stay.
- A kept stack that was on the shelf twice, same name and same meals, is now there once.
Around the app
- The welcome has five doors: Just the times, My coach’s plan, Let Coach build it, I’ll build it myself, and See a finished day (the sample plan, every plate filled). A .mealstack file is still one tap away under them.
- Apple Health is recommended both ways on first use: write the meals you log, and read food and weight from other apps. Either switch can go off on the sheet, “Not now” turns both off, and Settings has an Apple Health section to change them any time. If you already write to Health, putting the sheet away keeps writing on.
- About you offers your weight from Apple Health.
- The usage question can be swiped away. That’s “Not now”.
- Rest days are recovery days now, everywhere: Today, the Plan tab, History, badges, Coach and the plan files you read. You can still move and do light work on them; the name says so. The files say it too: plan files are now format 2, with a recovery list where they had a rest list. Files from before (format 1, from the skill, a coach or an older phone) still open and are read in the new word. Your plan, stacks and log are renamed on the first launch, once, and nothing else about them changes.
- Settings is laid out the way you’d look for things: You, Your plan, Your day, Travel, Notifications, Apple Health, IronStack, Coach, Your data, The app, and Start over last, with Delete all MealStack data at the bottom of it.
- Meal alerts have a row in Settings, under Notifications. It says whether they’re on, asks if you never answered, and opens iOS Settings if you said no. Calendar and location get the same way back when they’re off.
- Travel has one home: its time zone and, with Set travel automatically on, the area around it. Set home to here takes both, with Undo.
- “How your day is timed” is also in Settings, under Your day, and now covers the overnight fast, the calendar and travel.
- The welcome says what MealStack is for: days that change. Set your session and every meal is timed around it, so you go in fueled and come out recovering.
- Start over, Reset today’s log and Clean the shelves each ask first, say what they will do, and wait for a yes. Reset and Clean still offer Undo afterwards.
- “Since last” shows on Today as soon as a meal is logged, not a minute later.
- New to the app, you meet it a feature at a time: a short tip the first time the day has a meal to swipe, the first time Coach answers, and on your first travel day. Each shows once, one a day at most, and is gone for good when you close it.
- Settings, Your data, What leaves the phone is six short rows with an icon each: what’s sent, what never is, Coach, what the server keeps, how to turn it off, and iPhone’s own analytics switch. The full text is one tap away under them.
- Settings has “Clean the shelves”: every meal, stack and ingredient you added or brought in comes off, and the shelves go back to what MealStack ships with. Your plan and your log stay as they are.
- Changes you make in Settings (clearing Coach history or About you, cleaning the shelves, resetting today) show their line with Undo at the bottom of Settings. It used to post behind the Settings sheet, where you couldn’t see it.
- The tab bar stays full size with its labels. It used to shrink when you scrolled and often stayed small back at the top.
- The app calls them ingredients everywhere now, with no more “foods” or “pantry”. The shelves replaced the last mentions of the Kitchen, and a plan file may now list its ingredients under “ingredients”.
- About’s links all go to live pages: the plan skill, the release notes (opening on this build), the privacy page, and two new rows for MealStack’s page on missionbuilt.io and the MealStack Schema.
- A meal logged from the Lock Screen or the widget late at night, with the app opened the next morning, now lands on the night it was eaten. Before, it marked the same meal eaten on the new day, at last night’s time.
- “Not yet · 20 min” on a meal alert asks again twenty minutes after you tap it, even when you answer the alert late. Before, answering more than twenty minutes late meant no second alert.
- The home screen widget turns over at midnight on the nights the clocks change, not an hour early or late.
- “Ate it now” on a meal alert is kept even when the app wasn’t running; it’s filed the next time you open MealStack. An alert left over from yesterday no longer logs or moves today’s meal.
- If one of MealStack’s files ever can’t be read, a copy is kept beside it before anything is written over it.
- Every change you make says what it did in one line, with Undo: logging or un-logging a meal, skipping it, pushing it back, a meal for today, clearing today’s log, and on the shelves removing a meal, a stack or an ingredient, taking a stack out of the rotation, moving it, adding it or running it this week. Undo puts things back as they were, Apple Health included. Only the latest change can be undone, and a log from the Lock Screen, the widget or an alert doesn’t post a line.
- That line now sits just above the tab bar on Today, Plan and History, and on the screens you open from them, so a change on the shelves says so where you made it. Tap it to put it away.
- Meal alerts read “Breakfast · 7:30 AM”, with no code in front, and an alert for something with nothing on it (the jug, a meal not filled yet) no longer carries a line of zeros. The second button reads “Not yet · 20 min”.
- Apple Health names each entry by the meal alone (“Lunch”, not “M3 · Lunch”), and a meal for today by its own name.
- Times read “1 hr 23 min” and “23 min” in the app and on the widget, instead of “1 h 23 m”.
- The meal the plan builder pins after the session is called “After the session”, and the example plan’s and The Rotation’s shake is the “After-session shake”. Nothing is called post-workout any more; the meal count readout says “the carb surge and the meal after the session”.
- The Rotation’s notes say stacks, not weeks (“Stack 1 of The Rotation”, “The Base · breakfast, training days”), the built-in meals lose their “Library” tag, and the scoop’s note names it in full: Undefined Pre-Workout V2. The copies MealStack put on your shelves and your plan take the new words on the next launch; anything you edited, renamed or removed stays as you left it.
- The built-in meals on the Meals shelf lose ”· training day” and ”· recovery day” from their names: it’s “Paprika chicken box” twice, and the note under each says which day it’s for (“The Base · lunch, recovery days”). The copies MealStack put on your shelf are renamed on the next launch; one you renamed keeps your name. A meal you named that way yourself still drops it when you put it on a meal.
- Right after Build my plan (or the sample plan, a plan file, or Coach’s schedule), the question about meal alerts comes first, and the question about usage data comes once you’ve answered it, instead of on top of it.
- On a fresh install the Meals shelf has the Tex-Mex recovery-day salmon. It was taken for the salmon night with the same plate and left off.
Travel
- Travel is a chip at the top of Today, the same as IronStack’s: it says where you are, Home or Away, never what a tap would do. Tap it to switch; the line under it has Undo. When a trip was turned on by location or by the phone’s time zone, it says “auto”. Settings has the same Home or Away choice under Travel.
- Undo on travel puts it back exactly as it was. Away then Undo no longer leaves a one-day trip in History and the badges.
- Travel follows one switch shared with IronStack: turn travel on or off in either app and both see it.
- Set travel automatically, in Settings under Travel, off until you turn it on: when the phone is more than 100 km from home, travel turns on by itself, and back home it turns off. Home is where it first finds you, and “Set home to here” moves it. Turning travel on or off yourself always wins. MealStack asks for your location only when you turn this on, and keeps only the home area, rounded to about a kilometre.
- Flying west no longer makes Today jump between two days every few seconds after midnight back home. Today runs on until midnight where you are, then the next day starts on local time.
- Away from home, or with the week set to start on Monday, Today runs this week’s stack. Before, a trip west or a Monday-first calendar could put next week’s stack on the plates.
- On a travel day the session time wheel and the log time wheel show the same times as the rest of Today.
Meals, fuel and History
- Tap any day in History for its meals: when each was due, when you ate it, how late or early, its macros, then fuel, snacks, and the day against its target.
- History says what on time means: eaten no more than 15 minutes after the time on screen when you logged it. Early counts as on time.
- History opens with your streak: full days back to back, where a full day has every meal on the plan logged or skipped on purpose (today in progress never breaks it). Under it, how many badges you’ve earned and the one you’re closest to (see Badges). Each one drops in from the top of the screen the moment you earn it.
- Fuel is what you take for the session rather than as a meal: pre-workout, the jug you sip through the session, the shake after it, electrolytes, creatine, water. The meal editor, Add fuel and a tip on Today say so in those words.
- The shake after the session is fuel now, and so is the jug. The example plan and The Rotation say so, and on the next launch a “Post-workout shake” or “After-session shake” after the session becomes fuel on your plan and your kept stacks, including a Rotation file you brought in. Days you already logged stay as you logged them.
- Anything pinned to the session start is fuel, whatever it was called.
- Fuel can carry a plate or typed macros, and they count: in Today’s totals, a stack’s totals, Apple Health, the widget and the Lock Screen. The item’s page, the log sheet and Today show its plate and numbers; fuel with nothing on it keeps the plain look. Its editor has the plate, the ingredients and the typed macros, and switching a meal to fuel no longer hides its plate.
- Fuel you took and then took off the plan stays on the day as itself; it no longer lands on another fuel item’s place (the shake) and marks that one taken.
- Fuel is still never a meal: it isn’t in the meal count, doesn’t move the meals around it, isn’t scored for timing, and stays off the Meals shelf.
- Counts say meals and fuel apart, never one number for both: “5 meals · 3 fuel” beside Today’s list and on a stack’s totals, “5 meals and 2 fuel to come” under Today’s totals, “Training: 5 meals · 3 fuel” when you bring in a plan file, and “3 of 5 meals eaten, 1 of 3 fuel taken” when VoiceOver reads the bar.
- History leads with a missed carb surge: “Carb surge missed · Lunch 40 min late”, not the shake after the session. A carb surge logged after the session started is missed too, and so is today’s once the session starts without it; meals still to come today are never called late or missed.
- Fuel pinned well before the session (water two hours out) no longer squeezes the morning meals closer together.
- Fuel you logged stays fuel when the day changes under it: switching to a recovery day after the pre-workout scoop no longer puts the scoop on a meal’s place and hides that meal.
- History counts meals, not fuel: a skipped scoop no longer makes a missed meal look like a full day, and creatine at 6 AM no longer stretches the eating window.
- A meal logged hours late no longer schedules what can’t happen. Lunch logged at 6:46 PM on a 6:00 PM session leaves the carb surge where it was, marked as passed, instead of moving it after the session. Breakfast logged at 10:44 PM no longer puts lunch at 12:44 AM: a meal that won’t fit before your “Last meal by” time shows at that time, marked, and nothing is ever scheduled on the next day.
- Once the session starts, a carb surge (or scoop) you never logged is marked as passed.
- Those meals stay on the day to log or skip, but Today, the widget and the Lock Screen move on to what can still happen, and no alert comes for them. At day’s end they count as missed, as before.
- “Session done”, in the session menu, marks today as trained when there’s nothing to log at the session, starting at the session’s time (or now, if you tap it before then). The meals after the session move with it, the day stays a training day, and Undo takes it back.
- Once the session is marked done, the session menu reads “Trained” and can take it back (“Not trained yet”) after the Undo line has gone.
- Picking the usual time for today’s session puts today back on the usual time, so “Usual time” isn’t offered for a move that isn’t one.
- Switching a recovery day to training says so first: “Training day. Session 6:00 PM.”
- History calls the meal before the session what the app calls it: “Carb surge missed”, “carb surge 74 min before”.
- Today’s row in History is a day in progress: a meal you haven’t eaten yet is still to come, not missed, and the row follows today’s day type, meal count and session.
- Clearing today’s log also takes what it wrote to Apple Health out, and Undo puts both back.
- On fuel, the item’s page drops Ask Coach and its button says Skip, and with nothing on it, the macros and the plate too. The log sheet asks “When did you take it?” and leaves off a line of zeros.
- A meal you logged before switching stacks says “Logged from your earlier plan” instead of “In place of …”, with nothing to put back. A skipped meal’s button says Un-skip, and a meal for today wears “Today only”.
- The log sheet says “11 hr 18 min later than planned”, not “678 min”, the Planned button no longer cuts off its time, and “What happens next” says “won’t fit” or “session started” for those meals instead of showing a time they won’t move to.
- History puts today at the top as “Today · in progress”. The averages and the on-time share cover the days before today and say so, and “Nothing behind you yet” no longer shows once you’ve logged a meal.
- Each day in History shows its stack and, on a day that ran on its own count, “4 meals (plan: 5)”. Older weeks read “6 of 7 carb surges on time”.
- Once your session starts, the widget stops holding up a carb surge you didn’t log.
Badges
- 123 badges, up from six, in eleven families: milestones, consistency, timing, training days, macros, recovery days, the overnight fast, on the road, Coach, the Kitchen, and both stacks. Some come in the first days (your first plate, a surge landed before a session); some take a year (365 full days in a row, a thousand full days, five thousand plates). Six are secret until you earn them.
- Only good habits pay: a full day, a meal on time, the carb surge 30 minutes or more before the session, the shake on time after it, protein covered, a night’s fast. Nothing rewards a skip or a snooze, and nothing you’ve earned can be taken back.
- A Badges page, from History (tap the badges under your streak) or Settings, Your badges: your streak now and your best, full days, badges earned of the whole set and the latest; then Next up, the few you’re closest to, each with a bar and exactly what to do; then every family, earned ones dated, the rest with how far along you are. Tap any badge for the whole story.
- Double Stacked: use MealStack and IronStack on the same phone. Then a Stacked week and a Stacked month of days using both, Fuelled and Stacked for a carb surge landed before a session you log in IronStack, and Straight off the bar for the shake on time after a session IronStack timed. IronStack has Double Stacked too.
- Badges the days you’ve already logged have earned arrive quietly, dated the day you earned them, with one line (“You’d already earned 14 badges”) instead of a toast each. Tap it for the Badges page.
Bringing a plan in
- Your coach’s plan comes in through Coach. Send photos, a PDF or the text of it; Coach writes it down and hands you a card, “Review and bring it in”, and you check every meal before it becomes your plan. No skill, no leaving the app.
- A plan file tapped on a fresh install opens on “Make it my plan”.
- A plan file is checked for size before it is read: over 1 MB, or past 52 stacks, 16 meals on a day, 400 ingredients or 200 characters in a name, it is refused with the reason. A meal set more than a day (1,440 minutes) from its anchor, negative typed macros, a target past 1,500 g, or a schedule time that isn’t a time are refused too.
- A pasted plan is read once you stop typing, not on every key.
- Bringing a plan file in says what’s already here before anything lands (“2 stacks (The Base, Rice Bowls) and 5 meals are already here under the same names”) and asks: Replace the old, or Keep the old. Replace puts the file’s versions in their place, where they stood; Keep leaves what’s here and brings in the rest. Meals you made yourself or got from Coach are never replaced. The whole import is one line with Undo.
- Bringing the same plan file in again no longer adds everything twice, and making it your plan again doesn’t keep a copy of the stacks it’s replacing.
- A plan file may give fuel ingredients or typed macros (the shake after the session, the carbs in the jug) instead of being refused, and an item at the session start reads as fuel whether or not the file says so. Fuel stays off the Meals shelf when a file lands.
- Two plan files that each declare an ingredient under the same id (two coaches’ “sauce”) now keep both, each with its own figures. Before, the second file’s plates used its figures while the Ingredients shelf showed the first file’s, and editing that ingredient changed the second file’s plates.
- A plan file that declares an ingredient under a built-in’s id is refused, as the format says, instead of quietly standing in for the built-in.
- A plan file from a newer format now says to update the app, instead of saying it isn’t a plan file.
- The plan skill’s checker now refuses the files the app can’t read (a stack with no name or no rest list, steps written as one line instead of a list), so a file it passes always opens.
Coach
- Coach takes a PDF (up to 30 pages) or a text file (CSV, TXT, JSON, .mealstack) from the paperclip. A very long paste goes whole, as a file.
- Take a plate, a target or the whole plan from the Coach tab and a line says where it went, with Open it or See the plan.
- Up to five menu photos on one message, the same as IronStack. Pick several at once, take more with the camera, and take any one off before you send. A sixth is refused with a line saying why.
- Menu photos are shrunk as you pick them, so Send doesn’t stick on a big camera photo. A square photo is no longer turned away.
- A message your phone gave up on but Coach answered comes back when you tap Try again, and doesn’t count twice. Coach gets up to four minutes on a big answer, and the phone waits for it.
- A long meal name, a food brought in from a plan file, or a lot of your own foods no longer switches Coach off.
- Delete all MealStack data now says what happened on the server: removed, nothing there, or couldn’t be reached. When it couldn’t, MealStack asks the server again the next time it opens with a connection.
- Coach knows the shake after the session and the jug are fuel. Ideas it gives for them land as fuel when you take them, and stay off the Meals shelf.
- A Coach message lost to a dropped connection on the way to the model no longer counts against your allowance.
- A Coach message that failed just after midnight UTC gives the allowance back to the day it was taken from, not the new day.
- Coach only says your phone is offline when it is: no Wi-Fi and no cellular. When you’re connected and Coach’s server doesn’t answer, it says Coach couldn’t be reached, tries once more on its own, and puts Try again under the message.
Fixes
- Today scrolls again when your finger starts on a meal. Sometimes it didn’t move at all: the swipe on each row was catching the scroll. A row now only moves when you swipe it sideways.
- A meal with a long plate still shows on the Lock Screen. Past what fits, iOS dropped it without a word.
- Tapping a meal alert, or its Ate it now or Not yet buttons, could close the app instead of opening it. It opens now.
- A late start on a recovery day no longer says the carb surge still lands before your session. A recovery day has no session: it says your last meal still lands by your last-meal time.