detail
USR369 reported: added an ingredient, then changed the flour amount, and the ingredient's weight didn't update. Confirmed real -- every add-in was stored as a frozen {name,amount,unit} snapshot at add-time, read verbatim in 6 places (the add-ins card list, the state-save summary line, both mix-directions text blocks, and the main breakdown row) with nothing recomputing it as flour changed. FIX: known/suggested ingredients (matching ADDIN_SUGGEST) are now stored as a percentage of flour weight (isPct:true, pct computed from whatever amount was entered at add-time) instead of a frozen gram amount. Added addinLiveAmount() helper, recomputes live from current flour on every call; updated all 6 read-sites to use it instead of the raw .amount field. Custom/manual add-ins (typed by hand, no known density) and fixed-count items (Egg) still use a plain frozen amount since there's no % basis to scale from -- that's correct, not a gap. Also added a persistent 'suggested: ~Xunit' sub-label under each add-in in the list (not just while picking one before adding), showing the app's baseline suggestion for comparison even after the ingredient is added. render() now also calls renderAddIns() so the Add-ins card list itself refreshes live, not just the main breakdown.