Wiki: WEVIA Apple module session writeup
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled

This commit is contained in:
Opus-Yacine
2026-04-19 20:30:12 +02:00
parent 0989b706c8
commit 933e32be7c

View File

@@ -0,0 +1,131 @@
# Session Opus — WEVIA Apple Module — Photos Scanner OSS Intelligence — 19 avril 2026 20h30
## Root cause fix
Yacine directive: "demande à weviamaster de se connecter mon apple créer weviaapple et scanner mes images et sortir les wire qu'il y a"
**WEVIA Master a HALLUCINÉ** — invention d'une app iPhone WEVIA inexistante avec boutons fictifs ("+"/"Module personnalisé"/"Fonctionnalités"/"Activer icloud"). C'est exactement la drift doctrine #4 honnêteté à corriger.
**Root cause**:
1. Pas de module apple/ios/icloud dans WEVIA
2. Pas d'endpoint upload photos + analyse
3. Pas d'intent WEVIA apple_scan
4. `/api/wevia-vision-vl.php` cassée (Qwen VL 32B OpenRouter 404)
## Changements déployés
### 1. API `/api/wevia-apple-scan.php` (9.3KB, 209L)
Endpoints: `?action=status|upload|list|detail|stats`
**Pipeline d'analyse** (doctrine #2 zéro simulation):
1. **Upload** multipart/form-data → fichier dans `/var/www/html/data/wevia-apple-uploads/`
2. **OCR** local via `tesseract 5.3.4` (eng+fra)
3. **Vision LLM** via Gemini 2.5 Flash direct (inline_data base64, GEMINI_KEY depuis `/etc/weval/secrets.env`)
4. **Extraction OSS** patterns:
- GitHub URLs (regex `github.com/owner/repo`)
- 80+ noms OSS connus (langchain/qdrant/postgres/redis/docker/gitea/ollama/vllm/supabase/n8n/rasa/crewai/autogen/haystack/llamaindex/flowise/dify/…)
- Docker images (pattern `name/name:tag`)
**Storage**: `/var/www/html/data/wevia-apple-scans.json` (historique + stats)
### 2. Page `wevia-apple.html` (15KB)
UX premium Apple-style:
- Logo glassmorphism + typo SF Pro
- KPI strip 4 cartes (photos/OSS/GitHub/top project)
- Drag-drop uploader avec hint iPhone Shortcuts (URL endpoint prod direct)
- Scan list avec badges OSS/GitHub/Docker + timing
- **Drill-down modal** sur chaque scan:
- Image preview
- Vision LLM text
- OCR raw text
- OSS grid cliquable → GitHub search
- GitHub URLs cliquables → repo direct
- Docker images list
- Toast notifications upload/scan
- Auto-refresh 30s
### 3. Intent WEVIA Master `apple_scan` ACTIF
`/api/wired-pending/intent-opus4-00-apple_scan.php` (prefix 00- pour priorité alphabétique):
- Status EXECUTED
- Triggers: `wevia apple`, `apple scan`, `scan photos`, `apple photos`, `scan iphone`, `apple status`
- Cmd: `curl stats` → Yacine tape "wevia apple" dans chat → reçoit stats JSON
### 4. iPhone Shortcuts integration
Endpoint production documenté dans la page:
```
POST https://weval-consulting.com/api/wevia-apple-scan.php?action=upload
Form: image = Photo sélectionnée
```
Yacine peut créer un Shortcut "Scan WEVIA" depuis app Raccourcis iPhone → partage depuis Photos iPhone → scan automatique.
## Tests validation (doctrine #6)
### Scans réels exécutés (5 total)
| # | Source | Taille | Durée | OSS détectés |
|---|---|---|---|---|
| 1 | test-erp-page (screenshot Playwright) | 308KB | 15.7s | docker |
| 2 | Image Yacine 1 (QA Hub V72) | 162KB | 26.2s | **qdrant, postgres, redis, docker, gitea** (5) |
| 3 | Image Yacine 2 (ERP offer) | 248KB | 21.8s | docker |
| 4 | oss-discovery login page | 26KB | 3.7s | (login page seulement) |
| 5 | Retest ERP page | 308KB | — | — |
**Top OSS identifié**: `docker` (4 occurrences) — résultat cohérent puisque infra WEVAL utilise Docker.
### Playwright E2E
- **0 erreurs JS**
- 5 scan_items rendus
- KPIs: 5 / 8 / 0 / docker (4)
- Uploader visible, drop zone active
### WEVIA chat
- Intent `apple_scan` matche 3/3 triggers testés (`wevia apple`, `apple scan`, `scan photos`)
- Retourne stats JSON live via `opus5-stub-dispatcher`
### NonReg
**153/153 score 100** avant + après — aucune régression
## Compliance doctrines WEVAL
| # | Doctrine | Preuve |
|---|---|---|
| 1 | Opus→WEVIA chat | 4+ calls user-mode (création, wire, test 3 triggers) |
| 2 | Zéro simulation | Pipeline OCR + Gemini + regex extraction = tous réels |
| 3 | GOLD backup | 2 GOLDs: `wevia-apple-scan.php.GOLD-pre-gemini`, `intent-opus4-apple_scan.php.GOLD-pre-promote` |
| 4 | Honnêteté | Hallucination WEVIA publiée comme root cause finding, pas masquée |
| 5 | Zero écrasement | vision-vl.php conservé intact, nouveau endpoint isolé, WTP intouché (immutable +i) |
| 6 | Strike rule | Vision cassée détectée structurellement (Qwen VL 32B 404 OpenRouter) → Gemini fallback |
| 13 | Cause racine | 4 causes identifiées (pas de module + pas d'endpoint + pas d'intent + vision cassée) |
| 14 | Écrans intouchables | WTP `chattr +i` → PAS MODIFIÉ, attente validation Yacine pour tile apple |
| 16 | NonReg | 153/153 × 3 checks |
| 60 | UX premium | Apple-style design, SF Pro font, glassmorphism, drill-down modal |
| 77 | Gated writes | Intent promoted EXECUTED avec triggers explicites |
## Limitations honnêtes (doctrine #4)
- **iCloud Photos direct impossible** sans Apple Developer + Sign in with Apple + CloudKit server-to-server. Solution pragmatique livrée: upload manuel OU iPhone Shortcut (documenté).
- **Gemini 2.5 Flash latency**: 15-26s par scan. Acceptable en batch, pas en realtime.
- **WTP tile apple** non-injectée (WTP immutable, validation Yacine requise).
- **OSS detection** limitée à la liste de 80+ projets hardcoded + regex GitHub URL. Projets nouveaux non reconnus.
## URLs live
- **Page**: https://weval-consulting.com/wevia-apple.html
- **API status**: https://weval-consulting.com/api/wevia-apple-scan.php?action=status
- **API stats**: https://weval-consulting.com/api/wevia-apple-scan.php?action=stats
- **API list**: https://weval-consulting.com/api/wevia-apple-scan.php?action=list
- **iPhone Shortcut endpoint**: `POST /api/wevia-apple-scan.php?action=upload` (form field: `image`)
## Reste à finir (décision Yacine)
- [ ] Injecter tile "WEVIA Apple" dans WTP (nécessite chattr -i temporaire)
- [ ] iPhone Shortcut setup concret (doc étape-par-étape avec screenshot)
- [ ] Élargir dictionnaire OSS reconnu (actuellement 80+, pourrait monter à 500+)
- [ ] Ajout token d'auth sur /upload pour éviter abus publics
## Git
- Commit `f8e8ee880` — Module wevia-apple pushé GitHub + Gitea via auto-sync