test(ai): rendre le test du menu mention non flaky (nettoyage d'etat + attente du fetch)
CI / lint (push) Successful in 1m29s
CI / security (push) Successful in 1m3s
CI / test (push) Successful in 2m55s
CI / build (push) Successful in 55s
CI / e2e (push) Successful in 10m44s

This commit is contained in:
2026-09-16 19:30:15 -04:00
parent f50a9f5bf3
commit 8f26a418a9
10 changed files with 35 additions and 15 deletions
+5 -1
View File
@@ -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). 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 > **En cours de développement** : les changements à venir sont listés dans la section
> [Unreleased](#unreleased). La dernière version livrée est **2.5.1**. > [Unreleased](#unreleased). La dernière version livrée est **2.5.2**.
--- ---
@@ -14,6 +14,10 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
--- ---
## [2.5.2] — 2026-09-16
---
## [2.5.1] — 2026-09-16 ## [2.5.1] — 2026-09-16
--- ---
+3 -3
View File
@@ -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. **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.5.1-blue.svg)]() [![Version](https://img.shields.io/badge/Version-2.5.2-blue.svg)]()
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![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/) [![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/) [![Python](https://img.shields.io/badge/Python-3.11+-green.svg)](https://www.python.org/)
@@ -916,8 +916,8 @@ Ce projet est sous licence **MIT** — voir le fichier [LICENSE](LICENSE) pour l
## 📝 Changelog ## 📝 Changelog
Consultez le [CHANGELOG.md](./CHANGELOG.md) pour l'historique complet de toutes les versions (v1.0.0 → v2.5.1). Consultez le [CHANGELOG.md](./CHANGELOG.md) pour l'historique complet de toutes les versions (v1.0.0 → v2.5.2).
--- ---
*Projet : ObsiGate | Version : 2.5.1 | Dernière mise à jour : Juin 2026* *Projet : ObsiGate | Version : 2.5.2 | Dernière mise à jour : Juin 2026*
+3 -3
View File
@@ -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. **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.5.1-blue.svg)]() [![Version](https://img.shields.io/badge/Version-2.5.2-blue.svg)]()
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![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/) [![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/) [![Python](https://img.shields.io/badge/Python-3.11+-green.svg)](https://www.python.org/)
@@ -1085,8 +1085,8 @@ This project is licensed under the **MIT License** - see the [LICENSE](LICENSE)
## 📝 Changelog ## 📝 Changelog
See [CHANGELOG.md](./CHANGELOG.md) for the complete version history (v1.0.0 → v2.5.1). See [CHANGELOG.md](./CHANGELOG.md) for the complete version history (v1.0.0 → v2.5.2).
--- ---
*Project: ObsiGate | Version: 2.5.1 | Last updated: May 2026* *Project: ObsiGate | Version: 2.5.2 | Last updated: May 2026*
+1 -1
View File
@@ -1 +1 @@
2.5.1 2.5.2
+1 -1
View File
@@ -2626,7 +2626,7 @@ dependencies = [
[[package]] [[package]]
name = "obsigate-desktop" name = "obsigate-desktop"
version = "2.5.1" version = "2.5.2"
dependencies = [ dependencies = [
"chrono", "chrono",
"env_logger", "env_logger",
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "obsigate-desktop" name = "obsigate-desktop"
version = "2.5.1" version = "2.5.2"
description = "ObsiGate Desktop — Porte d'entrée native pour vos vaults Obsidian" description = "ObsiGate Desktop — Porte d'entrée native pour vos vaults Obsidian"
authors = ["Bruno Charest"] authors = ["Bruno Charest"]
edition = "2021" edition = "2021"
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"$schema": "https://raw.githubusercontent.com/nicedoc/obsigate/main/desktop/tauri.conf.schema.json", "$schema": "https://raw.githubusercontent.com/nicedoc/obsigate/main/desktop/tauri.conf.schema.json",
"productName": "ObsiGate", "productName": "ObsiGate",
"version": "2.5.1", "version": "2.5.2",
"identifier": "com.obsigate.desktop", "identifier": "com.obsigate.desktop",
"build": { "build": {
"frontendDist": "../frontend", "frontendDist": "../frontend",
+1 -1
View File
@@ -1,6 +1,6 @@
# ObsiGate — Roadmap # ObsiGate — Roadmap
> **Version :** 2.5.1 | **Dernière mise à jour :** 2026-09-16 > **Version :** 2.5.2 | **Dernière mise à jour :** 2026-09-16
> **Ce fichier ne contient que le travail à venir** (🔵 En cours + ⚪ Backlog) et un index compact > **Ce fichier ne contient que le travail à venir** (🔵 En cours + ⚪ Backlog) et un index compact
> vers les fonctionnalités livrées. > vers les fonctionnalités livrées.
> - **Méthode de livraison à appliquer pour toute tâche : [DELIVERY_WORKFLOW.md](./DELIVERY_WORKFLOW.md)** > - **Méthode de livraison à appliquer pour toute tâche : [DELIVERY_WORKFLOW.md](./DELIVERY_WORKFLOW.md)**
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "obsigate", "name": "obsigate",
"version": "2.5.1", "version": "2.5.2",
"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.", "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", "main": "patch.js",
"directories": { "directories": {
+18 -2
View File
@@ -1363,6 +1363,14 @@ async function main() {
// ── 39. Accented `@` mentions + all-vault fallback (BUG-008) ── // ── 39. Accented `@` mentions + all-vault fallback (BUG-008) ──
await test("mention menu accepts accents and searches all vaults without a vault", async () => { await test("mention menu accepts accents and searches all vaults without a vault", async () => {
localStorage.clear(); localStorage.clear();
document.body.replaceChildren();
const stateMod = await import(pathToFileURL(path.join(JS_DIR, "state.js")).href);
const prevVaults = stateMod.state.allVaults;
const prevSelected = stateMod.state.selectedContextVault;
const prevCurrent = stateMod.state.currentVault;
stateMod.state.allVaults = [];
stateMod.state.selectedContextVault = null;
stateMod.state.currentVault = null;
let lastUrl = ""; let lastUrl = "";
globalThis.fetch = async (url) => { globalThis.fetch = async (url) => {
lastUrl = String(url); lastUrl = String(url);
@@ -1382,13 +1390,21 @@ async function main() {
ta.value = "@café"; ta.value = "@café";
ta.selectionStart = ta.selectionEnd = 5; ta.selectionStart = ta.selectionEnd = 5;
b._onComposerInput(); b._onComposerInput();
await sleep(20);
const menu = b._panel.querySelector(".bookslm-mention-menu"); const menu = b._panel.querySelector(".bookslm-mention-menu");
let waited = 0;
while (!lastUrl.includes("tree-search") && waited < 500) {
await sleep(20);
waited += 20;
}
assert.ok(!menu.classList.contains("hidden"), "accented mention keeps the menu open"); assert.ok(!menu.classList.contains("hidden"), "accented mention keeps the menu open");
assert.ok(lastUrl.includes("vault=all"), "no vault -> searches all vaults"); assert.ok(lastUrl.includes("vault=all"),
`no vault -> searches all vaults (got last fetch "${lastUrl}")`);
assert.equal(menu.querySelectorAll(".bookslm-menu-item").length, 1); assert.equal(menu.querySelectorAll(".bookslm-menu-item").length, 1);
b._panel.remove(); b._panel.remove();
localStorage.clear(); localStorage.clear();
stateMod.state.allVaults = prevVaults;
stateMod.state.selectedContextVault = prevSelected;
stateMod.state.currentVault = prevCurrent;
}); });
// ── 40. Keyboard navigation in the command menu (BUG-007) ── // ── 40. Keyboard navigation in the command menu (BUG-007) ──