Work / AskCal / Wiki / Surfaces
pick
Surfacecanonicalverified 2026-09-28
SURFACE.MOBILE.FOOD.PICKSummary
Add a food to the plate you are already looking at, and come back.
Raw wireframe
- .context/designs/mobile/food/pick.html
Why it is drawn this way
It is not search, and that is the whole reason it exists. "+ Add item"
used to point at the search screen, and so did "Pick it from the food database
instead" on the correction screen. In the app that meant the Add tab — a tab
that no longer exists, its slot taken by Gallery; the logging screen it named is
now food/search.tsx. Either way the shape of the bug is the same: a different
tab, with its own stack, whose every result logs a meal of its own and returns
to Today. Tapping it did not add an item to the plate, it abandoned the plate —
the scan was gone, the rows the model had got right were gone, and the photo
that paid for them was gone. There was no way back because there was nothing
left to go back to.
Two screens that look almost identical and differ entirely in what they do, which is exactly what a wireframe has to make visible. The differences are all verbs: the header names the plate it is adding to; a result is "add", not "log"; the repeat lists and the whole-day copy are absent, because none of those are things you put on an existing plate; there is no tab bar; and the only exits are Back and choosing something. It cannot log.
It adds, and it does nothing else. It carried a second mode — replace,
which swapped one row for a database match, with its own header, subtitle and
placeholder. Its only entry point was inside "Where the numbers come from" on the
portion editor, and that section was removed, so nothing had reached it since.
The mode is gone; if the capability is wanted back it needs a home on a screen
first. This file's own summary claimed "replaces nothing" the whole time the code
replaced things.
One screen for both plates. An in-flight scan and a meal already in the log
take the same search and the same mapping, and two copies would be two places
for the confidence rule to drift: a database entry is Label, unless the source
declared no serving size, in which case the 100 g quantity is ours and the row
is Guessed. See confidence.
Related
Sources
- .context/designs/mobile/food/pick.html
Every project of mine is written down like this.
Read the résumé