- 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
5.4 KiB
quiXzoom — End-to-End Test Resultat
Kört: 2026-06-13 21:36 UTC av Bernt
Testat flöde
Register → /me → Hämta missions (geo) → Claim → Submit → Signed URL → Stripe Connect → Payout
Resultat per steg
| # | Steg | Status | Notering |
|---|---|---|---|
| 1 | POST /register | ✅ OK | Token + user returneras korrekt, RS256 JWT |
| 2 | GET /me | ⚠️ DELVIS | Returnerar bara id/email/name/role — saknar credits, missions_completed, identity_verified, stripe_status |
| 3 | GET /missions?lat&lng&radius | 🔴 BUG | radius tolkas som METER men app skickar troligen KM → 0 results. radius=10000m → 76 missions |
| 4 | PATCH /missions/:id/claim | ✅ OK | Claim skapas, status=pending, expires 15min |
| 5 | POST /missions/:id/submit | ✅ OK | submissions_count=1, claim→submitted |
| 6 | POST /storage/signed-url | ✅ OK | S3 presigned PUT URL genereras korrekt |
| 7 | GET /storage/signed-url/* (GET) | 🔴 BUG | Returnerar GET-URL istället för PUT — appen kan inte uploada |
| 8 | GET /payments/wallet | 🔴 BUG | 404 — endpoint finns inte, appen kraschar |
| 9 | GET /payments/stripe-connect/status | ✅ OK | Returnerar onboarding_complete:false korrekt |
| 10 | POST /payments/stripe-connect | ✅ OK | Onboarding URL genereras (test-mode) |
| 11 | GET /payouts/history | ✅ OK | Tom men svarar |
| 12 | AI bildanalys | 🔴 SAKNAS | Ingen verifiering att bilden matchar uppdraget |
Kritiska buggar (blockar smyglanseringen)
BUG-001 🔴 Geo-radius enhet fel
Symptom: Appen skickar radius i km → API tolkar som meter → 0 missions visas Fix: Antingen dokumentera att radius=meter och fixa appen, ELLER lägg km→m konvertering i API Fil: routes/missions.mjs rad ~285 Påverkan: Zoomer ser INGA uppdrag nära sig — blockar hela produkten
BUG-002 🔴 /payments/wallet finns inte
Symptom: GET /api/qz/payments/wallet → 404 Fix: Lägg till wallet-endpoint som returnerar credits_balance + total_earned från users-tabellen Fil: routes/payments.mjs Påverkan: Appen kan inte visa Zoomer-saldo → kassaflöde osynligt
BUG-003 🔴 /me returnerar för lite
Symptom: /me saknar credits_balance, missions_completed, stripe_onboarding_complete, identity_verified Fix: Joina users + profiles + wallets i /me-responsen Fil: routes/auth.mjs Påverkan: Appen vet inte om Zoomer är redo att ta uppdrag → onboarding kan inte guida rätt
BUG-004 🔴 AI bildanalys saknas helt
Symptom: Submit accepterar vilken URL som helst utan att verifiera bilden Fix: Lägg till Ollama vision-check på inkommande bilder mot mission-description Påverkan: Kvalitetskontroll omöjlig → dåliga bilder betalas ut
BUG-005 🟡 Stripe i test-mode
Symptom: Payouts fungerar inte med riktiga pengar Fix: Sätt STRIPE_SECRET_KEY=sk_live_... i .env Påverkan: Ingen riktig betalning möjlig till 1 aug
BUG-006 🟡 50 missions saknar description, 90 saknar instructions
Symptom: Zoomer ser uppdrag utan att förstå vad de ska göra Fix: Fyll i description + instructions på alla svenska missions Påverkan: Dålig användarupplevelse, felaktiga foton
BUG-007 🟡 Onboarding — identity_verified alltid null
Symptom: Ingen KYC/ID-verifiering implementerad end-to-end Fix: BankID-flöde eller Stripe Identity behöver kopplas in Påverkan: Kan inte verifiera att Zoomers är verkliga personer
Vad som faktiskt fungerar bra
- Registrering och JWT-auth ✅
- Claim-flödet ✅
- Submit-flödet (tekniskt) ✅
- S3 presigned URLs ✅
- Stripe Connect onboarding URL ✅
- 214 svenska missions med koordinater ✅
- Rust engine (GPS fraud detection, port 3390) ✅
- Nginx routing api.quixzoom.com ✅
Fix-prioritet mot 1 aug
Vecka 1 (nu): BUG-001 ✅, BUG-002 ✅, BUG-003 ✅, BUG-004 ✅ — KLARA 2026-06-13 Nästa: BUG-005 (Stripe live), BUG-006 (missions content), BUG-007 (KYC/identity)
Session 2026-06-13 — del 2 (22:18 UTC)
Juridiska + branding-fixes (11 filer)
- Swish borttaget från all Zoomer-UI → Stripe Connect
- Skatteansvar: inga löften om A/F-skatt → "du ansvarar själv"
- BankID-krav i terms/support → "foto-ID (pass/nationellt ID)"
- Bolagsnamn: Wavult Group AB 559123-4567 → LandveX AB 559141-7042
- Hårdkodade demo-belopp nollställda i zoomer-app + zoomer-earnings
- requestPayout()-funktion: öppnar Stripe Connect-onboarding om ej klar
- i18n.js tillagd i 7 filer; backend i18n middleware live (sv/en/th)
- 9 frontend-filer fixade: gammal domän quixzoom-api.wavult.com → api.quixzoom.com
Röstguide
- Bug fixad: systemPrompt undefined → VOICE_GUIDE_SYSTEM
- Bug fixad: .buffer() → arrayBuffer() + Buffer.from()
- Verifierat live: 140KB MP3, 4.7s, svenska navigationsguide
Bangkok-uppdrag live
- 15 uppdrag inom 15km av Sukhumvit, närmaste 141m
- Elledningar, vägskador, gatuliv, kanalinfrastruktur
Session 2026-06-13 — fixat
- BUG-001: Geo radius km→meter auto-konvertering (routes/missions.mjs)
- BUG-002: /payments/wallet endpoint tillagd (routes/payments.mjs)
- BUG-003: /me returnerar 29 fält + onboarding-status objekt (routes/auth.mjs)
- BUG-004: AI bildanalys med llava:7b via Ollama (routes/image-analysis.mjs + missions.mjs submit)
- Ollama installerat: qwen2.5:7b + llava:7b (9.4GB total, CPU-only, gratis)
- ai-gateway CHAINS: Groq/DeepSeek/Gemini first, Claude sista
- 38 irrelevanta tjänster stoppade och disabled
- Daglig AI-budget $2/dag hard cap aktiverad