Synchronise le template avec les décisions fondatrices 2025-2026 : - 018 : migration Rust strangler fig toolkit - 023 : Cortex/Cosmos product vision - 025 : cortex composition operator - 026 : IPC context packet access matrix - 027 : ambient autonomy engine - 028 : learning loop detect-iterate - 029 : Cosmos frontend brain - 030 : boot mode empirical validation - 031 : distribution model - 032 : execution mode vs workflow - 033/033a : embedding language strategy + zone filter - 034 : infra separation local/VPS/template - 035 : session pilote mode (ADR-035) Dépersonnalisation : keys/brain.<OWNER_DOMAIN>, deciders: [<owner>]
4.6 KiB
id, title, status, date, deciders, tags, scope
| id | title | status | date | deciders | tags | scope | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ADR-034 | Séparation infra — local (owner) / VPS (brain-template) | accepted | 2026-03-18 |
|
|
kernel |
ADR-034 — Séparation infra : local (owner) / VPS (brain-template)
Contexte
Jusqu'au 2026-03-18, le brain-ui local pointait sur le VPS (brain.<OWNER_DOMAIN>)
via le proxy Vite. Conséquences :
- En dev, le Cosmos montrait les embeddings du VPS — pas les changements locaux
- Le dev loop était cassé : modifier embed.py local → invisible en local
- Le VPS exposait le brain personnel du owner (ADRs privés, projets perso, bact)
- Un utilisateur qui visite le VPS voit le brain du owner, pas un produit
La distribution de brain-template (ADR-031) impose une séparation claire : un utilisateur qui découvre le produit ne doit pas tomber sur le brain privé du créateur.
Décision
Deux instances, deux rôles
Local (prod-laptop)
→ brain owner, privé
→ brain-engine port 7700, BRAIN_TIER=owner
→ brain-ui Vite port 5173, proxy → localhost:7700
→ brain.db local (re-embed cron 6h + on-demand)
→ jamais exposé publiquement
VPS (brain.<OWNER_DOMAIN>)
→ brain-template, démo produit
→ ce que le monde voit en premier
→ kernel ouvert, agents de référence, zéro données owner
→ brain-engine + brain-ui déployés depuis brain-template
Dev loop validé
1. Modifier le brain local (agents, embed, brain-ui)
2. Tester sur localhost:5173/ui/ → brain-engine local → brain.db local
3. Valider (dry-run, --stats, Cosmos local)
4. Commit + push
5. Déployer sur VPS uniquement si validé
Même principe que le swarm-ready gate (ADR-032) : au moins un run validé en local avant de toucher le prod.
Conséquences immédiates (2026-03-18)
vite.config.tsproxy →http://localhost:7700+ rewrite/api → ''+ws: truescripts/dev-start.sh— démarre brain-engine + Vite en un seul Ctrl+CBRAIN_TIER=owneren dev (pas de token requis, tier explicite)numpy+umap-learninstallés localement (UMAP local opérationnel)
Zone filter comme prérequis de distribution
ADR-033a est le fondement de sécurité qui rend cette séparation viable :
profil/bact/ → JAMAIS indexé → owner invisible au VPS
profil/decisions/ → scope kernel → archi partageable, décisions perso non
personal → JAMAIS → souveraineté par instance
Sans ADR-033a, exposer le brain-engine sur le VPS = exposer le bact owner. Avec ADR-033a, chaque instance est souveraine sur son privé — le MCP est safe par construction.
Chemin vers brain-template sur VPS
1. ADR-033a live (zone filter) ✅ 2026-03-18
2. ADR-034 (séparation infra) ✅ 2026-03-18
3. Déployer brain-template sur VPS → prochaine étape
4. VPS = démo kernel propre → zéro données owner
5. brain-key-server valide les tiers → free / pro / owner par clé
Note — Cosmos temps réel (future)
Deux modes d'embedding identifiés :
Mode actuel → cron 6h + on-demand (re-embed manuel) ← validé
Mode futur → file watcher (inotify) → re-embed sur write ← ADR-035 territory
Le temps réel est orthogonal à cette décision — déclenché sur besoin concret.
Alternatives considérées
| Option | Raison du rejet |
|---|---|
| Proxy Vite → VPS en dev | Dev loop cassé, Cosmos montre le VPS pas le local |
| Un seul brain sur VPS | Mélange données owner + produit — confidentialité rompue |
| brain-template = copie du brain owner | Expose données privées à la distribution |
Conséquences
Positives :
- Dev loop complet local — chaque changement visible immédiatement
- VPS propre pour la démo — ce que le monde voit = le produit, pas le owner
- Confidentialité garantie par construction (ADR-033a)
- La boucle dev local → validate → VPS prod est celle qui sera documentée pour les futurs contributeurs
Négatives / trade-offs assumés :
- Deux environnements à maintenir (local + VPS)
scripts/dev-start.shrequis pour démarrer l'env dev (acceptable)- numpy/umap-learn à installer localement (one-time, documenté)
Références
- ADR-031 — Distribution model brain-template
- ADR-033a — Embedding zone filter (prérequis sécurité)
- ADR-032 — Mode d'exécution (swarm-ready gate — même logique local→prod)
scripts/dev-start.sh— démarrage env dev localbrain-ui/vite.config.ts— proxy config dev- Session 2026-03-18 — validation empirique complète du dev loop