ObsiGate 2.84.1 — HUB-18 : thème commun, barre v0.5.0 + initialisation thème Hub (fusion #132) #67

Merged
bruno merged 1 commits from hub18-theme-commun into main 2026-11-06 09:45:59 -05:00
Owner

ObsiGate 2.84.1 — carte HUB-18 « Thème commun » (fusion #132). Barre commune v0.5.0 (PR commons #12, branche hub18-theme-commun de Projets/dracodev-commons). Aucune fusion : fusion sur l'ordre de Bruno.

Hypothèse d'ordre : cette PR suppose que les PR de la vague 1 (HUB-15/HUB-16) fusionnent avant elle ; elle est branchée sur main (2.84.0) et vise 2.84.1 (bump patch via scripts/bump_version.py, fichiers dérivés synchronisés par l'outil du dépôt).

Contenu

  • frontend/draco-barre.js re-vendangé verbatim depuis commons v0.5.0 (CSS et fragment inchangés) : la barre apprend la préférence de thème du Hub (GET <hub>/api/profil/theme, cookie draco, URL du Hub résolue — jamais figée), cache localStorage draco-theme-hub (TTL 12 h) appliqué synchrone à l'init, fetch asynchrone non bloquant, application par data-theme, événement draco:theme. Repli intégral si le Hub ne répond pas / non-OK / theme: null : comportement actuel inchangé.
  • Initialisation propre à ObsiGate (frontend/app.js, initTheme()) : écoute de draco:theme → le mode effectif est routé par applyTheme() (icône et libellé du bouton de thème + feuilles highlight.js synchronisés ; le mode appliqué devient le choix local mémorisé obsigate-theme — convergence assumée) ; reprise de DRACO_BAR.themeMode si la barre s'est initialisée avant le module. Le bouton de bascule local reste fonctionnel pour la session.

Portes

  • tests/test_draco_barre.py + tests/test_version.py : 60 passed (fonds main à environnement identique : 59 passed — le test ajouté verrouille la vendange v0.5.0 et l'écouteur draco:theme). Exécutés avec --noconftest dans cette VM (le conftest.py partagé exige fastapi, absent de l'environnement local ; ces deux fichiers n'en dépendent pas — la suite complète reste au CI du dépôt).
  • Syntaxe JS vérifiée (node --check) sur app.js et draco-barre.js.
**ObsiGate 2.84.1** — carte **HUB-18 « Thème commun »** (fusion #132). Barre commune **v0.5.0** (PR commons #12, branche `hub18-theme-commun` de `Projets/dracodev-commons`). **Aucune fusion** : fusion sur l'ordre de Bruno. **Hypothèse d'ordre** : cette PR suppose que les PR de la vague 1 (HUB-15/HUB-16) fusionnent avant elle ; elle est branchée sur `main` (2.84.0) et vise **2.84.1** (bump patch via `scripts/bump_version.py`, fichiers dérivés synchronisés par l'outil du dépôt). ## Contenu - `frontend/draco-barre.js` re-vendangé **verbatim** depuis commons v0.5.0 (CSS et fragment inchangés) : la barre apprend la préférence de thème du Hub (`GET <hub>/api/profil/theme`, cookie draco, URL du Hub résolue — jamais figée), cache `localStorage` `draco-theme-hub` (TTL 12 h) appliqué synchrone à l'init, fetch asynchrone non bloquant, application par `data-theme`, événement `draco:theme`. **Repli intégral** si le Hub ne répond pas / non-OK / `theme: null` : comportement actuel inchangé. - **Initialisation propre à ObsiGate** (`frontend/app.js`, `initTheme()`) : écoute de `draco:theme` → le mode effectif est routé par `applyTheme()` (icône et libellé du bouton de thème + feuilles highlight.js synchronisés ; le mode appliqué devient le choix local mémorisé `obsigate-theme` — convergence assumée) ; reprise de `DRACO_BAR.themeMode` si la barre s'est initialisée avant le module. Le bouton de bascule local reste fonctionnel pour la session. ## Portes - `tests/test_draco_barre.py` + `tests/test_version.py` : **60 passed** (fonds `main` à environnement identique : 59 passed — le test ajouté verrouille la vendange v0.5.0 et l'écouteur `draco:theme`). Exécutés avec `--noconftest` dans cette VM (le `conftest.py` partagé exige `fastapi`, absent de l'environnement local ; ces deux fichiers n'en dépendent pas — la suite complète reste au CI du dépôt). - Syntaxe JS vérifiée (`node --check`) sur `app.js` et `draco-barre.js`.
bruno added 1 commit 2026-11-06 09:23:07 -05:00
feat: HUB-18 thème commun — barre v0.5.0 + init thème Hub (2.84.1, fusion #132)
CI / lint (pull_request) Successful in 1m16s
CI / security (pull_request) Successful in 16s
CI / test (pull_request) Successful in 3m38s
CI / build (pull_request) Successful in 13s
CI / e2e (pull_request) Failing after 15m2s
2943e40e81
bruno merged commit c8d2eb19db into main 2026-11-06 09:45:59 -05: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#67