Plan cible v1.0.6 « Migration C: »

OLYMPUS — Architecture cible

PRIMO_CERBER · HYDRA · MUSEs · Backup F:\ · Bus UDP 9998 · Tailscale
« OLYMPUS = mon système perso (un seul). HYDRA = chef d'orchestre fédération. MUSE = mini-OLYMPUS dédié déployable chez un client, NEXUS épuré et extensible à distance. » — Vivien, 11/05/2026

🎨 Légende — comment lire les schémas

Chaque icône = un type de composant. Les couleurs identifient le rôle. Les traits montrent les liens de communication.

🐉
HYDRAChef d'orchestre fédération
(superviseur de N MUSEs)
🏛
OLYMPUS persoLe système principal Vivien
(un seul exemplaire)
🎭
MUSEMini-OLYMPUS dédié
(1 fonction, déployable)
💾
F:\OLYMPUSServeur backup miroir
(clé USB, sync nocturne)
📡
Bus / RéseauUDP 9998 + Tailscale
(transport entre noeuds)
⚙️
Module / ServiceNEXUS, AXIOM, AGORA, etc.
(brique technique)
Trait pointilléRéseau / lien fédération
(distant via Tailscale)
Trait pleinLien local (même machine)
(direct, sans réseau)

🗺️ Vue d'ensemble — qui parle à qui

HYDRA en haut supervise les noeuds OLYMPUS et MUSEs. Le serveur backup F: reçoit une copie miroir d'OLYMPUS toutes les nuits.

flowchart TB HYDRA{{"🐉 HYDRA
chef d'orchestre fédération
port :10000 (futur, machine standalone)"}} OLYMPUS["🏛 OLYMPUS
(PC Vivien)
C:\OLYMPUS
PRIMO_CERBER :10000
NEXUS_DEV :10001"] BACKUP[("💾 F:\OLYMPUS
backup miroir
(clé USB)
sync auto 02h00")] MUSE1["🎭 MUSE_MAMAN
(chez sa mère)
voice+aegis
~500 Mo"] MUSE2["🎭 MUSE_WORD
(client A)
office
~500 Mo"] MUSE3["🎭 MUSE_AUDIO
(client B)
orpheus+files
~500 Mo"] HYDRA -.->|"📡 UDP 9998
announce/discover"| OLYMPUS HYDRA -.->|"📡 push MAJ
Tailscale"| MUSE1 HYDRA -.->|"📡 push MAJ
Tailscale"| MUSE2 HYDRA -.->|"📡 push MAJ
Tailscale"| MUSE3 OLYMPUS ===|"sync nocturne
02h00 robocopy"| BACKUP classDef hydraStyle fill:#4a0e1d,stroke:#ef4444,stroke-width:3px,color:#fff classDef olympusStyle fill:#2d1755,stroke:#7c3aed,stroke-width:2px,color:#fff classDef museStyle fill:#0f3a2b,stroke:#10b981,stroke-width:2px,color:#fff classDef backupStyle fill:#0d2845,stroke:#3b82f6,stroke-width:2px,color:#fff class HYDRA hydraStyle class OLYMPUS olympusStyle class MUSE1,MUSE2,MUSE3 museStyle class BACKUP backupStyle

Traits pointillés cyans = liens réseau via Bus UDP 9998 + Tailscale (peut être distant Internet).
Traits pleins épais = lien local entre 2 disques (sync C:↔F: sur la même machine).
HYDRA = un jour sur sa propre machine (Raspberry, NAS, VPS…) ; pour l'instant fork préparé.

🏛 OLYMPUS perso — détail interne

Mon système principal, sur le PC Vivien. Un seul exemplaire. C: = actif, F: = backup miroir.

flowchart TB subgraph OLY ["🏛 OLYMPUS (C:\OLYMPUS)"] direction TB PCERBER["🛡️ PRIMO_CERBER
(héritage CERBER v2)
port :10000
UI launcher Xbox"] NDEV["⚙️ NEXUS_DEV
port :10001
(canon, fusion)"] NPROD["⚙️ NEXUS prod
port :10001
(officielle, idle)"] AXIOM["🧠 AXIOM
19 modules
voice·vision·memory·web..."] AGORA["🛒 AGORA
MCPs + connecteurs
olympus-core/nexus/apps"] MNEMO["📚 MNEMOSYNE
mémoire longue
lois·état·journal·projets"] APPS["💻 24 mini-serveurs
Word/Excel/PPT/LGS
ports 9961-10100"] end BACKUP[("💾 F:\OLYMPUS
backup miroir")] PCERBER --- NDEV PCERBER --- NPROD NDEV --- AXIOM NDEV --- AGORA NDEV --- MNEMO AGORA --- APPS OLY ===|sync 02h00| BACKUP classDef cerber fill:#4a0e1d,stroke:#ef4444,stroke-width:2px,color:#fff classDef nexus fill:#2d1755,stroke:#7c3aed,stroke-width:2px,color:#fff classDef brique fill:#1f2937,stroke:#f97316,stroke-width:1px,color:#fff classDef backupStyle fill:#0d2845,stroke:#3b82f6,stroke-width:2px,color:#fff class PCERBER cerber class NDEV,NPROD nexus class AXIOM,AGORA,MNEMO,APPS brique class BACKUP backupStyle

🎭 MUSE — mini-OLYMPUS exportable

Une MUSE = NEXUS épuré + mini_cerber + 1 à 3 modules AXIOM choisis. ~500 Mo (vs 17 Go OLYMPUS complet). Déployable chez un client, extensible à distance via HYDRA.

flowchart LR subgraph MUSE ["🎭 MUSE_MAMAN (chez la mère de Vivien)"] direction TB MC["🛡️ mini_cerber
port :20002
UI launcher simple"] MN["⚙️ mini_nexus
port :20001"] M1["🔌 voice"] M2["🔌 aegis"] M3["🔌 proactive"] M4["🔌 herald"] MC --- MN MN --- M1 MN --- M2 MN --- M3 MN --- M4 end HYDRA{{"🐉 HYDRA
chef fédération"}} HYDRA -.->|"📡 push module
(ex: chronos)"| MN classDef hydraStyle fill:#4a0e1d,stroke:#ef4444,stroke-width:3px,color:#fff classDef museStyle fill:#0f3a2b,stroke:#10b981,stroke-width:2px,color:#fff classDef cerber fill:#1a4f3a,stroke:#10b981,stroke-width:2px,color:#fff classDef module fill:#1f2937,stroke:#f97316,stroke-width:1px,color:#fff class HYDRA hydraStyle class MC,MN cerber class M1,M2,M3,M4 module

Scénario : Maman appelle « je peux pas faire X ». Vivien ouvre HYDRA → sélectionne le module manquant (ex: chronos) → HYDRA pousse ce module à MUSE_MAMAN qui l'active automatiquement. Pas de déplacement physique.

🔁 Flux MAJ — comment HYDRA met à jour une MUSE

Mise à jour atomique avec rollback : si la MAJ échoue à mi-chemin chez la MUSE, le ZIP backup restaure l'état précédent automatiquement.

sequenceDiagram autonumber participant V as 👤 Vivien participant H as 🐉 HYDRA participant M as 🎭 MUSE_MAMAN V->>H: Sélectionne MUSE_MAMAN comme cible H->>M: GET manifest checksums M-->>H: liste fichiers + SHA256 H->>H: Calcule diff (11 catégories) H-->>V: Présente diffs cochables
(skin · modules · scripts · etc.) V->>H: Coche les fichiers à pousser H->>M: Crée ZIP backup auto
(rollback prêt) H->>M: Push fichiers en staging M->>M: Verify SHA256 alt Échec M->>M: Rollback ZIP
(état d'avant restauré) M-->>H: ❌ Migration échouée else Succès M->>M: Move atomique staging→final M-->>H: ✅ Migration OK + manifest signé end H-->>V: Résultat + audit trail

Garanties : SHA256 vérifié à chaque étape · ZIP backup avant écrasement · rollback automatique si échec · audit trail signé (qui a poussé quoi quand). Mona Lisa respectée.

💾 Serveur backup F:\OLYMPUS — sécurité miroir

F:\OLYMPUS (clé USB) reçoit une copie miroir d'OLYMPUS toutes les nuits. Si C: meurt, F: prend le relais (recette de bascule testée 10/05).

flowchart LR OLY["🏛 OLYMPUS
C:\OLYMPUS
17 Go · primary"] SCHED["⏰ schtasks
02h00 daily"] SYNC["🔄 robocopy
/E /COPY:DAT /MT:8
(delta uniquement)"] BACKUP[("💾 F:\OLYMPUS
backup miroir
(clé USB)")] LOGS["📋 logs
99_BACKUP/
sync_C_to_F/"] SCHED -->|déclenche| SYNC OLY ==>|copie delta| SYNC SYNC ==>|écrit| BACKUP SYNC -.->|trace| LOGS classDef olympusStyle fill:#2d1755,stroke:#7c3aed,stroke-width:2px,color:#fff classDef sched fill:#3a2a0a,stroke:#fbbf24,stroke-width:2px,color:#fff classDef sync fill:#1f2937,stroke:#f97316,stroke-width:2px,color:#fff classDef backupStyle fill:#0d2845,stroke:#3b82f6,stroke-width:2px,color:#fff classDef logs fill:#1f2937,stroke:#94a3b8,stroke-width:1px,color:#fff class OLY olympusStyle class SCHED sched class SYNC sync class BACKUP backupStyle class LOGS logs

Pas de /PURGE = F: cumule les fichiers supprimés dans C: (filet de sécurité supplémentaire).
Backup secondaire : CERBER fait aussi ses propres snapshots PRE/POST + ZIP CORE/FULL avec rotation 3 derniers (à chaque migration).

📅 Roadmap — phases

Faites ✓ DONE

#ÉtapeDate
1Portabilité R39 (213 .py refactorés)10/05
2Migration F:→C: complète (17 Go, services, configs)10/05 22h35
3SSoT v1.0.6 + docs_portability_light (1242 refs F→C)10/05 23h15
4Sync nocturne C:→F: scripts livrés10/05 23h20
5Fork HYDRA (squelette + roadmap)11/05 07h38
6MUSE_TEMPLATE squelette11/05 07h25
7PRIMO_CERBER preview UI :10004 (skin Xbox red-shift + zone MAJ verte + cobayes)11/05

En cours / À faire

#ÉtapeStatut
8Câblage UI preview ↔ CERBER (CORS + compare/migrate vrais)⏳ en cours
9Verrou réel (cerber_server.py protège start/stop/migrate si locked)📋 différé
10Auto-relance serveurs DOWN (watchdog)📋 draft
11Wake-on-update (mode preview pour MAJ)📋 draft
12MUSE_TEMPLATE M2 : mini_cerber + mini_nexus fonctionnels📋 draft
13HYDRA fonctions : registry + push HTTP + auth jetons📋 draft
14Première MUSE déployée (MUSE_MAMAN ou MUSE_WORD)🌟 futur
15Fédération LAN (Tailscale + bus UDP 9998 live)🌟 futur
16Fédération Internet (Tailscale exit nodes)🌟 futur

📚 Vocabulaire — pour qui ne connaît pas

TermeDéfinition simple
🏛 OLYMPUSLe système global Vivien (un seul). Sur C:\OLYMPUS + backup F:\OLYMPUS.
🛡️ PRIMO_CERBERLe « gardien » du PC Vivien (héritage CERBER). UI launcher Xbox, port :10000.
🐉 HYDRALe « chef d'orchestre » de la fédération. À terme sur sa propre machine. Plusieurs têtes = supervise N MUSEs.
🎭 MUSEMini-OLYMPUS dédié (NEXUS épuré + mini_cerber + 1-3 modules). ~500 Mo. Déployable chez un client.
⚙️ NEXUSLe serveur applicatif fusionné. NEXUS_DEV :10001 = canon. NEXUS prod :10001 = officielle.
🧠 AXIOMModules super-pouvoirs du NEXUS : 19 actifs (memory, voice, vision, web, files, etc.).
🛒 AGORABackend partageable : connecteurs MCP olympus-* + ARSENAL (binaires, scripts externes).
📚 MNEMOSYNELa mémoire longue : doctrines, état, journal, projets, préférences.
💾 cobayeInstance servant de cible pour fonctions MAJ/échange (ex: F:\OLYMPUS, MUSEs, OLYMPUS-2 futur).
📡 Bus UDP 9998Bus d'annonce inter-instances. Permet l'auto-discover des MUSEs sur LAN/Tailscale.
🌐 TailscaleVPN mesh chiffré pour fédération LAN+Internet (IP 100.x.x.x).
🔐 jetonHMAC d'authentification inter-noeuds. Jeton maître Vivien + jetons dérivés pour chaque MUSE.
atomic_migrateMoteur MAJ de CERBER : staging → verify → ZIP backup → move → rollback si échec.