- đĄ why-texten: what-to-eat skickar nu anvĂ€ndarens languageTag till motorn;
scoring anvÀnder buildWhy(..., ctx.languageTag) i stÀllet för hÄrdkodat buildWhySv.
WHY_TEMPLATES har redan alla 12 sprĂ„k â felet var bara att sv-SE var fast.
Default sv-SE = oförÀndrat beteende (sÀkert). (Rest: utgÄr-ingrediensens NAMN
i meningen Ă€r fortf. svenskt â motorn har bara svenska namn; noterat.)
- meal-box-förslagens text: whySv-strÀng -> useByUrgent-flagga + mealbox.eatBy/ready
i alla 12 sprÄk (klienten renderar via t()).
Co-Authored-By: Claude <noreply@anthropic.com>
Ny 'swap'-vy i rekommendationsmotorn med lag tackningsvikt (30->6) sa
betyg/smak/ratt maltidstyp styr i stallet for 'har hemma'. Byt rÀtt-
skarmen anropar view=swap, kringgar vardags-tidsgransen och hojer limit
till 20. Loser: bara ~5 val vid byte.
Buggen: nÀr anvÀndaren uttryckligen valde en högtid (t.ex. KrÀftskiva), en
tagg (Baka) eller sökte, hÄrdfiltrerade scoreCandidate bort alla recept vars
totalTimeMinutes översteg hushÄllets maxCookingMinutesWeekday (parts.time=-1,
rankAll slÀpper <0). De smala högtidspoolerna kollapsade dÄ till 0-1 recept
trots att flera fanns korrekt taggade.
Reproducerat mot riktig seedad databas: med en 20-min vardagsgrÀns gav
krÀftskiva 2, grillsÀsong 2, skolstart 0, bak nÀstan tomt. Med fixen ger de
4, 5, 3 respektive 18 â medan standardvyn "Rekommenderat" fortfarande
respekterar tidsgrÀnsen (3 snabba middagar).
Fix: uttrycklig avsikt (holiday/tag/search) förbigĂ„r vardagens tidsgrĂ€ns â
tiden blir mjuk rankning i stÀllet för hÄrt filter. En uttrycklig q.maxMinutes
i förfrÄgan respekteras fortfarande. Regressionstest lÄser mekanismen.
- DIET_PATTERNS: +nordic, +carnivore, +paleo (migration 0029). Ingen separat
"lchf" - LCHF tacks av befintliga "low_carb" for att undvika dubblett med
keto/low_carb. UI visar low_carb med etiketten "LCHF".
- Mobil onboarding + profil: 9 rena val (allatare..carnivore), 12 sprak.
- recommendation-engine: ny mjuk dietAffinity-poangterm (0-1, neutral 0.5).
Rankar recept mot matvanan - ALDRIG hart filter (uteslutande matvanor,
religion, allergener hanteras redan deterministiskt i sakerhetsfiltret).
low_carb/keto: lag kolhydrat. carnivore: hog protein + lag kolhydrat.
paleo: glutenfri/laktosfri-proxyer. nordic: svenskt/nordiskt kok + sasong.
- 6 nya tester (35 grona). Full typecheck 20/20 + mobil gron.
feat(recommendation-engine,api): S4 Smak/HÀlsa/Lager-vyer för 'Vad ska vi Àta?'
- ErsÀtter hÄrdkodat 'Cibello' i scale-batch, scale-smoke-test och export-verified.
- DB-backfill: 224 recept hade 'Cibello AI' i creator_display_name (vÀrdena
motsvarar nuvarande BRAND.name, ingen rad Àndrades men kontrollen Àr gjord).
- LÀgger till view-query-param (default|taste|health|pantry) med fördefinierade
ScoringWeights och samtyckesgrind.
- Unit-tester för vyer; integrationstester för vy-param, validering och
fallback utan personalization-samtycke.
- brand-guard grön; pnpm typecheck 19/19; pnpm test --force x2 grönt (34 tasks,
275 tester).