diff --git a/CHANGELOG.md b/CHANGELOG.md index 862b4a8..480d8ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog - FlowDeck +## v7.80.1 (2026-10-22) — Panneau Spark : bouton « Console ↗ » + +- **Bouton « Console ↗ »** dans la barre des discussions du + panneau Spark (demande de Bruno) : ouvre la console web du + service d'agents (https://agent.dracodev.net/) dans un nouvel + onglet, sur la discussion actuellement affichée (`?disc=`, + URL construite au clic) et avec l'app d'origine + (`?app=flowdeck`, déduite du sous-domaine). Panneau recopié + octet-identique dans les 4 apps (TikTak 0.59.1, Flowdeck + 7.80.1, Kanbante 0.28.1, ObsiGate 2.76.1). + ## v7.80.0 (2026-10-22) — Émission d'événements vers le journal du service d'agents (Lot 2) - **Nouveau module `app/services/agent_evenements.py`** : Flowdeck diff --git a/VERSION b/VERSION index 2d1c706..87f85f9 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -7.80.0 +7.80.1 diff --git a/static/js/draco-panneau.js b/static/js/draco-panneau.js index 5a0d8ec..b954674 100644 --- a/static/js/draco-panneau.js +++ b/static/js/draco-panneau.js @@ -18,6 +18,10 @@ * Panneau v2 (Lot 1) : rendu Markdown, largeur réglable à la souris * (persistée), thème clair/sombre aligné sur l'app hôte * (html[data-theme], repli prefers-color-scheme, suivi en direct). + * Bouton « Console ↗ » (barre des discussions) : ouvre la console web + * du même service (agent.dracodev.net) dans un nouvel onglet, sur la + * discussion courante (?disc=) et avec l'app d'origine (?app=), + * déduite du sous-domaine de l'hôte. * États honnêtes : service injoignable / session non reconnue / LLM non * configuré / exécuteur non configuré sont affichés tels quels. */ (function () { @@ -44,6 +48,23 @@ catch (e) { return null; } } + /* ── Console web (même service, nouvel onglet) ─────────────── */ + function appHote() { + var h = (window.location.hostname || "").split(".")[0]; + var correspondance = { tiktak: "tiktak", flowdeck: "flowdeck", + kanbante: "kanbante", og: "obsigate" }; + return correspondance[h] || null; + } + function ouvrirConsole() { + var params = []; + var id = convId || convStockee(); + if (id) params.push("disc=" + encodeURIComponent(id)); + var app = appHote(); + if (app) params.push("app=" + encodeURIComponent(app)); + window.open(API + "/" + (params.length ? "?" + params.join("&") : ""), + "_blank", "noopener"); + } + /* ── Thème : suivre l'app hôte ─────────────────────────────── */ function themeHote() { var t = document.documentElement.getAttribute("data-theme"); @@ -122,6 +143,7 @@ ' Discussion principale' + ' ' + ' ' + + ' ' + '' + '' + '
' + @@ -145,6 +167,7 @@ root.querySelector(".fermer").addEventListener("click", fermer); root.querySelector('[data-disc="liste"]').addEventListener("click", basculerTiroir); root.querySelector('[data-disc="nouvelle"]').addEventListener("click", nouvelleDiscussion); + root.querySelector('[data-disc="console"]').addEventListener("click", ouvrirConsole); root.querySelector('[data-outil="aujourdhui"]').addEventListener("click", chargerAujourdhui); root.querySelector('[data-outil="approbations"]').addEventListener("click", chargerApprobations); root.querySelector('[data-outil="missions"]').addEventListener("click", ouvrirMissions);