Chantier 5 — Alertes en onglets + composant partagé + onglet Console Spark dans la barre #39

Closed
bruno wants to merge 7 commits from alertes-onglets-5 into main
Owner

Chantier 5 — Alertes en onglets + composant partagé + onglet Console Spark dans la barre (Kanbante)

Suites de validation : Projets/fusion-trois-apps#69 (alertes) et #71 (barre console) — leurs états sont INCHANGÉS par cette PR. Aucun merge, aucune publication, aucun bump de version. Composant canonique : Projets/dracodev-commons#3 (ui/alertes/, branche alertes-onglets-5) — les fichiers alertes/barre ci-dessous en sont des vendoring byte-identiques (vérifié par md5). La PR agent-commun #12 n'est pas touchée. Pages /recherche NON touchées (autre chantier) ; dépôt agent-commun NON touché.

Fichiers

  • app/templates/_draco_bar.html (onglet agent)
  • static/js/draco-barre.js, static/css/draco-barre.css (vendangés commons)
  • static/js/draco-alertes.js, static/css/draco-alertes.css (vendangés ui/alertes/)
  • tests/draco-alertes.test.js (vendangé, require adapté), tests/test_draco_alertes.py (+1 test chantier 5)

Ce que fait la PR

  • Barre : 5e onglet « Console Spark » (data-app="agent"), APRÈS Kanbante et en dernier — ordre : ObsiGate, Flowdeck, TikTak, Kanbante, Console Spark. Lien : {{ agent_url }}/ (variable déjà utilisée par le gabarit pour le panneau, contexte app/main.py). L'entrée « Console Spark » du menu de la marque est CONSERVÉE (le JS vendangé exclut l'onglet agent de la construction du menu, sinon doublon). draco-barre.js/draco-barre.css vendangés depuis commons (dont la règle mobile data-current="agent").
  • Vue Alertes en onglets (module vendangé) : Tout, ObsiGate, Flowdeck, TikTak, Kanbante, Console Spark, Historique, compteurs par onglet. Tout et onglets par application = SEULEMENT les actives ; Historique = SEULEMENT les fermées. Filtre texte (titre + contexte) après le périmètre de l'onglet, sans mélange actifs/historique. Onglet dans l'URL (#alertes=<onglet>, partageable, retour arrière). Navigation clavier (tablist, flèches, Début/Fin, Échap).
  • Présentation identique partout : application, titre, date, état, lien profond (-dev respecté) ; date décroissante ; « sans date » si absente/illisible ; états « Active » / « Lue » / libellé Kanbante / état réel console. Divergences corrigées : type brut Kanbante (« moved ») supprimé de la méta, structure ObsiGate unifiée, dates illisibles → « sans date », erreurs de section remontées aussi dans Historique (détail : voir commons#3 et ui/alertes/README.md).

Onglet Console Spark des alertes — état honnête

Aucun endpoint d'alertes console publié sur agent-commun main au moment de cette PR (autre chantier en cours) : l'onglet affiche « Aucune alerte console — source indisponible » + lien vers la console, sans inventer d'alerte. Branchement prévu sans URL devinée : window.DRACO_ALERTES_CONSOLE_URL (ou DRACO_BAR_CONFIG.consoleAlertsUrl) vers l'endpoint de l'autre chantier (missions pause budget / accès requis, approbations en attente, états réels).

Agrégation / dépendance CORS

Agrégation à la demande, état d'erreur PAR SECTION (section en échec ≠ page cassée). En attendant le correctif CORS des allowlists (autre chantier), une section inter-origines peut afficher cet état d'erreur — transitoire, jamais présenté comme normal. Aucun changement CORS/CSP dans cette PR (périmètre de l'autre chantier).

Tests (chiffres réels, sandbox)

  • Node tests/draco-alertes.test.js : 14 passés, 0 échoué (idem TikTak).
  • pytest : voir « Deltas explicites » (CI).

Deltas explicites

  • Aucune source d'alerte native modifiée (FD/TK/KB/OG inchangées) ; aucune page de recherche modifiée ; aucune pastille sur l'onglet agent (aucun compteur console fiable tant que la source n'est pas publiée).
  • Suites pytest complètes : non exécutables dans cette sandbox (FastAPI absent) → à lancer par la CI ; les assertions pytest ajoutées ont été vérifiées par simulation sur les fichiers livrés + py_compile OK.

À valider par Bruno après merge/publication

Onglets Alertes (actifs vs Historique, compteurs, filtre, URL partageable + retour arrière, clavier), présentation identique aux autres hôtes, onglet Console Spark en dernier dans ce header (lien -dev sur hôte -dev), onglet Console Spark des alertes en état vide honnête tant que la source console n'est pas publiée.

# Chantier 5 — Alertes en onglets + composant partagé + onglet Console Spark dans la barre (Kanbante) Suites de validation : Projets/fusion-trois-apps#69 (alertes) et #71 (barre console) — leurs états sont INCHANGÉS par cette PR. Aucun merge, aucune publication, aucun bump de version. Composant canonique : Projets/dracodev-commons#3 (`ui/alertes/`, branche `alertes-onglets-5`) — les fichiers alertes/barre ci-dessous en sont des vendoring byte-identiques (vérifié par md5). La PR agent-commun #12 n'est pas touchée. Pages `/recherche` NON touchées (autre chantier) ; dépôt agent-commun NON touché. ## Fichiers - `app/templates/_draco_bar.html` (onglet agent) - `static/js/draco-barre.js`, `static/css/draco-barre.css` (vendangés commons) - `static/js/draco-alertes.js`, `static/css/draco-alertes.css` (vendangés `ui/alertes/`) - `tests/draco-alertes.test.js` (vendangé, require adapté), `tests/test_draco_alertes.py` (+1 test chantier 5) ## Ce que fait la PR - **Barre** : 5e onglet « Console Spark » (`data-app="agent"`), APRÈS Kanbante et en dernier — ordre : ObsiGate, Flowdeck, TikTak, Kanbante, Console Spark. Lien : `{{ agent_url }}/` (variable déjà utilisée par le gabarit pour le panneau, contexte `app/main.py`). L'entrée « Console Spark » du menu de la marque est CONSERVÉE (le JS vendangé exclut l'onglet agent de la construction du menu, sinon doublon). `draco-barre.js`/`draco-barre.css` vendangés depuis commons (dont la règle mobile `data-current="agent"`). - **Vue Alertes en onglets** (module vendangé) : Tout, ObsiGate, Flowdeck, TikTak, Kanbante, Console Spark, Historique, compteurs par onglet. Tout et onglets par application = SEULEMENT les actives ; Historique = SEULEMENT les fermées. Filtre texte (titre + contexte) après le périmètre de l'onglet, sans mélange actifs/historique. Onglet dans l'URL (`#alertes=<onglet>`, partageable, retour arrière). Navigation clavier (tablist, flèches, Début/Fin, Échap). - **Présentation identique partout** : application, titre, date, état, lien profond (-dev respecté) ; date décroissante ; « sans date » si absente/illisible ; états « Active » / « Lue » / libellé Kanbante / état réel console. Divergences corrigées : type brut Kanbante (« moved ») supprimé de la méta, structure ObsiGate unifiée, dates illisibles → « sans date », erreurs de section remontées aussi dans Historique (détail : voir commons#3 et `ui/alertes/README.md`). ## Onglet Console Spark des alertes — état honnête Aucun endpoint d'alertes console publié sur agent-commun `main` au moment de cette PR (autre chantier en cours) : l'onglet affiche « Aucune alerte console — source indisponible » + lien vers la console, sans inventer d'alerte. Branchement prévu sans URL devinée : `window.DRACO_ALERTES_CONSOLE_URL` (ou `DRACO_BAR_CONFIG.consoleAlertsUrl`) vers l'endpoint de l'autre chantier (missions pause budget / accès requis, approbations en attente, états réels). ## Agrégation / dépendance CORS Agrégation à la demande, état d'erreur PAR SECTION (section en échec ≠ page cassée). En attendant le correctif CORS des allowlists (autre chantier), une section inter-origines peut afficher cet état d'erreur — transitoire, jamais présenté comme normal. Aucun changement CORS/CSP dans cette PR (périmètre de l'autre chantier). ## Tests (chiffres réels, sandbox) - Node `tests/draco-alertes.test.js` : 14 passés, 0 échoué (idem TikTak). - pytest : voir « Deltas explicites » (CI). ## Deltas explicites - Aucune source d'alerte native modifiée (FD/TK/KB/OG inchangées) ; aucune page de recherche modifiée ; aucune pastille sur l'onglet agent (aucun compteur console fiable tant que la source n'est pas publiée). - Suites pytest complètes : non exécutables dans cette sandbox (FastAPI absent) → à lancer par la CI ; les assertions pytest ajoutées ont été vérifiées par simulation sur les fichiers livrés + `py_compile` OK. ## À valider par Bruno après merge/publication Onglets Alertes (actifs vs Historique, compteurs, filtre, URL partageable + retour arrière, clavier), présentation identique aux autres hôtes, onglet Console Spark en dernier dans ce header (lien -dev sur hôte -dev), onglet Console Spark des alertes en état vide honnête tant que la source console n'est pas publiée.
bruno added 7 commits 2026-10-28 13:52:18 -04:00
Author
Owner

Remplacée par la PR #40 (rebase sur main post-#37/#38). Contenu identique à cette PR ; seul conflit (tests/test_draco_alertes.py) résolu en conservant les assertions CORS dev de #37 ET le test chantier 5. Fermeture sans merge, au profit de #40.

Remplacée par la PR #40 (rebase sur main post-#37/#38). Contenu identique à cette PR ; seul conflit (tests/test_draco_alertes.py) résolu en conservant les assertions CORS dev de #37 ET le test chantier 5. Fermeture sans merge, au profit de #40.
bruno closed this pull request 2026-10-28 14:28:15 -04:00

Pull request closed

Please reopen this pull request to perform a merge.
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Projets/kanbante#39