Commit Graph

13 Commits

Author SHA1 Message Date
Claude 2076bbc15b i18n(rekommendationer): localisera 💡-raden + meal-box-text (12 sprĂ„k)
- 💡 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>
2026-08-21 02:32:31 +00:00
Claude 5867a95d64 fix(byt-ratt): bredda urvalet - alla lampliga ratter, inte bara det man har hemma
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.
2026-08-19 23:33:32 +00:00
Claude 2e702d6582 fix(rekommendationer): vardagens tidsgrÀns gömmer inte lÀngre högtids-/bakrecept
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.
2026-08-19 15:10:04 +00:00
Claude 2587ff539b feat(diet): lagg till nordisk/carnivore/paleo + LCHF som matvanor med mjuk rankning
- 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.
2026-08-18 23:03:21 +00:00
Sven (AAMOS AI) 260f816c83 feat(recommendations): MIKRO MEAL-1 mÄltids-lÀmplighet i rankningen (nedvikta frukost/dessert vid huvudmÄltid) 2026-08-17 20:37:47 +07:00
Sven (AAMOS AI) 19af7e0720 feat(season): easter-offset + nth-weekday datumregler för marknads-högtider (MIKRO A)
CI / Typecheck, test & build (push) Failing after 42s
2026-08-14 21:46:17 +07:00
Sven (AAMOS AI) 33c72ddacd fix(reco): fria sökord + mjuk-filter sÄ rÄvaru-sökning (kyckling) ger rÀtt recept (MIKRO 60)
CI / Typecheck, test & build (push) Failing after 42s
2026-08-14 20:28:56 +07:00
Sven (AAMOS AI) c32a7e33c7 ci: trigga pÄ master + formatfix inför Gitea Actions
CI / Typecheck, test & build (push) Failing after 2s
2026-08-13 17:25:14 +07:00
Sven (AAMOS AI) 4116653b51 S6: i18n-paritet, provenans + eval, copy-skanning, fabricerade-minnes-eval 2026-08-11 05:20:27 +07:00
Sven (AAMOS AI) 1e18146665 fix(recommendation-engine): S4-FIX — opersonliga vyer fungerar utan samtycke via depersonalize(weights) 2026-08-11 04:02:46 +07:00
Sven (AAMOS AI) f4a603e977 fix(recipe-generation): BRAND.name-interpolation för creatorDisplayName + rubriker/filnamn
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).
2026-08-10 05:17:43 +07:00
Sven (AAMOS AI) 0885f5bceb feat(recommendation-engine): S1 personalisering för 'Vad ska vi Àta?'
- Mallbaserad proveniens i 12 sprÄk (inga fria AI-texter i rekommendationer).
- memoryFit, tasteFit, cookingAssumptionFit endast vid personalization-samtycke.
- HÄrd grind i API:et: lÀser memory_items/taste_signals/cooking_assumption_profiles
  endast nÀr userConsents.personalization = granted.
- NON_PERSONALIZED_WEIGHTS bevarar existerande beteende vid avsaknad av samtycke.
- Positiv, icke-restriktiv nÀringscopy (R7).
- Deterministisk scoring + enhetstester för S1.
- Integrationstest som verifierar provenans-gate med/utan samtycke.
2026-08-10 03:23:31 +07:00
Sven (AAMOS AI) ac5340195a Initial commit (unpacked platform) 2026-08-05 19:21:11 +07:00