Case study
Preuve publiqueCortex Bridge - orchestration ChatGPT et exécution locale contrôlée
Cortex Bridge relie une conversation ChatGPT ouverte dans Chrome à un exécuteur déterministe sur Mac. Chaque action locale reste confinée au workspace, présentée avant exécution et traçable. Le projet réunit extension navigateur, backend, interface, orchestration, sécurité et protocole de preuve dans un dépôt public.

| Type | Agent local open source : extension Chrome, console et exécuteur |
|---|---|
| Période | Juillet - août 2026 · v0.5.2 |
| Rôle | Conception produit, architecture, extension MV3, backend FastAPI, sécurité, QA |
| Statut | Preview technique open source v0.5.2 |
| Niveau de preuve | Un lien public permet de contrôler au moins l'élément principal. |
| Stack | Chrome MV3, FastAPI, Next.js, React, SQLite, Python, Ollama |
| En bref | Relier une conversation ChatGPT à un exécuteur local borné : le modèle planifie, l'utilisateur valide, Cortex agit dans le workspace et renvoie un rapport auditable. |
| Preuves | Code public sous licence MIT. Preuve de release v0.5.2 publiée le 22/08/2026 : 434 tests backend, 127 frontend, 56 extension, 12 E2E et 4 accessibilité sans échec ; 1 test E2E ignoré. |
Contraintes
Contexte et contraintes.
- Éviter le copier-coller entre la conversation et l'exécution locale sans laisser le modèle agir librement.
- Fonctionner dans le vrai profil Chrome de l'utilisateur, avec un exécuteur déterministe disponible sans Ollama.
- Lignes rouges assumées : pas d'endpoints privés, pas de cookies de session, pas de contournement de protections ou de limites.
- Transport ChatGPT grand public en opt-in explicite, jamais présenté comme affilié, autorisé ou supporté par OpenAI.
Architecture / workflow
Architecture.
- Extension Chrome MV3 : service worker, scripts de contenu, commandes DOM structurées en liste blanche.
- Console FastAPI en loopback (port 8420) : appairage WebSocket à token unique, chat, pièces jointes, captures d'onglet, missions.
- Interface React et Next.js statique en français : appairage, états d'envoi explicites, navigation sur 50 conversations.
- Orchestration SQLite + exécuteur déterministe confiné au workspace ; Ollama optionnel pour les modèles locaux.
- Boucle contrôlée : ChatGPT planifie, Cortex extrait la décision, l'exécuteur local agit après validation, puis le rapport revient dans la conversation.
Décisions
Les choix et leurs compromis.
| Décision | Pourquoi | Écarté |
|---|---|---|
| Exécuteur déterministe confiné au workspace | L'IA propose, mais seule une action bornée et validée s'exécute ; le système reste utile même sans modèle local disponible. | Laisser le LLM lancer librement des commandes shell. |
| Bridge DOM en module opt-in explicite | Le conflit avec les conditions du fournisseur est réel : l'utilisateur doit comprendre le risque avant d'activer ce transport. | Activer le bridge par défaut ou le présenter comme officiellement supporté. |
| Transport extension MV3 par défaut | Travailler dans le vrai Chrome avec la vraie session, sans environnement parallèle fragile. | Piloter un navigateur Playwright séparé comme produit principal. |
| Fail-closed partout | Un validateur mal formé fait échouer la mission au lieu de la valider : vérifié par test. | Mode permissif avec simples alertes. |
Livraison
Livrables.
- Extension Chrome MV3 (service worker, scripts de contenu, commandes DOM en liste blanche).
- Console FastAPI loopback : appairage à token unique, chat, pièces jointes, captures d'onglet, missions.
- Interface React et Next.js statique en français avec états d'envoi explicites.
- Orchestration SQLite et exécuteur déterministe confiné au workspace, fonctionnel sans Ollama.
- Installation macOS contrôlée par plan immuable et diagnostic local reproductible.
Résultats
Résultats.
- Preuve de release v0.5.2 du 22/08/2026 : 434 tests backend, 127 frontend, 56 extension, 12 E2E et 4 accessibilité sans échec ; 1 E2E ignoré.
- Dix scénarios à deux conversations exécutés sans croisement ; le brouillon du troisième writer est conservé lors du refus.
- Auto-diagnostic v0.5.2 validé dans un worktree jetable : installation, consentement, démarrage, API loopback et arrêt propre.
Pas encore mesuré
Ce qui reste à creuser.
- Stabilité de la boucle sur plusieurs semaines d'usage réel : pas encore de métrique publiable.
- Compatibilité continue avec l'interface ChatGPT : les preuves restent datées et une modification du DOM peut casser le transport.
V2 / suite
Prochaine itération.
- Sonde DOM quotidienne pour détecter une mise à jour de ChatGPT cassant le bridge avant usage.
- Transport officiellement supporté par le fournisseur si une option locale compatible devient disponible.
- Distribution de l'extension au-delà de l'installation locale manuelle.