Files
boc/memory/2026-06-29.md
T
Bernt 05ed037fe8 pilot.landvex.com: HTTPS + Full Stack Verified
- DNS: pilot.landvex.com -> 16.170.83.169
- TLS: Let's Encrypt certificate (expires 2026-09-30)
- Nginx: reverse proxy with SSL termination
- API: https://pilot.landvex.com/api/v1/missions
- UI: https://pilot.landvex.com/
- Upload: POST /api/v1/missions/import (multipart/form-data)

Verified:
 https://pilot.landvex.com/health
 https://pilot.landvex.com/version
 https://pilot.landvex.com/api/v1/missions (list)
 https://pilot.landvex.com/api/v1/missions/:id (get)
 POST /api/v1/missions/import (video upload)
 UI loads with title 'LandveX Intelligence Lab'

Next: Pilot 001 — Break the system!
2026-07-02 17:34:19 +00:00

330 lines
9.2 KiB
Markdown

## 2026-06-29 (natt) — AI-arkitektur: Cloud Vision + Eget Dataset + Ensemble
**Beslut:** Kombinationsstrategi enligt Eriks rekommendation.
### Google Cloud Setup
**Nytt projekt:** `quixzoom-ai-bootstrap`
- Dedikerat, inget tidigare projekt
- Endast Vision API
- Separat service account
- Begränsade nycklar
- Budgetvarningar från dag 1
**Säkerhet:**
- IP-begränsningar
- Service account med minimala rättigheter
- Logga alla anrop
### Benchmark-strategi
**Dataset:** Bangkok, Torrevieja, Stockholm
**Mätvärden:**
| Mätvärde | Beskrivning |
|----------|-------------|
| Precision | Korrekta detektioner / Totala detektioner |
| Recall | Hittade objekt / Totala objekt |
| Kostnad/bild | USD per bild |
| Latens | ms per bild |
**Modeller att testa:**
1. Cloud Vision
2. YOLOv8
3. Grounding DINO (när fixad)
4. Egen modell (senare)
### AI Result Logger
**Sparar ALLA resultat:**
- Originalbild
- Modell + version
- Prompt (om relevant)
- Detektioner + bounding boxes
- Konfidens
- Manuell korrigering
- Gold label
**Syfte:**
- Återträning utan om-annotering
- Analys av träffsäkerhet
- Kostnadsuppföljning
- A/B-testning
### Filer skapade
| Fil | Syfte |
|-----|-------|
| `ai-pipeline/GOOGLE-CLOUD-SETUP.md` | Instruktioner för GC-projekt |
| `ai-pipeline/ai-benchmark-suite.js` | Benchmark-verktyg |
| `ai-pipeline/ai-result-logger.js` | Logga alla AI-resultat |
| `ai-pipeline/AI-ARCHITECTURE.md` | Övergripande arkitektur |
### Nästa steg
1. Skapa Google Cloud-projekt
2. Skaffa API-nyckel
3. Kör benchmark på Bangkok
4. Bygg gold dataset
5. Starta Gold Route insamling
## 2026-06-29 (natt) — Sajter uppdaterade med AI-info
### Uppdaterade sajter
| Sida | URL | Status |
|------|-----|--------|
| LandveX huvudsida | https://landvex.com/ | ✅ Uppdaterad |
| LandveX AI | https://landvex.com/landvex-ai.html | ✅ Ny |
| QUIXZOOM AI | https://landvex.com/quixzoom-ai.html | ✅ Ny |
| Pilot docs | https://landvex.com/pilot/ | ✅ Uppdaterad |
### Innehåll på sajterna
- Tre-fas AI-strategi (Cloud Vision → Eget dataset → Egen modell)
- Infrastructure Vocabulary (50 objekt, 7 kategorier)
- Benchmark-jämförelse (4 modeller)
- Gold Routes (Bangkok, Torrevieja, Stockholm)
- Status för alla komponenter
- Länkar till all dokumentation
### Filer skapade/uppdaterade
| Fil | Syfte |
|-----|-------|
| `index.html` | Huvudsida med AI-info |
| `landvex-ai.html` | LandveX AI-sida |
| `quixzoom-ai.html` | QUIXZOOM AI-sida |
### Nästa steg
1. Erik skapar Google Cloud-projekt + API-nyckel
2. Ladda upp nyckel till server
3. Kör benchmark på Bangkok-bilder
4. Uppdatera sajter med benchmark-resultat
## 2026-06-29 (morgon) — aamos-ledger Rust + LandveX AB UI
### Status: LandveX AB fullt importerat i aamos-ledger
**Konton:** 23 st (alla BAS-konton från SIE4-filen)
- Tillgångar: 1221, 1227, 1930
- Eget kapital: 2090
- Skulder: 2510, 2611, 2990
- Intäkter: 3000, 3010, 3020, 3900
- Kostnader: 5420, 5460, 5612, 5614, 5810, 5820, 5900, 6071, 6540, 6550, 7630, 8910
**Verifikat:** 23 st (inklusive IB20260101)
- Ingående balans per 2026-01-01
- 22 verifikat från 2026-02-04 till 2026-04-30
**Trial balance:** Balanserad (D=K)
### Nytt iOS-native UI skapat
**URL:** https://bernt.wavult.com/finans/
**Funktioner:**
- Summary cards (Intäkter, Resultat, Kassa, Skulder)
- Kontolista med ikoner per typ
- Senaste verifikat
- Detaljvy för verifikat (med rader)
- Detaljvy för konton (alla verifikat för kontot)
- JWT-autentisering
**Tekniskt:**
- Pratar med aamos-ledger på port 3250
- CORS-proxy via nginx
- HTTPS via Cloudflare
### API-endpoints i Rust-ledger
| Endpoint | Beskrivning |
|----------|-------------|
| GET /health | Health check |
| POST /login | JWT-login |
| GET /api/v1/accounts | Lista konton |
| GET /api/v1/accounts/:id | Hämta konto |
| GET /api/v1/journal-entries | Lista verifikat |
| POST /api/v1/journal-entries | Skapa verifikat |
| GET /api/v1/journal-entries/:id | Hämta verifikat |
| GET /api/v1/trial-balance | Trial balance |
### Nästa steg (Eriks val)
1. Starkare autentisering (inte admin/password)
2. Fler vyer (balansräkning, resultaträkning)
3. SIE4-export
4. Nya verifikat (formulär)
5. Egen subdomän (finans.landvex.com)
### Viktigt att komma ihåg
- Rust-ledger kör på port 3250
- Databas: aamos_ledger_rust
- UI-fil: /opt/amos/public/landvex/ledger-ui/index.html
- Nginx-config: /etc/nginx/conf.d/landvex.conf
- Inloggning: admin / password (MÅSTE bytas!)
## 2026-06-29 (eftermiddag) — KYC Apple Native UX + Security Deploy
### AVS Master Prompt Review
**Genomförd:** Fullständig KYC/Identity Verification Review
**Modeller:** kimi-k2.6 (primär), claude-sonnet-4-6 (ej tillgänglig)
**Omfattning:** 7 deliverables
### Deliverables färdiga
| # | Deliverable | Status |
|---|-------------|--------|
| 1 | Current System Documentation | ✅ |
| 2 | Current UX Review | ✅ |
| 3 | Current Technical Review | ✅ |
| 4 | Gap Analysis | ✅ |
| 5 | Prioritized Roadmap | ✅ |
| 6 | Apple Native Redesign Proposal | ✅ |
| 7 | Implementation Plan | ✅ |
### Implementerade förbättringar
**Quick Wins:**
- Haptic feedback (expo-haptics)
- Human-friendly error-meddelanden
- Safe-area för iPhone
- Touch targets (min 44px)
**UX Improvements:**
- Spring animations (Framer Motion)
- iOS systemfärger
- Oval face guidance (Apple Face ID-style)
- 3-2-1 countdown före capture
**Technical Improvements:**
- Presigned S3 URLs för direkt upload
- Quality scoring (blur/brightness/contrast)
- Edge face detection (TensorFlow.js)
- Audit logger (GDPR-kompatibel)
**Security Fixes:**
- CSRF-token skydd
- Cookie-baserad JWT (httpOnly, secure, SameSite)
- AuthCookie utility (ersätter localStorage)
### Redteam Audit
| Risk | Antal | Status |
|------|-------|--------|
| Kritisk | 2 | Fixade |
| Hög | 4 | Dokumenterade |
| Medel | 3 | Dokumenterade |
| Låg | 2 | Dokumenterade |
**Tester:**
- SQL Injection: Blockerad ✅
- XSS: Blockerad ✅
- CSRF: 403 Forbidden ✅
- Rate limiting: Kräver implementering ⚠️
### Deploy Status
**Branch:** `feature/kyc-apple-native-ux-2026-06-29``master`
**Tag:** `v1.1.0-kyc-apple-native`
**Commits:** 11 st
**Produktion:**
- S3: `s3://quixzoom-app-prod/`
- CloudFront: Invalidated
- Web: `https://app.quixzoom.com`
**quiXzoom App:**
- `src/config.ts`: KYC v1.1.0 config
- `src/haptics.ts`: expo-haptics support
- `App.tsx`: Native bridge, camera access
### Monitoring
- CloudWatch Dashboard: `quixzoom-kyc-metrics`
- Alert: `kyc-completion-rate-low` (<70%)
- Metrics tracking: completion rate, step duration, errors, device/OS
### Filer skapade
| Fil | Syfte |
|-----|-------|
| `docs/kyc-audit-2026-06-29/ux-review.md` | Fullständig UX-analys (305 rader) |
| `docs/kyc-audit-2026-06-29/implementation-plan.md` | Trackbar roadmap |
| `docs/kyc-audit-2026-06-29/redteam-audit.md` | Säkerhetsgranskning (144 rader) |
| `RELEASE-v1.1.0.md` | Release notes |
| `docs/nfc-roadmap.md` | NFC ePassport plan |
| `src/lib/haptics.ts` | Haptics utility |
| `src/lib/auth-cookie.ts` | Cookie-baserad auth |
| `src/lib/csrf.ts` | CSRF-skydd |
| `src/lib/s3-upload.ts` | Presigned S3 URLs |
| `src/lib/quality-scorer.ts` | Bildkvalitetsbedömning |
| `src/lib/edge-face-detection.ts` | Lokal AI |
| `src/lib/audit-logger.ts` | GDPR-kompatibel loggning |
| `src/lib/kyc-analytics.ts` | Metrics tracking |
### Nästa steg
1. Bygga och distribuera quiXzoom app (Android/iOS)
2. A/B-testa gammal vs ny KYC
3. Övervaka metrics (completion rate, tid)
4. Fortsätta med Architecture (NFC ePassport, edge AI)
5. Implementera rate limiting
### Reality Contradiction Score (RCS)
**Idé från Erik:** AI identifierar motsägelser, inte bara objekt.
**Exempel:**
- Lyxhotell + öppna avloppsdiken
- Skyskrapor + provisoriska skoltransporter
- Smart City-sensorer + synliga elprovisorier
**Landvex-analyslager:**
- Reality Gap Index (RGI) — skillnad mellan plan och verklighet
- Reality Contradiction Score (RCS) — grad av kontrast
- Implementation Gap Score (IGS) — hur väl system fungerar
- Urban Adaptation Score (UAS) — informella lösningar
**Sparat i MEMORY.md som Landvex-indikator.**
### Viktigt att komma ihåg
- KYC v1.1.0 är i produktion
- Alla säkerhetsfixar är deployade
- Appen är uppdaterad med native features
- CloudFront cache är invalidad
- Monitoring är aktiv
- Rate limiting kräver fortfarande implementering
## 2026-06-29 (kväll) — quiXzoom App Crash (White Screen)
**Problem:** Appen kraschar till vitskärm direkt vid öppning.
**Orsak:** `App.tsx` hade problem med `INJECTED_JS` som injicerade `CONFIG.JWT_TOKEN` direkt i JavaScript utan null-checks. När token var tom sträng kraschade WebView.
**Fix deployad via AWS SSM:**
- Null-safe fallbacks (`CONFIG.JWT_TOKEN || ''`, `CONFIG.DEVICE_ID || 'unknown'`)
- Förenklad injected JS (tog bort problematisk `fetch` override)
- Error state handling i React component
- Tog bort oanvända imports (`BackHandler`, `ScrollView`)
**Status:** Fix deployad, väntar på verifiering från Erik.
**Om fortfarande vitskärm:**
1. Stäng appen helt och öppna igen
2. Logga ut och in igen (JWT-token)
3. Vänta 2-5 minuter på CloudFront cache
4. Om fortfarande problem: kolla `logcat` för felmeddelanden
**Viktigt:** Appen laddar `https://app.quixzoom.com` via WebView, inte `index.html` landing page.