--- project: OLYMPUS_CABLAGES_SANDBOX phase: 04_VERIF status: active created: 2026-04-26 chat: DISPATCH-001 hérite_de: null hérité_par: null diátaxis: reference audience: [build_chat, ui_chat, audit_chat] rfc_lié: RFC-006 (migration AXIOM 2.1 ~~:9110~~ → :10001 → fusion v11) --- > ⚠️ **OBSOLÈTE PARTIEL — audit 2026-05-13** : ce doc référence des ports morts (~~:9011~~ → :10001, ~~:9010~~ → :10001, etc.). Le seul port valide pour la sphère/cockpit est **:10001** (NEXUS). Mis à jour par 114-GAMEDIVINE. Voir `MNEMOSYNE/01_LOIS/DOCTRINE_PORTS_OLYMPUS.md`. # 🎨 ÉTAT DE L'ART — Sandbox CABLAGES (DISPATCH-001) > **Pour le chat qui prend la suite** : > - Soit tu poursuis le **chantier câblage** (5 endpoints backend KO restants) > - Soit tu construis le **complément UI** (mission UI-001 à venir) > - Lis les sections ci-dessous selon ton rôle, ignore le reste. --- ## 🎯 Objectif global de la mission Préparer **l'éteignabilité** du serveur legacy `~~:9110~~ → :10001` (AXIOM 2.1) en clonant ses 53 routes UI dans `Cockpit/apps/` du nouveau serveur NEXUS `~~:10001~~ → :10001`. **Pas d'éteindre** — juste rendre éteignable. Lien RFC : RFC-006 dans GOD section PLAN. --- ## ✅ Ce qui est FAIT (53 / 53 apps en HTTP 200) ### 12 apps refondues / câblées cette session | App | Type d'intervention | Endpoint backend | |---|---|---| | `gmail` | 3 stubs câblés (classify · draft-reply · trash-spam) + normalisation payload | `/api/gmail/classify` · `/api/gmail/draft-reply` · `/api/gmail/trash-spam` | | `goku` | Câblage upload-image + 2 nouveaux endpoints créés côté backend | `/api/kaio-ken/upload-image` (POST) · `/api/kaio-ken/uploads/{filename}` (GET) | | `modules` | Chain de fetch corrompue → simplifiée vers `/api/modules` (19 modules listés) | `/api/modules` | | `gamer` | scanEmulators câblé multi-roots avec heuristique doublons par taille | `/api/files-big` | | `brief` | Calendar+Mails normalisés + barrière "EN CHANTIER" si OAuth absent | `/api/calendar/today` (503) · `/api/gmail/inbox` | | `performance` | Refonte complète (placeholder → dashboard live) | `/api/system/meter` (refresh 5s) | | `tokens` | Câblage instrumentation + barrière auto si valeurs nulles | `/api/tokens/status` | | `todo` | Fix format payload (`{todos:[...]}` au lieu d'array brut) | `/api/todo` · `/static/apercus/todo_data.json` | | `logs` | Refonte complète : log viewer live + filtre + colorisation 200/4xx/5xx | `/api/logs?lines=200` (refresh 5s) | | `activite` | Refonte : top 20 process par mémoire | `/api/system/processes` (refresh 5s) | | `network` | Refonte : devices LAN détectés (IP/MAC/hostname/vendor) | `/api/network/scan` | | `fonctions` | Refonte : inventaire tools registrés + barrière si vide | `/api/tools/list` + `/api/modules` | | `contexte` | Refonte : 4 boxes (mémoire/sphere/dreams/memozy) + 6 raccourcis | `/api/memory/recent` · `/api/sphere/state` · `/api/dreams/status` · `/memozy/list` | | `budget` | Refonte : tokens partiels + barrière banque (Bridge/Powens à câbler) | `/api/tokens/status` | ### 2 endpoints backend créés | Endpoint | Méthode | Fichier source | Note | |---|---|---|---| | `/api/kaio-ken/upload-image` | POST | `AXIOM/api_tranche10.py` (lignes ~155-200) | Accepte data URL base64, sauvegarde dans `04_DONNEES/kaio_ken/uploads/` | | `/api/kaio-ken/uploads/{filename}` | GET | `AXIOM/api_tranche10.py` (~210) | Sert le fichier sauvegardé | → **Total endpoints NEXUS** : 251 → **253** (drift_audit à relancer) ### 3 artefacts sandbox créés | Fichier | Rôle | |---|---| | `Cockpit/apps/_sandbox/mosaic.html` | Vue mosaïque 53 cells iframe lazy-load avec badges état (LIVE/CABLÉ/STATIQUE/CHANTIER) | | `Cockpit/apps/_sandbox/CABLAGES.md` | Journal vivant câblages (mis à jour à chaque session) | | `Cockpit/apps/_sandbox/barriere.css` | Système barrière "EN CHANTIER" réutilisable (CSS commun) | URLs : - http://127.0.0.1~~:10001~~ → :10001/apps/_sandbox/mosaic.html - http://127.0.0.1~~:10001~~ → :10001/apps/_sandbox/CABLAGES.md - http://127.0.0.1~~:10001~~ → :10001/apps/_sandbox/barriere.css --- ## 🚧 Ce qui est EN ATTENTE ### 1️⃣ Validation visuelle Vivien Vivien doit ouvrir la mosaïque, cliquer chaque cell, valider visuellement les 12 apps refondues + les 2 barrières (brief/budget). Aucun outil ne peut le faire à sa place (Visual Regression manuel). ### 2️⃣ 5 endpoints backend KO à corriger (chantier suivant) | Endpoint | Statut | Impact frontend | |---|---|---| | `/api/backup` | 404 (n'existe pas) | widgets : section "Backup" reste vide | | `/api/god/screenshot` | 500 (erreur exec, écran noir Windows) | god : capture écran KO — alternative `/api/screenshot/region` 200 OK ; ou Chrome MCP | | `/api/calendar/today` | 503 (OAuth Google non configuré) | brief : barrière Calendar permanente jusqu'à OAuth | | `/api/oracle/insights` | 000 (timeout) | non utilisé en front pour l'instant, mais à investiguer | | `/api/tokens/status` | 200 mais renvoie 0 partout | tokens/budget : barrière auto en place, instrumentation à faire | ### 3️⃣ Complément UI (mission UI-001 à venir) Vivien lance un autre chat pour construire le complément UI. Ce chat lira ce document pour comprendre : - Quels artefacts existent déjà (mosaic, barriere.css) - Quelles 12 apps ont été refondues (style/pattern à respecter) - Quels endpoints sont câblés et utilisables ### 4️⃣ 2 barrières "EN CHANTIER" (intentionnelles) | App | Raison barrière | Que faut-il pour câbler ? | |---|---|---| | `brief` (Calendar+Rappels) | OAuth Google Calendar pas configuré côté NEXUS | `credentials.json` Google + lancer `aegis_server.py --auth gmail` | | `budget` (banque) | Pas d'intégration bancaire | Bridge / Powens API ou import QIF manuel | --- ## 📊 État final 53 / 53 apps | État | Count | Couleur badge mosaïque | |---|---|---| | ✅ LIVE déjà câblé avant | 25 | vert | | 🔧 CABLÉ 26/04 (cette session) | 12 | bleu | | ⚪ STATIQUE (catalogue/hub légitime) | 14 | gris | | 🚧 EN CHANTIER (barrière propre) | 2 | jaune | | ❌ KO | 0 | — | --- ## 🛠️ Outils créés / utilisables par les chats suivants ### Système de barrière "EN CHANTIER" Réutilisable partout. Inclure : ```html ``` Puis : ```html
🚧 EN CHANTIER Raison technique courte 📋 notes
``` ### Mosaïque comme outil de Visual Regression Pour vérifier après chaque vague de modifs : - Ouvrir http://127.0.0.1~~:10001~~ → :10001/apps/_sandbox/mosaic.html - Filtrer par état (LIVE / CABLÉ / STATIQUE / CHANTIER) - Cliquer cell pour zoom plein écran interactif - Badge état mis à jour dans le tableau APPS du HTML ### Journal CABLAGES.md Chaque chat qui touche à la sandbox doit y déposer : - Date · App touchée · Endpoint · Note courte - Format documenté en haut du fichier --- ## 🔁 Pour reprendre cette mission (chat DISPATCH-001.1+) 1. Lire ce document en entier (5 min) 2. Lire `Cockpit/apps/_sandbox/CABLAGES.md` (journal vivant) 3. Tester la mosaïque (curl + visu Vivien) 4. Choisir A ou B : - **A.** Attaquer les 5 endpoints backend KO (modif `AXIOM/api_*.py` + reboot NEXUS) - **B.** Affiner UX d'une des 12 apps refondues (Vivien donne son retour) 5. Mettre à jour CABLAGES.md à chaque modif 6. Mettre à jour ce ETAT_DE_L_ART en fin de session --- ## 📚 Modèles pros utilisés | Modèle | Auteur · Année | Application ici | |---|---|---| | Walking Skeleton | Cockburn 2004 | Câblage en vagues : skeleton (53 cells) → TDD brique par brique | | Visual Regression Testing | Percy 2015 | Mosaïque comme outil de vérif visuelle | | Strangler Fig | Fowler 2004 | Migration progressive `~~:9110~~ → :10001` → `~~:10001~~ → :10001` (Mona Lisa, ancien à côté du nouveau) | | Living Documentation | Martraire 2019 | CABLAGES.md mis à jour à chaque modif | | Definition of Done | Scrum | 100% apps répondent 200, soit câblées soit barrière propre | | Diátaxis | Procida 2017 | Ce doc = type "reference" (pour reprise mission) | --- ## 📌 Liens vers les ressources - **Mosaïque** : http://127.0.0.1~~:10001~~ → :10001/apps/_sandbox/mosaic.html - **Journal câblages** : http://127.0.0.1~~:10001~~ → :10001/apps/_sandbox/CABLAGES.md - **Barrière CSS** : http://127.0.0.1~~:10001~~ → :10001/apps/_sandbox/barriere.css - **GOD section ÉTAT 26/04** : `MNEMOSYNE/06_PROJETS/OLYMPUS/GOD_OLYMPUS_v10.0.1.html#etat_26_04_dispatch_001` - **Inscription chat** : `MNEMOSYNE/02_ETAT/CHATS_REGISTRY.md` (DISPATCH-001) - **Endpoint backend modifié** : `C:\OLYMPUS\01_SERVEUR\NEXUS\AXIOM\api_tranche10.py` --- 🆔 DISPATCH-001 (mission CABLAGE) 🌊 fin du document --- _Migre F:->C: par docs_portability_light 2026-05-10_