Wiki: WEVIA Apple module session writeup
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
This commit is contained in:
131
wiki/session-opus-19avr-wevia-apple-module.md
Normal file
131
wiki/session-opus-19avr-wevia-apple-module.md
Normal 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
|
||||
Reference in New Issue
Block a user