ObsiGate 2.86.1 — barre commune v0.6.0 : entrée « Administration » du menu compte (fusion #142, demande de Bruno du 2026-11-06).
Re-vendange verbatim de la barre commons v0.6.0 (PR dracodev-commons #14) : frontend/draco-barre.js + frontend/draco-barre.css. Le menu compte gagne le lien Administration → <hub>/admin, après le séparateur, avant Déconnexion — visible seulement si l'hôte affirme le statut d'administrateur de suite.
Branchement hôte (frontend/index.html) : le statut est affirmé depuis la réponse de /api/auth/me déjà chargée pour l'avatar — DRACO_BAR.setAdmin(u.role === "admin"). Le rôle global du compte chez ObsiGate est la définition même de l'administrateur de suite (c'est lui que la garde /admin/* du Hub vérifie, via ce même endpoint) : ObsiGate le connaît nativement. Tout autre rôle ou échec : aucune affirmation, l'entrée reste masquée.
Branchement complété après la preuve locale (deux retours du rendu réel) : le fetch d'amorçage d'index.html tourne avant toute connexion (il ne couvre que les sessions déjà présentes au chargement), et le frontend servi est en modules ES (frontend/js/) — le app.js monolithique racine n'est plus chargé. Le branchement vit donc dans renderUserSection() (frontend/js/auth.js), appelée par showApp() pour toutes les sessions établies (connexion, restauration, renouvellement silencieux), au même endroit que la rangée d'administration native : DRACO_BAR.setAdmin(user.role === "admin"), et setAdmin(false) sans identité établie. Garde mise à jour dans le test v0.6.0 (assertions sur js/auth.js) ; tests frontend du dépôt : validate-imports (44 modules) et unit.test.mjs (13) verts.
Tests : tests/test_draco_barre.py (+1 garde v0.6.0) et tests/test_version.py — 62 passés. Preuve par le rendu sur instance locale (connexion réelle, comptes admin et non-admin) : voir la carte fusion #142.
Version synchronisée par scripts/bump_version.py --set 2.86.1 --sync (VERSION, package.json, desktop, README, ROADMAP) + section CHANGELOG.
⚠️Numérotation : branche depuis le main 2.86.0 (post-#141). La PR #70 en vol (HUB-21, réglages) porte un numéro devenu caduc (2.85.2) et devra être renumérotée à sa fusion — aucun chevauchement de fichiers avec elle ici (barre + index.html + version).
**ObsiGate 2.86.1 — barre commune v0.6.0 : entrée « Administration » du menu compte** (fusion #142, demande de Bruno du 2026-11-06).
- **Re-vendange verbatim** de la barre commons v0.6.0 (PR [dracodev-commons #14](https://git.dracodev.net/Projets/dracodev-commons/pulls/14)) : `frontend/draco-barre.js` + `frontend/draco-barre.css`. Le menu compte gagne le lien **Administration** → `<hub>/admin`, après le séparateur, avant Déconnexion — visible seulement si l'hôte affirme le statut d'administrateur de suite.
- **Branchement hôte** (`frontend/index.html`) : le statut est affirmé depuis la réponse de `/api/auth/me` déjà chargée pour l'avatar — `DRACO_BAR.setAdmin(u.role === "admin")`. Le rôle global du compte chez ObsiGate est la définition même de l'administrateur de suite (c'est lui que la garde `/admin/*` du Hub vérifie, via ce même endpoint) : ObsiGate le connaît nativement. Tout autre rôle ou échec : aucune affirmation, l'entrée reste masquée.
- **Branchement complété après la preuve locale** (deux retours du rendu réel) : le fetch d'amorçage d'index.html tourne avant toute connexion (il ne couvre que les sessions déjà présentes au chargement), et le frontend servi est en **modules ES** (`frontend/js/`) — le `app.js` monolithique racine n'est plus chargé. Le branchement vit donc dans `renderUserSection()` (`frontend/js/auth.js`), appelée par `showApp()` pour toutes les sessions établies (connexion, restauration, renouvellement silencieux), au même endroit que la rangée d'administration native : `DRACO_BAR.setAdmin(user.role === "admin")`, et `setAdmin(false)` sans identité établie. Garde mise à jour dans le test v0.6.0 (assertions sur `js/auth.js`) ; tests frontend du dépôt : validate-imports (44 modules) et unit.test.mjs (13) verts.
- **Tests** : `tests/test_draco_barre.py` (+1 garde v0.6.0) et `tests/test_version.py` — 62 passés. Preuve par le rendu sur instance locale (connexion réelle, comptes admin et non-admin) : voir la carte fusion #142.
- Version synchronisée par `scripts/bump_version.py --set 2.86.1 --sync` (VERSION, package.json, desktop, README, ROADMAP) + section CHANGELOG.
⚠️ **Numérotation** : branche depuis le main 2.86.0 (post-#141). La PR #70 en vol (HUB-21, réglages) porte un numéro devenu caduc (2.85.2) et devra être renumérotée à sa fusion — aucun chevauchement de fichiers avec elle ici (barre + index.html + version).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
ObsiGate 2.86.1 — barre commune v0.6.0 : entrée « Administration » du menu compte (fusion #142, demande de Bruno du 2026-11-06).
frontend/draco-barre.js+frontend/draco-barre.css. Le menu compte gagne le lien Administration →<hub>/admin, après le séparateur, avant Déconnexion — visible seulement si l'hôte affirme le statut d'administrateur de suite.frontend/index.html) : le statut est affirmé depuis la réponse de/api/auth/medéjà chargée pour l'avatar —DRACO_BAR.setAdmin(u.role === "admin"). Le rôle global du compte chez ObsiGate est la définition même de l'administrateur de suite (c'est lui que la garde/admin/*du Hub vérifie, via ce même endpoint) : ObsiGate le connaît nativement. Tout autre rôle ou échec : aucune affirmation, l'entrée reste masquée.frontend/js/) — leapp.jsmonolithique racine n'est plus chargé. Le branchement vit donc dansrenderUserSection()(frontend/js/auth.js), appelée parshowApp()pour toutes les sessions établies (connexion, restauration, renouvellement silencieux), au même endroit que la rangée d'administration native :DRACO_BAR.setAdmin(user.role === "admin"), etsetAdmin(false)sans identité établie. Garde mise à jour dans le test v0.6.0 (assertions surjs/auth.js) ; tests frontend du dépôt : validate-imports (44 modules) et unit.test.mjs (13) verts.tests/test_draco_barre.py(+1 garde v0.6.0) ettests/test_version.py— 62 passés. Preuve par le rendu sur instance locale (connexion réelle, comptes admin et non-admin) : voir la carte fusion #142.scripts/bump_version.py --set 2.86.1 --sync(VERSION, package.json, desktop, README, ROADMAP) + section CHANGELOG.⚠️ Numérotation : branche depuis le main 2.86.0 (post-#141). La PR #70 en vol (HUB-21, réglages) porte un numéro devenu caduc (2.85.2) et devra être renumérotée à sa fusion — aucun chevauchement de fichiers avec elle ici (barre + index.html + version).
e8b0ad8186to76e3d9a16376e3d9a163to79f13c810d79f13c810dto06855937bd