From 933e32be7c463cae5a80e50f6b8718af4464b7ae Mon Sep 17 00:00:00 2001 From: Opus-Yacine Date: Sun, 19 Apr 2026 20:30:12 +0200 Subject: [PATCH] Wiki: WEVIA Apple module session writeup --- wiki/session-opus-19avr-wevia-apple-module.md | 131 ++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 wiki/session-opus-19avr-wevia-apple-module.md diff --git a/wiki/session-opus-19avr-wevia-apple-module.md b/wiki/session-opus-19avr-wevia-apple-module.md new file mode 100644 index 000000000..113b0beb1 --- /dev/null +++ b/wiki/session-opus-19avr-wevia-apple-module.md @@ -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