fusion #70 : retirer le bouton trois points, Console Spark au menu marque #38

Merged
bruno merged 3 commits from fusion-70-barre-console-spark into main 2026-10-28 12:40:00 -04:00
Owner

Spécifique ObsiGate (en plus du tronc commun ci-dessous)

  • Barre inline dans frontend/index.html : bouton trois points supprimé ; relais onAction("menu") (clic #header-menu-btn) supprimé. Le bouton natif #header-menu-btn d'ObsiGate lui-même est inchangé et reste utilisable depuis l'en-tête ObsiGate — seul le relais depuis la barre disparaît, donc pas de bouton mort et pas de fonction perdue.
  • Réécriture DRACO_URLS, avatar via /api/auth/me, autres branches onAction : inchangés.

Contexte — fusion-trois-apps #70 (chantier 3), vendoring de Projets/dracodev-commons PR #2

Retirer le bouton trois points et son menu par défaut, ajouter « Console Spark » au menu de la marque, corriger focus/fermeture. Aucun bump de version, aucun merge, aucune fermeture d'issue par ce chantier (le coordinateur merge et publie à la fin). Ordre de merge suggéré : commons d'abord, puis les 4 hôtes.

Audit — bug de fermeture sur tiktak-dev (rappel)

Cause prouvée dans app/static/js/app.js (navigation #89) : document/window.addEventListener est remplacé par un registre (__tcDocWin) et chaque navigation douce appelle tcInit() → __tcTeardown(), qui supprime les écouteurs du registre — y compris ceux de draco-barre.js (script defer, enregistré après le tcInit() initial). La barre survit à la navigation (hors .layout remplacé) mais ses gestionnaires sont morts : menu ouvert avant navigation impossible à fermer (Échap/clic extérieur sans effet), et la marque (href="/") interceptée comme navigation interne au lieu de basculer le menu. Correctif en deux points : (1) dans le JS vendangé, écouteurs clic/Échap posés via EventTarget.prototype (hors registre, jamais supprimés par le teardown) ; (2) dans le gabarit TikTak, exclusion de .draco-bar de l'intercepteur SPA (cette PR-ci, TikTak uniquement).

Ce qui change (cet hôte)

  • Gabarit : bouton trois points supprimé ; branche onAction("menu") morte supprimée (elle retournait false pour obtenir le menu par défaut v0.1.6 — plus aucun bouton à relayer, donc pas de bouton mort).
  • JS/CSS vendangés = copie exacte du nouveau commons : pas de menu trois points ; menu de la marque + entrée « Console Spark » (logo ✦, « Agent commun ») après Kanbante, href = URL agent résolue (explicite > dérivation -dev agent-dev > défaut prod https://agent.dracodev.net/, aucun hôte spark-dev inventé).
  • Focus/fermeture : Espace sur la marque (focus premier item), Échap (focus rendu au déclencheur), nouvel appui marque, clic extérieur (ne déplace volontairement pas le focus — choix documenté dans la PR commons).
  • Autres branches onAction (rail, palette, domaine, alertes, spark, rappel-entête), onglets, avatar, pastilles : inchangés.

Limites

  • Validation navigateur réel sur tiktak-dev après déploiement encore à faire par Bruno (ouvrir, naviguer en douce, Échap / extérieur / marque + retour focus). Preuve par tests ici : suite commons 25/25, 98 assertions (dont survie au teardown simulé) ; suites propres de l'hôte non relancées dans ce chantier (fichiers vérifiés : diff minimal, node --check OK pour les JS touchés, pas de secret).
## Spécifique ObsiGate (en plus du tronc commun ci-dessous) - Barre inline dans `frontend/index.html` : bouton trois points supprimé ; relais `onAction("menu")` (clic `#header-menu-btn`) supprimé. **Le bouton natif `#header-menu-btn` d'ObsiGate lui-même est inchangé** et reste utilisable depuis l'en-tête ObsiGate — seul le relais depuis la barre disparaît, donc pas de bouton mort et pas de fonction perdue. - Réécriture `DRACO_URLS`, avatar via `/api/auth/me`, autres branches `onAction` : inchangés. ## Contexte — fusion-trois-apps #70 (chantier 3), vendoring de Projets/dracodev-commons PR #2 Retirer le bouton trois points et son menu par défaut, ajouter « Console Spark » au menu de la marque, corriger focus/fermeture. **Aucun bump de version, aucun merge, aucune fermeture d'issue par ce chantier** (le coordinateur merge et publie à la fin). Ordre de merge suggéré : commons d'abord, puis les 4 hôtes. ## Audit — bug de fermeture sur tiktak-dev (rappel) Cause prouvée dans `app/static/js/app.js` (navigation #89) : `document/window.addEventListener` est remplacé par un registre (`__tcDocWin`) et chaque navigation douce appelle `tcInit()` → `__tcTeardown()`, qui supprime les écouteurs du registre — y compris ceux de `draco-barre.js` (script `defer`, enregistré après le `tcInit()` initial). La barre survit à la navigation (hors `.layout` remplacé) mais ses gestionnaires sont morts : menu ouvert avant navigation impossible à fermer (Échap/clic extérieur sans effet), et la marque (`href="/"`) interceptée comme navigation interne au lieu de basculer le menu. Correctif en deux points : (1) dans le JS vendangé, écouteurs clic/Échap posés via `EventTarget.prototype` (hors registre, jamais supprimés par le teardown) ; (2) dans le gabarit TikTak, exclusion de `.draco-bar` de l'intercepteur SPA (cette PR-ci, TikTak uniquement). ## Ce qui change (cet hôte) - Gabarit : bouton trois points supprimé ; branche `onAction("menu")` morte supprimée (elle retournait `false` pour obtenir le menu par défaut v0.1.6 — plus aucun bouton à relayer, donc pas de bouton mort). - JS/CSS vendangés = copie exacte du nouveau commons : pas de menu trois points ; menu de la marque + entrée **« Console Spark »** (logo ✦, « Agent commun ») après Kanbante, href = URL agent résolue (explicite > dérivation `-dev` `agent-dev` > défaut prod `https://agent.dracodev.net/`, **aucun hôte `spark-dev` inventé**). - Focus/fermeture : Espace sur la marque (focus premier item), Échap (focus rendu au déclencheur), nouvel appui marque, clic extérieur (ne déplace volontairement pas le focus — choix documenté dans la PR commons). - Autres branches `onAction` (rail, palette, domaine, alertes, spark, rappel-entête), onglets, avatar, pastilles : **inchangés**. ## Limites - Validation navigateur réel sur tiktak-dev après déploiement encore à faire par Bruno (ouvrir, naviguer en douce, Échap / extérieur / marque + retour focus). Preuve par tests ici : suite commons `25/25, 98 assertions` (dont survie au teardown simulé) ; suites propres de l'hôte non relancées dans ce chantier (fichiers vérifiés : diff minimal, `node --check` OK pour les JS touchés, pas de secret).
bruno added 3 commits 2026-10-28 12:02:58 -04:00
fusion #70 : vendanger CSS sans menu trois points
CI / lint (pull_request) Failing after 2s
CI / security (pull_request) Failing after 1s
CI / test (pull_request) Skipped
CI / build (pull_request) Skipped
CI / e2e (pull_request) Skipped
55351bc997
bruno merged commit 56b70481e8 into main 2026-10-28 12:40:00 -04:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Projets/ObsiGate#38