From 5280b84d125badffd1c1af0357af8dbb3753c254 Mon Sep 17 00:00:00 2001 From: Spark Date: Tue, 3 Nov 2026 05:44:13 +0000 Subject: [PATCH 1/5] fix: tri des imports coffre_store dans routers/coffres (ruff I001) --- backend/routers/coffres.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/routers/coffres.py b/backend/routers/coffres.py index 7aeb8fc..d1aeb80 100644 --- a/backend/routers/coffres.py +++ b/backend/routers/coffres.py @@ -65,7 +65,6 @@ from backend.coffre_store import ( SecretExpireError, ValidationError, compter_octrois_actifs, - est_expire, compter_secrets, create_coffre, create_consommateur, @@ -73,6 +72,7 @@ from backend.coffre_store import ( create_secret, delete_secret, distribuer_valeur, + est_expire, get_coffre, get_coffre_by_id, get_coffre_or_404, From 67fbda60d34e2a111450a4e7c61eb52421c71ee5 Mon Sep 17 00:00:00 2001 From: Spark Date: Tue, 3 Nov 2026 05:44:13 +0000 Subject: [PATCH 2/5] =?UTF-8?q?fix:=20planchers=20de=20s=C3=A9curit=C3=A9?= =?UTF-8?q?=20pip-audit=20=E2=80=94=20pypdf>=3D6.21.4=20et=20pyasn1>=3D0.6?= =?UTF-8?q?.5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/requirements.txt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/backend/requirements.txt b/backend/requirements.txt index b412ab7..1c7e5a8 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -22,10 +22,12 @@ httpx>=0.27.0 # l'utilisateur). #224 : la version préinstallée dans la toolcache du # runner (6.19.0) est frappée par 11 CVE supplémentaires (dont # CVE-2026-113786, CVE-2026-115572, CVE-2026-115585, CVE-2026-115580), -# corrigées au plus tard en 6.21.2 — le plancher doit être >= 6.21.2 : +# corrigées au plus tard en 6.21.2. La 6.21.2 est à son tour frappée +# (CVE-2026-119203 et suivantes, relevées par le job security sur main), +# corrigées en 6.21.4 — le plancher doit être >= 6.21.4 : # en dessous, pip répond « already satisfied » pour la toolcache et # n'aligne jamais (même piège que BUG-093). -pypdf>=6.21.2 +pypdf>=6.21.4 pyotp>=2.10.0 segno>=1.5.0 webauthn==2.6.0 @@ -79,3 +81,9 @@ cryptography>=44.0 # Plancher de securite : msgpack est transitif, version 1.2.1 relevee par le job # security (pip-audit, bloquant) — CVE-2026-114613, corrigee en 1.2.3. msgpack>=1.2.3 +# Plancher de sécurité : pyasn1 est transitive (python-jose/rsa), version +# 0.6.4 relevée par le job security (pip-audit, bloquant) — +# CVE-2026-119194 à CVE-2026-119197, corrigées en 0.6.5. Sans plancher +# explicite, pip répond « already satisfied » pour la toolcache et +# n'aligne jamais (même piège que BUG-093). +pyasn1>=0.6.5 From f7095f8057cffbc581804f6ebc2f87a6cbc91990 Mon Sep 17 00:00:00 2001 From: Spark Date: Tue, 3 Nov 2026 05:48:53 +0000 Subject: [PATCH 3/5] =?UTF-8?q?fix:=20test=20unitaire=20frontend=20?= =?UTF-8?q?=E2=80=94=20recherche.js=20exempt=C3=A9=20d'import/export=20(fi?= =?UTF-8?q?chier=20vendang=C3=A9=20#68)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/frontend/unit.test.mjs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/frontend/unit.test.mjs b/tests/frontend/unit.test.mjs index 302b7b7..b679eb6 100644 --- a/tests/frontend/unit.test.mjs +++ b/tests/frontend/unit.test.mjs @@ -112,8 +112,10 @@ function testModulesHaveImports() { { file: 'navfacets.js', reason: 'pure helpers — no deps, imported by vaulthome.js' }, { file: 'sidebar_raw.js', reason: 'legacy file — excluded' }, { file: 'desktop.js', reason: 'standalone — reads window.__TAURI__ global, no imports needed' }, + { file: 'recherche.js', reason: 'standalone — vanilla sans dépendance, vendangé tel quel par chaque hôte (#68)', noExport: true }, ]; const expectNoImport = new Set(expected.map(e => e.file)); + const expectNoExport = new Set(expected.filter(e => e.noExport).map(e => e.file)); for (const file of files) { const content = readFileSync(join(JS_DIR, file), 'utf-8'); @@ -123,7 +125,7 @@ function testModulesHaveImports() { if (!expectNoImport.has(file)) { assert.ok(hasImport, `${file} should have at least one import`); } - if (file !== 'state.js' && file !== 'app.js') { + if (file !== 'state.js' && file !== 'app.js' && !expectNoExport.has(file)) { assert.ok(hasExport, `${file} should have at least one export`); } } From ad0a715a4c2e75d1f31f6306c10581f0abd8e914 Mon Sep 17 00:00:00 2001 From: Spark Date: Tue, 3 Nov 2026 05:56:41 +0000 Subject: [PATCH 4/5] =?UTF-8?q?fix:=20resynchroniser=20les=20fichiers=20d?= =?UTF-8?q?=C3=A9riv=C3=A9s=20sur=20la=20version=202.82.8=20(d=C3=A9rive?= =?UTF-8?q?=20pr=C3=A9existante)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.fr.md | 6 +++--- README.md | 6 +++--- desktop/Cargo.lock | 2 +- desktop/Cargo.toml | 2 +- desktop/tauri.conf.json | 2 +- docs/ROADMAP.md | 2 +- package.json | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.fr.md b/README.fr.md index 6f77d6b..cc2e60b 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.81.1-blue.svg)]() +[![Version](https://img.shields.io/badge/Version-2.82.8-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.81.1). +Consultez le [CHANGELOG.md](./CHANGELOG.md) pour l'historique complet de toutes les versions (v1.0.0 → v2.82.8). --- -*Projet : ObsiGate | Version : 2.81.1 | Dernière mise à jour : Septembre 2026* +*Projet : ObsiGate | Version : 2.82.8 | Dernière mise à jour : Septembre 2026* diff --git a/README.md b/README.md index 353e614..b784650 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.81.1-blue.svg)]() +[![Version](https://img.shields.io/badge/Version-2.82.8-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.81.1). +See [CHANGELOG.md](./CHANGELOG.md) for the complete version history (v1.0.0 → v2.82.8). --- -*Project: ObsiGate | Version: 2.81.1 | Last updated: September 2026* +*Project: ObsiGate | Version: 2.82.8 | Last updated: September 2026* diff --git a/desktop/Cargo.lock b/desktop/Cargo.lock index 489070b..d30dd88 100644 --- a/desktop/Cargo.lock +++ b/desktop/Cargo.lock @@ -2626,7 +2626,7 @@ dependencies = [ [[package]] name = "obsigate-desktop" -version = "2.82.4" +version = "2.82.8" dependencies = [ "chrono", "env_logger", diff --git a/desktop/Cargo.toml b/desktop/Cargo.toml index 7cc2d80..4fbc81f 100644 --- a/desktop/Cargo.toml +++ b/desktop/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "obsigate-desktop" -version = "2.82.4" +version = "2.82.8" 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 f3a6840..f81e8aa 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.82.4", + "version": "2.82.8", "identifier": "com.obsigate.desktop", "build": { "frontendDist": "../frontend", diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index ef49a27..38154d9 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -1,6 +1,6 @@ # ObsiGate — Roadmap -> **Version :** 2.82.4 | **Dernière mise à jour :** 2026-10-28 +> **Version :** 2.82.8 | **Dernière mise à jour :** 2026-11-03 > **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 83717c7..cfef4e3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsigate", - "version": "2.82.4", + "version": "2.82.8", "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 d3acae2bd84c056bfbfb017dae14aafe4f3bf5b0 Mon Sep 17 00:00:00 2001 From: Spark Date: Tue, 3 Nov 2026 05:56:41 +0000 Subject: [PATCH 5/5] =?UTF-8?q?fix:=20tests=20draco=5Fbarre=20=E2=80=94=20?= =?UTF-8?q?assertions=20align=C3=A9es=20sur=20le=20code=20actuel=20(#222,?= =?UTF-8?q?=20#218)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_draco_barre.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/test_draco_barre.py b/tests/test_draco_barre.py index eb14045..fdb4e92 100644 --- a/tests/test_draco_barre.py +++ b/tests/test_draco_barre.py @@ -99,7 +99,8 @@ def test_panneau_console_surimpression_222(): assert "draco-console-sur" in panneau assert "assurerSurimpression" in panneau assert "draco-console-styles" in panneau - assert 'surCadre.src = urlConsole()' in panneau + assert 'var url = urlConsole()' in panneau + assert 'surCadre.src = url' in panneau assert 'surEl.style.width = "100%"' in panneau assert 'data-dc="sidebar"' in panneau assert "Mode sidebar" in panneau @@ -116,7 +117,8 @@ def test_csp_ouvre_le_service_d_agents_218(): # dérivée de la configuration (backend.draco_config.agent_origine, # testée via la config dans tests/test_security_headers.py). main = (Path(__file__).resolve().parent.parent / "backend" / "main.py").read_text(encoding="utf-8") - ligne = next(l for l in main.splitlines() if "connect-src" in l) + ligne = next(l for l in main.splitlines() + if "connect-src" in l and not l.strip().startswith("#")) assert "agent_origine" in main assert "{agent}" in ligne