From 10aa88e03c247ac116961893df9002aa96429624 Mon Sep 17 00:00:00 2001 From: Spark Date: Thu, 5 Nov 2026 05:53:05 +0000 Subject: [PATCH 1/3] =?UTF-8?q?ObsiGate=202.83.5=20:=20barre=20v0.4.1=20?= =?UTF-8?q?=E2=80=94=20correctif=20des=20ic=C3=B4nes=20invisibles=20du=20m?= =?UTF-8?q?enu=20compte,=20vendange=20verbatim=20(fusion=20#125)=20+=20gar?= =?UTF-8?q?de?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/draco-barre.js | 10 ++++++++-- tests/test_draco_barre.py | 13 +++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/frontend/draco-barre.js b/frontend/draco-barre.js index 582e088..7078871 100644 --- a/frontend/draco-barre.js +++ b/frontend/draco-barre.js @@ -529,11 +529,17 @@ ["line", { x1: "21", y1: "12", x2: "9", y2: "12" }] ] }; + /* Espace de noms SVG — OBLIGATOIRE : un élément « svg » (ou + * « path », « circle »…) créé par createElement() appartient à + * l'espace de noms HTML et le navigateur ne le dessine JAMAIS + * (bug v0.4.0 : libellés décalés d'un cran d'icône, aucun glyphe + * visible ; corrigé en v0.4.1, carte fusion #125). */ + var SVG_NS = "http://www.w3.org/2000/svg"; function menuIcone(nom) { var span = document.createElement("span"); span.className = "draco-menu-icone"; span.setAttribute("aria-hidden", "true"); - var svg = document.createElement("svg"); + var svg = document.createElementNS(SVG_NS, "svg"); svg.setAttribute("viewBox", "0 0 24 24"); svg.setAttribute("fill", "none"); svg.setAttribute("stroke", "currentColor"); @@ -542,7 +548,7 @@ svg.setAttribute("stroke-linejoin", "round"); svg.setAttribute("focusable", "false"); (MENU_ICONES[nom] || []).forEach(function (spec) { - var el = document.createElement(spec[0]); + var el = document.createElementNS(SVG_NS, spec[0]); for (var k in spec[1]) el.setAttribute(k, spec[1][k]); svg.appendChild(el); }); diff --git a/tests/test_draco_barre.py b/tests/test_draco_barre.py index 0b58aea..f55ccca 100644 --- a/tests/test_draco_barre.py +++ b/tests/test_draco_barre.py @@ -226,3 +226,16 @@ def test_barre_v040_icones_monoline_menu_compte(): bloc = css.split(".draco-menu-icone {", 1)[1].split("}", 1)[0] assert "width: 18px" in bloc assert "var(--ink-2)" in bloc + + +def test_barre_v041_correctif_icones_espace_de_noms_svg(): + # v0.4.1 (correctif fusion #125) : les icônes du menu compte + # sont créées via createElementNS (espace de noms SVG). En + # v0.4.0, createElement() les créait dans l'espace de noms + # HTML : jamais dessinées par le navigateur, libellés + # décalés d'un cran d'icône sans aucun glyphe. + js = (FRONTEND / "draco-barre.js").read_text(encoding="utf-8") + assert 'createElementNS(SVG_NS, "svg")' in js + assert "createElementNS(SVG_NS, spec[0])" in js + assert 'createElement("svg")' not in js + assert "createElement(spec[0])" not in js From 5eba3e255820bd2415e1304a63de214a11430f22 Mon Sep 17 00:00:00 2001 From: Spark Date: Thu, 5 Nov 2026 05:53:14 +0000 Subject: [PATCH 2/3] =?UTF-8?q?ObsiGate=202.83.5=20:=20version=20et=20chan?= =?UTF-8?q?gelog=20(barre=20v0.4.1,=20fusion=20#125)=20=E2=80=94=20VERSION?= =?UTF-8?q?=20+=20fichiers=20d=C3=A9riv=C3=A9s=20synchronis=C3=A9s=20par?= =?UTF-8?q?=20scripts/bump=5Fversion.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 8 +++++++- README.fr.md | 6 +++--- README.md | 6 +++--- VERSION | 2 +- desktop/Cargo.lock | 2 +- desktop/Cargo.toml | 2 +- desktop/tauri.conf.json | 2 +- docs/ROADMAP.md | 2 +- package.json | 2 +- 9 files changed, 19 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ca9df2..78ce50a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ Format basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/), et [Semantic Versioning](https://semver.org/spec/v2.0.0.html). > **En cours de développement** : les changements à venir sont listés dans la section -> [Unreleased](#unreleased). La dernière version livrée est **2.83.4**. +> [Unreleased](#unreleased). La dernière version livrée est **2.83.5**. --- @@ -14,6 +14,12 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html). --- +## [2.83.5] — 2026-11-05 + +- **Barre commune v0.4.1 — correctif des icônes invisibles du menu compte (fusion #125)** : seul `frontend/draco-barre.js` change, re-vendangé **verbatim** depuis dracodev-commons (branche `menu-compte-icones-svg-ns-v0-4-1`, PR commons #11) ; le CSS est inchangé. En v0.4.0, `menuIcone()` créait le `` des icônes et ses primitives via `document.createElement()` — espace de noms **HTML**, jamais dessinés par le navigateur : les libellés du menu compte étaient décalés d'un cran d'icône, sans aucun glyphe. La v0.4.1 crée tout via `document.createElementNS()` (espace de noms SVG). Glyphes, CSS et comportements inchangés. Garde ajoutée à `tests/test_draco_barre.py`. + +--- + ## [2.83.4] — 2026-11-05 - **Barre commune v0.4.0 — icônes monoline du menu compte (HUB-11, fusion #125)** : `frontend/draco-barre.js` et `frontend/draco-barre.css` re-vendangés **verbatim** depuis dracodev-commons v0.4.0 (branche `menu-compte-icones-v0-4-0`, PR commons #10). Les items du menu compte — **Télécharger**, **À Propos**, **Aides**, **Profil**, **Déconnexion** — reçoivent des **icônes SVG monoline** (contour, trait fin, `currentColor`, ~18 px) dans le style des icônes du rail de la console Spark ; aucun emoji. L'en-tête d'identité reste sans icône ; les liens Hub et le relais « Déconnexion » sont inchangés. Garde ajoutée à `tests/test_draco_barre.py`. diff --git a/README.fr.md b/README.fr.md index f228592..ad51a28 100644 --- a/README.fr.md +++ b/README.fr.md @@ -4,7 +4,7 @@ **Porte d'entrée web ultra-léger pour vos vaults Obsidian** — Accédez, naviguez et recherchez dans toutes vos notes Obsidian depuis n'importe quel appareil via une interface web moderne et responsive. -[![Version](https://img.shields.io/badge/Version-2.83.4-blue.svg)]() +[![Version](https://img.shields.io/badge/Version-2.83.5-blue.svg)]() [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](https://www.docker.com/) [![Python](https://img.shields.io/badge/Python-3.11+-green.svg)](https://www.python.org/) @@ -977,8 +977,8 @@ Ce projet est sous licence **MIT** — voir le fichier [LICENSE](LICENSE) pour l ## 📝 Changelog -Consultez le [CHANGELOG.md](./CHANGELOG.md) pour l'historique complet de toutes les versions (v1.0.0 → v2.83.4). +Consultez le [CHANGELOG.md](./CHANGELOG.md) pour l'historique complet de toutes les versions (v1.0.0 → v2.83.5). --- -*Projet : ObsiGate | Version : 2.83.4 | Dernière mise à jour : Septembre 2026* +*Projet : ObsiGate | Version : 2.83.5 | Dernière mise à jour : Septembre 2026* diff --git a/README.md b/README.md index 83d2c5d..6028880 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ **Ultra-light web gateway for your Obsidian vaults** — Access, browse, and search all your Obsidian notes from any device via a modern, responsive web interface. -[![Version](https://img.shields.io/badge/Version-2.83.4-blue.svg)]() +[![Version](https://img.shields.io/badge/Version-2.83.5-blue.svg)]() [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](https://www.docker.com/) [![Python](https://img.shields.io/badge/Python-3.11+-green.svg)](https://www.python.org/) @@ -1152,8 +1152,8 @@ This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) ## 📝 Changelog -See [CHANGELOG.md](./CHANGELOG.md) for the complete version history (v1.0.0 → v2.83.4). +See [CHANGELOG.md](./CHANGELOG.md) for the complete version history (v1.0.0 → v2.83.5). --- -*Project: ObsiGate | Version: 2.83.4 | Last updated: September 2026* +*Project: ObsiGate | Version: 2.83.5 | Last updated: September 2026* diff --git a/VERSION b/VERSION index d6c294c..a93a7b4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.83.4 +2.83.5 diff --git a/desktop/Cargo.lock b/desktop/Cargo.lock index 3ddf3ac..ee30381 100644 --- a/desktop/Cargo.lock +++ b/desktop/Cargo.lock @@ -2626,7 +2626,7 @@ dependencies = [ [[package]] name = "obsigate-desktop" -version = "2.83.4" +version = "2.83.5" dependencies = [ "chrono", "env_logger", diff --git a/desktop/Cargo.toml b/desktop/Cargo.toml index 6b490fc..932449f 100644 --- a/desktop/Cargo.toml +++ b/desktop/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "obsigate-desktop" -version = "2.83.4" +version = "2.83.5" description = "ObsiGate Desktop — Porte d'entrée native pour vos vaults Obsidian" authors = ["Bruno Charest"] edition = "2021" diff --git a/desktop/tauri.conf.json b/desktop/tauri.conf.json index 4957151..c0bdfce 100644 --- a/desktop/tauri.conf.json +++ b/desktop/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/nicedoc/obsigate/main/desktop/tauri.conf.schema.json", "productName": "ObsiGate", - "version": "2.83.4", + "version": "2.83.5", "identifier": "com.obsigate.desktop", "build": { "frontendDist": "../frontend", diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 9b5ed44..a968090 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -1,6 +1,6 @@ # ObsiGate — Roadmap -> **Version :** 2.83.4 | **Dernière mise à jour :** 2026-11-05 +> **Version :** 2.83.5 | **Dernière mise à jour :** 2026-11-05 > **Ce fichier ne contient que le travail à venir** (🔵 En cours + ⚪ Backlog) et un index compact > vers les fonctionnalités livrées. > - **Méthode de livraison à appliquer pour toute tâche : [DELIVERY_WORKFLOW.md](./DELIVERY_WORKFLOW.md)** diff --git a/package.json b/package.json index d919f71..731e8da 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsigate", - "version": "2.83.4", + "version": "2.83.5", "description": "**Porte d'entrée web ultra-léger pour vos vaults Obsidian** — Accédez, naviguez et recherchez dans toutes vos notes Obsidian depuis n'importe quel appareil via une interface web moderne et responsive.", "main": "patch.js", "directories": { From b83de534470a5e46f4359617b2635db58c36d61b Mon Sep 17 00:00:00 2001 From: Spark Date: Thu, 5 Nov 2026 07:08:02 +0000 Subject: [PATCH 3/3] =?UTF-8?q?ObsiGate=202.83.5=20:=20barre=20v0.4.1=20?= =?UTF-8?q?=E2=80=94=20menu=20compte=20resserr=C3=A9=20=C3=A0=20232=20px,?= =?UTF-8?q?=20re-vendange=20verbatim=20(fusion=20#125)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/draco-barre.css | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frontend/draco-barre.css b/frontend/draco-barre.css index ba8aa62..55ab916 100644 --- a/frontend/draco-barre.css +++ b/frontend/draco-barre.css @@ -29,6 +29,9 @@ replacées à gauche du libellé par order: -1 (l'item est en flex), couleur atténuée --ink-2, pleine --ink au survol/focus. Jetons repris du prototype validé Console v7.2. + v0.4.1 (fusion #125) : menu compte resserré — min-width + 248 → 232 px, le panneau épouse le contenu (demande de Bruno : + le menu était trop large une fois les icônes visibles). Thème : clair par défaut, sombre via [data-theme="dark"] sur ou prefers-color-scheme si l'app intégratrice ne force rien (aucun attribut data-theme sur ). */ @@ -86,7 +89,7 @@ * droite ; ses items réutilisent .draco-apps-item. */ .draco-compte-menu { position: absolute; top: calc(100% + 6px); right: 10px; z-index: 400; - min-width: 248px; padding: 6px; + min-width: 232px; padding: 6px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 16px 44px rgb(0 0 0 / .28); }