Source : Projets/dracodev-commons PR #1, branche barre-apps-derivation-dev-v0.1.6 (barre v0.1.6). JS/CSS repris verbatim depuis cette branche, relus sur place — pas de recopie de mémoire. Agent-commun n'utilise pas la barre : non touché. Rien mergé, rien publié, aucune issue fermée, VERSION non bumpée dans cette PR.
Note dépôt : le dépôt n'est PAS Projets/flowdeck (404 vérifié) mais bien bruno/flowdeck (vérifié par API avant toute écriture) — cette PR est donc ouverte sur bruno/flowdeck.
Vérifié sur place : l'hôte ne gérait PAS réellement menu — la branche existante n'était qu'un toast placeholder « Menu commun : arrive avec la fédération ». Choix : le placeholder est remplacé par if (act === "menu") { return false; } (commenté), qui demande explicitement le menu par défaut v0.1.6 (Console agent + 4 applications, URL résolues donc dérivées -dev sur un hôte -dev). Supprimer simplement la branche n'aurait pas suffi : avec un onAction existant, le nouveau JS laisse la main à l'hôte sauf retour false. Toutes les autres branches onAction (rail → hamburger natif, alertes → cloche native, palette, spark, rappel-entête) sont inchangées.
Choix avatar
<span> → vrai <button data-act="compte" aria-haspopup="menu" aria-expanded="false">, en préservant le title (full_name) et l'initiale serveur (1re lettre de full_name, repli F). Le nouveau JS dérive l'initiale du title — identique à l'initiale serveur déjà rendue. Le menu compte affiche l'identité ; Profil/Déconnexion sont relayés mais non gérés par l'hôte (même limite que dans le contrat commons, pas de gestionnaire inventé ici).
Nonce CSP : le <script nonce="{{ csp_nonce() }}" du fragment est inchangé (la modification est à l'intérieur de ce script) ; l'inclusion du JS vendangé dans base.html n'est pas touchée.
node --check OK sur le JS vendangé ; logique de dérivation présente (resolveUrls, isDevHost, og-dev/agent-dev).
Test commons re-exécuté sur les fichiers exacts de la branche #1 : 21 passés, 0 échoué ; 75 assertions, 0 en échec.
Aucun DRACO_BAR_CONFIG.urls ajouté : la config explicite reste prioritaire partout (ordre : explicite > hôte -dev dérivé > href rendu > défaut prod) ; aucun secret dans le code.
Aucune capture, aucun test déployé : la vérification en direct des liens sur les hôtes -dev reste à faire après merge/release, comme le prescrit fusion-trois-apps #60.
# barre-apps v0.1.6 — Flowdeck
Source : Projets/dracodev-commons PR #1, branche barre-apps-derivation-dev-v0.1.6 (barre v0.1.6). JS/CSS repris verbatim depuis cette branche, relus sur place — pas de recopie de mémoire. Agent-commun n'utilise pas la barre : non touché. Rien mergé, rien publié, aucune issue fermée, VERSION non bumpée dans cette PR.
Note dépôt : le dépôt n'est PAS `Projets/flowdeck` (404 vérifié) mais bien `bruno/flowdeck` (vérifié par API avant toute écriture) — cette PR est donc ouverte sur `bruno/flowdeck`.
## Fichiers changés
- `app/templates/_draco_bar.html` — en-tête vendangé v0.1.4 → v0.1.6 ; bouton ••• : `aria-expanded` ajouté ; avatar ; branche `menu` remplacée (voir ci-dessous).
- `static/js/vendor/draco-barre.js` — copie verbatim de `ui/barre-apps/barre-apps.js` (branche commons #1).
- `static/css/draco-barre.css` — copie verbatim de `ui/barre-apps/barre-apps.css` (styles menus •••/compte + avatar bouton).
## Choix menu •••
Vérifié sur place : l'hôte ne gérait PAS réellement `menu` — la branche existante n'était qu'un toast placeholder « Menu commun : arrive avec la fédération ». Choix : le placeholder est remplacé par `if (act === "menu") { return false; }` (commenté), qui demande explicitement le menu par défaut v0.1.6 (Console agent + 4 applications, URL résolues donc dérivées `-dev` sur un hôte `-dev`). Supprimer simplement la branche n'aurait pas suffi : avec un `onAction` existant, le nouveau JS laisse la main à l'hôte sauf retour `false`. Toutes les autres branches `onAction` (rail → hamburger natif, alertes → cloche native, palette, spark, rappel-entête) sont inchangées.
## Choix avatar
`<span>` → vrai `<button data-act="compte" aria-haspopup="menu" aria-expanded="false">`, en préservant le `title` (`full_name`) et l'initiale serveur (1re lettre de `full_name`, repli `F`). Le nouveau JS dérive l'initiale du `title` — identique à l'initiale serveur déjà rendue. Le menu compte affiche l'identité ; Profil/Déconnexion sont relayés mais non gérés par l'hôte (même limite que dans le contrat commons, pas de gestionnaire inventé ici).
## Ce qui n'a PAS été changé
- Onglets, href rendus (`draco_urls()`), compteurs, domaine, rail, palette, alertes, Spark : inchangés.
- Nonce CSP : le `<script nonce="{{ csp_nonce() }}"` du fragment est inchangé (la modification est à l'intérieur de ce script) ; l'inclusion du JS vendangé dans `base.html` n'est pas touchée.
- Aucun `DRACO_BAR_CONFIG.urls` ajouté.
## Vérifications (chiffres réels)
- JS vendangé : 491 lignes (ancien : 128), CSS : 193 lignes (ancien : 166) ; diff JS/CSS vs commons v0.1.6 = vide.
- `node --check` OK sur le JS vendangé ; logique de dérivation présente (`resolveUrls`, `isDevHost`, `og-dev`/`agent-dev`).
- Test commons re-exécuté sur les fichiers exacts de la branche #1 : 21 passés, 0 échoué ; 75 assertions, 0 en échec.
- Aucun `DRACO_BAR_CONFIG.urls` ajouté : la config explicite reste prioritaire partout (ordre : explicite > hôte -dev dérivé > href rendu > défaut prod) ; aucun secret dans le code.
- Aucune capture, aucun test déployé : la vérification en direct des liens sur les hôtes -dev reste à faire après merge/release, comme le prescrit fusion-trois-apps #60.
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.
barre-apps v0.1.6 — Flowdeck
Source : Projets/dracodev-commons PR #1, branche barre-apps-derivation-dev-v0.1.6 (barre v0.1.6). JS/CSS repris verbatim depuis cette branche, relus sur place — pas de recopie de mémoire. Agent-commun n'utilise pas la barre : non touché. Rien mergé, rien publié, aucune issue fermée, VERSION non bumpée dans cette PR.
Note dépôt : le dépôt n'est PAS
Projets/flowdeck(404 vérifié) mais bienbruno/flowdeck(vérifié par API avant toute écriture) — cette PR est donc ouverte surbruno/flowdeck.Fichiers changés
app/templates/_draco_bar.html— en-tête vendangé v0.1.4 → v0.1.6 ; bouton ••• :aria-expandedajouté ; avatar ; branchemenuremplacée (voir ci-dessous).static/js/vendor/draco-barre.js— copie verbatim deui/barre-apps/barre-apps.js(branche commons #1).static/css/draco-barre.css— copie verbatim deui/barre-apps/barre-apps.css(styles menus •••/compte + avatar bouton).Choix menu •••
Vérifié sur place : l'hôte ne gérait PAS réellement
menu— la branche existante n'était qu'un toast placeholder « Menu commun : arrive avec la fédération ». Choix : le placeholder est remplacé parif (act === "menu") { return false; }(commenté), qui demande explicitement le menu par défaut v0.1.6 (Console agent + 4 applications, URL résolues donc dérivées-devsur un hôte-dev). Supprimer simplement la branche n'aurait pas suffi : avec unonActionexistant, le nouveau JS laisse la main à l'hôte sauf retourfalse. Toutes les autres branchesonAction(rail → hamburger natif, alertes → cloche native, palette, spark, rappel-entête) sont inchangées.Choix avatar
<span>→ vrai<button data-act="compte" aria-haspopup="menu" aria-expanded="false">, en préservant letitle(full_name) et l'initiale serveur (1re lettre defull_name, repliF). Le nouveau JS dérive l'initiale dutitle— identique à l'initiale serveur déjà rendue. Le menu compte affiche l'identité ; Profil/Déconnexion sont relayés mais non gérés par l'hôte (même limite que dans le contrat commons, pas de gestionnaire inventé ici).Ce qui n'a PAS été changé
draco_urls()), compteurs, domaine, rail, palette, alertes, Spark : inchangés.<script nonce="{{ csp_nonce() }}"du fragment est inchangé (la modification est à l'intérieur de ce script) ; l'inclusion du JS vendangé dansbase.htmln'est pas touchée.DRACO_BAR_CONFIG.urlsajouté.Vérifications (chiffres réels)
node --checkOK sur le JS vendangé ; logique de dérivation présente (resolveUrls,isDevHost,og-dev/agent-dev).DRACO_BAR_CONFIG.urlsajouté : la config explicite reste prioritaire partout (ordre : explicite > hôte -dev dérivé > href rendu > défaut prod) ; aucun secret dans le code.