Panneau Spark : bouton « Console ↗ » vers la console du service (7.80.1)
FlowDeck CI / test (push) Failing after 30m58s
FlowDeck CI / lint (push) Failing after 1m31s
FlowDeck CI / docker (push) Skipped

This commit is contained in:
Spark
2026-10-22 21:17:39 +00:00
parent 851a7b17d2
commit c7da7002ca
3 changed files with 35 additions and 1 deletions
+11
View File
@@ -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=<id>`,
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
+1 -1
View File
@@ -1 +1 @@
7.80.0
7.80.1
+23
View File
@@ -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 @@
' <span class="d-titre">Discussion principale</span>' +
' <button type="button" class="d-btn" data-disc="liste">☰ Discussions</button>' +
' <button type="button" class="d-btn" data-disc="nouvelle">+ Nouvelle</button>' +
' <button type="button" class="d-btn" data-disc="console" title="Ouvrir la console Spark (agent.dracodev.net) dans un nouvel onglet, sur cette discussion">Console ↗</button>' +
'</div>' +
'<div class="draco-discussions" hidden></div>' +
'<div class="draco-panneau-outils">' +
@@ -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);