Files
boc/intelligence/2026-06-04-bygge-plan.md
T
Bernt bae705aa97 ARCHITECTURE: NFC roadmap, edge AI, audit logging
- Add NFC ePassport roadmap (ICAO 9303, eIDAS)
- Add TensorFlow.js edge face detection (BlazeFace)
- Add structured audit logger (GDPR-compliant)
- Risk scoring support

Part of KYC Apple Native UX v1.1.0
2026-06-29 16:24:48 +00:00

4.1 KiB

BYGGE-PLAN — Enterprise-resiliens (start 2026-06-04 23:13 UTC)

Erik: "Starta bygge. Allt utom det som kräver manuell handpåläggning med konton/kort."

VAD JAG KAN BYGGA NU (inget kort/konto/kostnad)

# Bygge Varför möjligt
B1 AI-Gateway (fristående, PM2, port 3270) — auto-failover över alla providers bernt-ägd kod, befintliga nycklar, ingen kostnad
B2 Provider health/kredit-monitor + larm egna nycklar, läs-anrop
B3 quiXzoom payments application_fee (Flow+-modellen #1c) bernt-ägd payments.mjs, mock tills Stripe live
B4 Graceful degradation i quixzoom-api (DB-fel→read-only, AI-fel→fallback) bernt-ägd
B5 Provider-failover smoke-tester + dokumentation egna nycklar
B6 Observability: strukturerad logg + /metrics i gateway & quixzoom-api bernt-ägd

VAD SOM KRÄVER ANDRA (ticketat, ej i detta bygge)

  • RDS Multi-AZ + uppgradering (Winston kostnad, Johan AWS) → RES-001/003
  • Andra EC2-host + ALB (Winston kostnad) → RES-004
  • Provider kort/konton/auto-topup (Winston) → PROV-W1..6
  • model-router.mjs ändring (root-ägd) → AI-Gateway ersätter behovet; Johan migrerar interna anrop senare

ARKITEKTUR — AI-Gateway (B1, kärnan)

Fristående Node-tjänst, port 3270, PM2. Enhetligt API: POST /v1/chat { task, system, messages, maxTokens } Routing: primär→sekundär→tertiär per task. Vid 429/quota/credit/5xx/timeout → nästa provider. Circuit-breaker per provider (öppnas efter N fel, halvöppen efter cooldown). ALDRIG hårt fel pga en provider. Loggar varje failover som incident. Health: GET /health, GET /metrics (per provider: ok/fel/latens/circuit-state).

Provider-kedjor (kredit-OK only, Grok exkluderad tills påfylld): reasoning: openai(o3) → anthropic(opus) → deepseek fast: groq → gemini → openai(4o-mini) search: perplexity → (ingen fallback, degraderar till "ingen websök") creative: openai(gpt-4o) → anthropic(sonnet) → gemini default: anthropic(sonnet) → openai(4o) → groq

ORDNING

  1. B1 AI-Gateway (störst riskreduktion) → deploy + verifiera failover
  2. B2 monitor → PM2
  3. B6 observability i gateway
  4. B3 payments Flow+ application_fee
  5. B4 graceful degradation
  6. B5 smoke-tester + slutverifiering

STATUS: KÖR


BYGGE KLART (2026-06-04 23:24 UTC) — verifierat live

# Bygge Status Bevis
B1 AI-Gateway (PM2 port 3270) LIVE 6 providers, failover bevisat (404→groq, 1 failover)
B2 Provider-monitor (PM2, 5min) LIVE 6/7 OK, larmar Winston/Johan auto vid kredit/nere
B3 Flow+ application_fee (#1c) LIVE /api/qz/payments/fees — 0,12% on / 0,15% off, källangivet
B4 Djup health + degradering LIVE /health/ready 503 vid DB-fel → LB kan dirigera om
B6 Observability (metrics+logg) LIVE /metrics per provider, strukturerad JSON-logg

Nya PM2-tjänster (sparade i dump)

  • ai-gateway (3270) — enhetligt LLM-API med auto-failover + circuit-breaker
  • provider-monitor — kredit/health-bevakning + auto-larm

Failover-kedjor aktiva (Grok exkluderad tills påfylld)

  • reasoning: openai(o3)→anthropic(opus)→deepseek
  • fast: groq→gemini→openai(4o-mini)
  • creative: openai(4o)→anthropic(sonnet)→gemini
  • search: perplexity
  • default: anthropic(sonnet)→openai(4o)→groq

Designförbättring upptäckt under test

404/modell-avvecklad klassas nu som FAILOVER (hände med Gemini 2.0 idag). Tidigare gav det hårt fel. Nu faller det över till nästa provider.

Buggar fixade på vägen

  • Gemini-probe använde avvecklad 2.0-flash → 2.5-flash
  • Anthropic-probe använde avvecklad haiku-20241022 → claude-haiku-4-5

KVAR (kräver Johan/Winston — ticketat, ej i detta bygge)

  • RDS Multi-AZ + uppgradering (RES-001/003) — Winston kostnad, Johan AWS
  • Andra host + ALB (RES-004) — Winston kostnad
  • Provider kort/auto-topup (PROV-W1..6) — Winston
  • Migrera interna amos-core-anrop till AI-Gateway (Johan, root-fil)
  • Grok-påfyllning → då läggs Grok tillbaka i kedjorna