Case study

Preuve publique

Cortex 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.

Aperçu du projet Cortex Bridge
TypeAgent local open source : extension Chrome, console et exécuteur
PériodeJuillet - août 2026 · v0.5.2
RôleConception produit, architecture, extension MV3, backend FastAPI, sécurité, QA
StatutPreview technique open source v0.5.2
Niveau de preuveUn lien public permet de contrôler au moins l'élément principal.
StackChrome MV3, FastAPI, Next.js, React, SQLite, Python, Ollama
En brefRelier 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.
PreuvesCode 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écisionPourquoiÉcarté
Exécuteur déterministe confiné au workspaceL'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 expliciteLe 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éfautTravailler dans le vrai Chrome avec la vraie session, sans environnement parallèle fragile.Piloter un navigateur Playwright séparé comme produit principal.
Fail-closed partoutUn 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.