# #221 — Fusion : bouton « Console ↗ » dans le panneau Spark **Contexte.** Le panneau Spark (#218) et la console web du service d'agents (Lot 2, https://agent.dracodev.net/) sont deux faces du même service : mêmes discussions, mêmes approbations, mêmes missions. Il manquait le lien de navigation entre les deux. Demande de Bruno (2026-10-22) : un bouton dans le panneau qui ouvre la console. **Changement.** Dans `frontend/draco-panneau.js` — asset **vendangé**, maintenu en canonique dans TikTak et recopié **octet-identique** dans les 4 applications (TikTak, Flowdeck, Kanbante, ObsiGate) : - un bouton fantôme « Console ↗ » dans la barre des discussions, à côté de « ☰ Discussions » et « + Nouvelle » (même classe `d-btn`, donc visible en thème clair comme sombre, le panneau suivant le thème de l'app hôte) ; - au clic, `ouvrirConsole()` construit l'URL **à ce moment-là** (la discussion peut avoir changé sans recharger le panneau) : `https://agent.dracodev.net/?disc=&app=` ; - la discussion vient de l'état du panneau (`convId`, repli `sessionStorage draco_panneau_conv`) ; l'app hôte est déduite du sous-domaine par `appHote()` (`og` → `obsigate`, `tiktak`, `flowdeck`, `kanbante` ; hôte inconnu → pas de paramètre) ; - ouverture en **nouvel onglet** (`window.open(..., "_blank", "noopener")`). Sans discussion connue : lien simple vers la racine de la console. La console consomme déjà les deux paramètres : `?disc=` ouvre la discussion demandée (lien profond), `?app=` s'affiche en puce « Ouvert depuis : … » dans « Ce que Spark voit ». **Vérifications.** Syntaxe JS (`node --check`), test fonctionnel de la construction d'URL (4 cas : app connue/inconnue × discussion présente/absente), test de non-régression `tests/test_draco_barre.py::test_panneau_bouton_console_221` (marqueurs du bouton et de la logique dans l'asset servi), somme md5 commune des 4 copies : `c67cc2ab8e657b4e545fa93b28c3a0c4`. **Versions.** ObsiGate 2.76.1 (cette livraison) ; TikTak 0.59.1 et Flowdeck 7.80.1 déployées automatiquement sur release ; Kanbante 0.28.1 publiée. **Activation côté ObsiGate : redéploiement Docker par Bruno.**