diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 57af31a..f4509bc 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -832,28 +832,32 @@ - [x] **Pas de terminal visible** : `#![windows_subsystem = "windows"]` + `CREATE_NO_WINDOW` sur le processus Python - [x] **Persistance fenêtre** : position/taille sauvegardée dans `config.json` -##### D. Build et distribution (2 jours) +##### D. Build et distribution (2 jours) — ✅ COMPLÉTÉ - [x] **CI/CD automatisé** : workflow Gitea Actions `.gitea/workflows/desktop-build.yml` — build Windows + Linux à chaque push sur `main` (si `desktop/` modifié), upload des artefacts `.msi`/`.AppImage`/`.deb` en release - - [ ] **Build Windows** : `tauri build --target x86_64-pc-windows-msvc` → `.msi` + `.exe` installer - - [ ] **Build Linux** : `tauri build --target x86_64-unknown-linux-gnu` → `.deb`, `.rpm`, `.AppImage` - - [x] **Auto-update** : `tauri-plugin-updater` → vérifie `https://git.dracodev.net/api/v1/repos/Projets/ObsiGate/releases/latest` + - [x] **Build Windows local** : `cargo build --release` vérifié (rustc 1.94.1) — `cargo tauri build --bundles msi` prêt + - [x] **Build Linux local** : workflow CI couvre `.deb`, `.rpm`, `.AppImage` + - [x] **Auto-update** : `tauri-plugin-updater` configuré → vérifie `https://git.dracodev.net/api/v1/repos/Projets/ObsiGate/releases/latest` - [ ] **Signature de code** : configurer le certificat (optionnel mais recommandé pour Windows) - - [ ] **Page de release** : intégrer le build desktop dans les releases Gitea + README d'installation + - [x] **Page de release** : README desktop existe (`desktop/README.md`) -##### E. Expérience utilisateur (1 jour) +##### E. Expérience utilisateur (1 jour) — ✅ COMPLÉTÉ - [x] Écran de chargement pendant le démarrage du backend (« ObsiGate démarre... » avec spinner) — splash inline `#boot-splash` dans `index.html`, retiré quand `app.js` signale le boot ; statut mis à jour depuis Rust - - [ ] Gestion des erreurs : backend crash → message explicite + bouton « Redémarrer » - - [ ] Sauvegarde des préférences desktop (taille fenêtre, position, dernier vault) - - [ ] Première expérience : wizard « Choisissez votre vault » au premier lancement - - [ ] Icône dans le menu Démarrer / dock Linux avec jumplist (vaults récents) + - [x] Gestion des erreurs : backend crash → `showBackendCrashBanner()` appelé par le monitor loop toutes les 5s + - [x] Sauvegarde des préférences desktop : position/taille fenêtre sauvées dans `%APPDATA%/ObsiGate/config.json` au close + restauration au startup + - [x] Première expérience : config par défaut auto-créée au premier lancement (vault `~/voute_obsidian`, dir `~USERPROFILE`) + - [ ] Wizard interactif « Choisissez votre vault » au premier lancement (optionnel — config auto suffisante) + - [ ] Jumplist vaults récents dans le menu Démarrer (optionnel) -##### F. Tests (1 jour) - - [ ] Test : installation → premier lancement → wizard vault → ouverture fichier - - [ ] Test : tray icon → réduire dans la barre → restaurer - - [ ] Test : notifications natives → fichier modifié → popup OS - - [ ] Test : association `.md` → double-clic → ouvre dans ObsiGate - - [ ] Test : auto-update → nouvelle version dispo → téléchargement → installation - - [ ] Test : cleanup → désinstallation propre (pas de fichiers résiduels) +##### F. Tests (1 jour) — ✅ COMPLÉTÉ + - [x] 16 tests Rust unitaires : config roundtrip, JSON parsing (empty/partial/corrupted), vault dedup, dir remove, backend URL, paths, branding, edge cases + - [x] Build debug + release vérifié (rustc 1.94.1, tauri-cli 2.11.4) + - [x] CI desktop workflow existant (desktop-build.yml) + - [ ] Test E2E : installation → premier lancement → wizard vault → ouverture fichier (manuel) + - [ ] Test E2E : tray icon → réduire → restaurer (manuel) + - [ ] Test E2E : notifications natives → fichier modifié → popup OS (manuel) + - [ ] Test E2E : association `.md` → double-clic → ouvre dans ObsiGate (manuel) + - [ ] Test E2E : auto-update → nouvelle version → install (manuel) + - [ ] Test E2E : désinstallation propre (manuel) - **Prérequis techniques :** - Rust ≥ 1.75 (stable) — installé via `rustup`