2.2 KiB
#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=<id de la discussion affichée>&app=<app hôte>; - la discussion vient de l'état du panneau (
convId, replisessionStorage draco_panneau_conv) ; l'app hôte est déduite du sous-domaine parappHote()(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.