Commit Graph

104 Commits

Author SHA1 Message Date
Sven (AAMOS AI) 5f547708ae feat(auth): koppla login/register till Firebase → /v1/auth/session (AUTH-5) 2026-08-15 20:47:11 +07:00
Sven (AAMOS AI) 8352c3a0ce feat(mobile): FirebaseAuthProvider (e-post/lösen) bakom AuthProvider-gränssnittet (AUTH-4) 2026-08-15 20:39:29 +07:00
Sven (AAMOS AI) 8f61ef1592 feat(api): /v1/auth/session – växla Firebase-ID-token mot intern session (AUTH-3) 2026-08-15 20:22:09 +07:00
Sven (AAMOS AI) f417902ac9 feat(api): TokenVerifier-gränssnitt + FirebaseTokenVerifier (AUTH-2) 2026-08-15 19:37:11 +07:00
Sven (AAMOS AI) ed2e14f98e feat(auth): portable auth provider interface types (AUTH-0) 2026-08-15 19:13:18 +07:00
Sven (AAMOS AI) 53c9d9d01d feat(mobile): klickbara högtids-chips som söker högtidsmaten (MIKRO E2)
CI / Typecheck, test & build (push) Failing after 47s
2026-08-14 22:51:52 +07:00
Sven (AAMOS AI) 9c8ffbe2ab feat(reco): högtids-sök – expandera till eventets foodTags + holidayTag (MIKRO E1)
CI / Typecheck, test & build (push) Failing after 43s
2026-08-14 22:45:44 +07:00
Sven (AAMOS AI) ed536bcf96 feat(reco): visa högtidsnamn på användarens språk (nameLocalized || nameSv) (MIKRO D)
CI / Typecheck, test & build (push) Failing after 43s
2026-08-14 22:38:46 +07:00
Sven (AAMOS AI) cd6a9eb556 feat(mobile): redigera kost/allergier/religion i profilen när som helst (MIKRO 63)
CI / Typecheck, test & build (push) Failing after 43s
2026-08-14 21:17:55 +07:00
Sven (AAMOS AI) f102288676 feat(mobile): välj religiös kosthållning (halal m.fl.) i onboarding – filtrerar fläsk (MIKRO 62)
CI / Typecheck, test & build (push) Failing after 42s
2026-08-14 20:53:35 +07:00
Sven (AAMOS AI) e6216bf735 fix(reco): marknadsstyrda högtider + visningsnamn med å/ä/ö istället för slugs (MIKRO 61)
CI / Typecheck, test & build (push) Failing after 42s
2026-08-14 20:46:22 +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) 83dd0bb215 feat(entitlements): delad hushålls-pott – medlemmar delar ägarens plan & skanningskvot (MIKRO 59)
CI / Typecheck, test & build (push) Failing after 43s
2026-08-14 20:12:37 +07:00
Sven (AAMOS AI) 9bd827a90d fix(household): join tar bort tomt auto-sol-hushåll så delat hushåll blir aktivt (MIKRO 58)
CI / Typecheck, test & build (push) Failing after 43s
2026-08-14 20:00:49 +07:00
Sven (AAMOS AI) 1e6407d9e6 feat(mobile): slutför-profil-prompt samlar kost & allergier progressivt (MIKRO 57)
CI / Typecheck, test & build (push) Failing after 42s
2026-08-14 18:59:39 +07:00
Sven (AAMOS AI) 9390cc0e66 fix(mobile): receptdetalj på användarens språk (MIKRO 56)
CI / Typecheck, test & build (push) Failing after 43s
2026-08-14 18:56:42 +07:00
Sven (AAMOS AI) 1f67e1532f polish(mobile): cooking-avbryt, scan-review useEffect, stack-titlar, död kod (MIKRO 55)
CI / Typecheck, test & build (push) Failing after 42s
2026-08-14 18:45:36 +07:00
Sven (AAMOS AI) d95c67d979 fix(mobile): plan/hushåll/profil felhantering + streckkod pausar kamera (MIKRO 54)
CI / Typecheck, test & build (push) Failing after 42s
2026-08-14 18:38:15 +07:00
Sven (AAMOS AI) 13689d5f8e fix(mobile): Nya förslag bläddrar bland recept + laddindikator (MIKRO 53)
CI / Typecheck, test & build (push) Failing after 44s
2026-08-14 18:31:41 +07:00
Sven (AAMOS AI) 491daace86 fix(mobile): onError på 15 mutationer – inga tysta miss (MIKRO 52)
CI / Typecheck, test & build (push) Successful in 1m37s
2026-08-14 18:03:36 +07:00
Sven (AAMOS AI) ea1f9a113a fix(scan): timeout i uploadImage + rätt API_BASE_URL så mock-upload når telefonen (MIKRO 51)
CI / Typecheck, test & build (push) Successful in 1m36s
2026-08-14 17:49:40 +07:00
Sven (AAMOS AI) bea9f54ed5 fix(mobile): visa fel när samtyckestoggeln fallerar (tyst miss förut)
CI / Typecheck, test & build (push) Successful in 1m36s
2026-08-14 05:46:28 +07:00
Sven (AAMOS AI) f5aeb28a24 fix(mobile): tydlig bakåt-etikett (Tillbaka) istället för (tabs) i navigationen
CI / Typecheck, test & build (push) Successful in 1m34s
2026-08-14 05:38:29 +07:00
Sven (AAMOS AI) 72b1d9d5a3 fix(mobile): samtyckesgrinden hämtar om status efter accept (fastnade annars)
CI / Typecheck, test & build (push) Successful in 1m35s
2026-08-14 05:29:01 +07:00
Sven (AAMOS AI) 815b400eea feat(mobile): ny slogan på inloggningen – Mindre svinn, mindre stress, mer kvar i plånboken
CI / Typecheck, test & build (push) Successful in 1m39s
2026-08-14 04:11:29 +07:00
Sven (AAMOS AI) 5f9526cb07 fix(mobile): keyboard-avoidance i Screen så formulär inte göms bakom tangentbordet (FAS 35)
CI / Typecheck, test & build (push) Successful in 1m40s
2026-08-14 04:01:44 +07:00
Sven (AAMOS AI) e3d50707e8 feat(mobile): veckoplan – skapa inköpslista från planen (stänger plan→laga→handla-loopen)
CI / Typecheck, test & build (push) Successful in 1m34s
2026-08-14 03:12:49 +07:00
Sven (AAMOS AI) 4d9c69d0ce feat(mobile): veckoplan – markera lagad/hoppa över (smart omplanering) + aktivera plan
CI / Typecheck, test & build (push) Successful in 1m48s
2026-08-14 02:48:18 +07:00
Sven (AAMOS AI) c5f8d63964 feat(mobile): veckoplan – hämta plan, rendera dagens måltider + generera-knapp med polling
CI / Typecheck, test & build (push) Successful in 1m34s
2026-08-14 02:38:59 +07:00
Sven (AAMOS AI) ebc3b75cea i18n(mobile): plan.portions i 12 locales
CI / Typecheck, test & build (push) Successful in 1m34s
2026-08-14 02:01:04 +07:00
Sven (AAMOS AI) e6c5d3bb08 feat(mobile): veckoplan-skärm scaffold (månadsheader + veckostrip + dagsvy) + flik
CI / Typecheck, test & build (push) Successful in 1m34s
2026-08-14 01:47:33 +07:00
Sven (AAMOS AI) 435af14bc4 i18n(mobile): nycklar för veckoplaneraren (tabs.plan, plan.today, plan.emptyDay) i 12 locales
CI / Typecheck, test & build (push) Successful in 1m35s
2026-08-14 01:30:26 +07:00
Sven (AAMOS AI) 0d1cc727ae fix(gdpr): radera user_terms_consents vid kontoradering + klassa i residual-testet
CI / Typecheck, test & build (push) Successful in 11m6s
2026-08-14 00:45:42 +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) 61d60931ad feat(mobile): tallriksfoto → meal-review + i18n (otestad, väntar Expo-test) 2026-08-13 07:04:10 +07:00
Sven (AAMOS AI) ceaa52a097 feat(mobile): consent-texter pa 11 sprak 2026-08-13 02:31:25 +07:00
Sven (AAMOS AI) dd715c3f61 feat(mobile): consent-gate i auth-flödet 2026-08-13 02:17:52 +07:00
Sven (AAMOS AI) e88bbb50a6 feat(mobile): ConsentScreen + consent api 2026-08-13 02:14:03 +07:00
Sven (AAMOS AI) 61c3193f17 feat(consent): user_terms_consents + /v1/me/consent 2026-08-13 02:06:44 +07:00
Sven (AAMOS AI) 10ba64e4ba fix(ops): gemini-block i summary-byggaren, inte routen 2026-08-12 22:41:11 +07:00
Sven (AAMOS AI) 1a596d2674 feat(ops): fyll gemini-blocket från gemini_usage 2026-08-12 21:13:39 +07:00
Sven (AAMOS AI) 602405d56d feat(ops): logga gemini_usage per scan (best-effort) 2026-08-12 21:08:03 +07:00
Sven (AAMOS AI) 3fb4374a99 feat(ops): gemini-block i summary 2026-08-12 20:48:06 +07:00
Sven (AAMOS AI) 6e2d794130 feat(storage,deploy): delad S3/mock-lagring, SSM .env-sync, Gemini readyz
- @app/storage med MockStorage + AwsStorage delas mellan API och worker

- Workerns readUrl() ger presignerad S3-URL i aws-läge (fixar mock-s3 404)

- sync-env-from-ssm.py hämtar /cibello/prod/* och skriver .env; first-deploy.sh kör det i prod

- /readyz returnerar 503 om app.aamos.healthCheck() misslyckas

- docs/SECRETS.md med rotations- och SSM-regler
2026-08-12 17:28:58 +07:00
Sven (AAMOS AI) 7dda0fad00 fix(gemini): budget-check före bildhämtning så spärr triggars tidigt 2026-08-12 16:30:49 +07:00
Sven (AAMOS AI) 6c581bec1a feat(cost-guard): global Gemini daily budget + EOC alarm; trial requires verified email 2026-08-12 06:43:32 +07:00
Sven (AAMOS AI) 81927b6cdc fix(db): RDS-CA i poolen (app+migrator delar TLS) 2026-08-12 06:07:07 +07:00
Sven (AAMOS AI) 659d0f9290 feat(deploy): Gemini som committat prod-läge + hermetiska eval-fixtures
- config.ts: tillåt AAMOS_MODE=http|gemini i prod; mock förbjudet
- first-deploy.sh: Grind 1 accepterar gemini (kräv GEMINI_API_KEY);
  Grind 5 kör eval:scan mot gemini; Grind 8 behandlar gemini som riktig AI
- gemini.ts: stöd för data-URLer (inline base64-bilder) i fetchOneImage
- eval-fixtures: 4 lokala bilder (fridge-1, fridge-2, label-1, receipt-1)
- scan-eval.ts: läser lokala fixtures, inga externa hämtningar
- capture-eval.ts: använder lokal fixture som data-URL
2026-08-12 04:10:10 +07:00
Sven (AAMOS AI) 9a9f8a6a3c feat(worker/ai): Gemini-lärar-tier för scan/detect/allergen + shadow-capture
- Utöka GeminiAamosClient med ANALYZE_MEAL_IMAGE, READ_NUTRITION_LABEL,
  READ_EXPIRY_DATE och READ_RECEIPT (vision-prompts mot kontraktsscheman).
- Lägg till apps/worker/src/lib/shadow-capture.ts: S3/local fallback,
  imageTraining-gating, ingen PII, aldrig faila användarvägen.
- Integrera capture i scan-processorn efter lyckad runTask med consentFlags.
- Lägg till @aws-sdk/client-s3 i worker samt eval:capture-skript.
- Uppdatera eval:scan till Wikimedia Special:FilePath + redirect-following.
- Exkludera .terraform i brand-guard för att undvika false positives.
- Uppdatera gemini-test för DEDUPLICATE_INVENTORY som unsupported.
2026-08-12 02:51:05 +07:00
Sven (AAMOS AI) d3d485ffe8 test(eoc-push): rätta sökväg till brand.config.json 2026-08-11 19:20:52 +07:00