chore: mise à jour ROADMAP, CHANGELOG et version v0.2.0

- ROADMAP: phases 3 et 6 marquées complétées avec tests et statuts
- CHANGELOG: v0.2.0 documentée (phases 3/6, fix thumbnails, navigation, tests)
- Cargo.toml: version bump 0.1.0 → 0.2.0
This commit is contained in:
2026-06-25 10:47:53 -04:00
parent 898117cad8
commit 8e4743b6da
4 changed files with 90 additions and 123 deletions
+24 -17
View File
@@ -32,36 +32,42 @@ Les phases sont ordonnées par priorité et dépendances.
---
## 🟡 Phase 3 — Clipboard Watcher (Windows)
## 🟢 Phase 3 — Clipboard Watcher (Windows) ✅ *Complété*
**Objectif** : Capture automatique des screenshots depuis le presse-papier Windows.
| Fichier | Action | Détail |
|---------|--------|--------|
| `src/clipboard.rs` | Implémenter | Remplacer les `todo!()` par arboard |
| | `has_image()` | Détecter si le clipboard contient une image |
| | `get_image_bytes()` | Extraire l'image en `Vec<u8>` (PNG/BMP) |
| `src/clipboard.rs` | ✅ Implémenté | Capture d'image via arboard (BGRA→PNG) |
| | ✅ `has_image()` | Détecte si le clipboard contient une image |
| | ✅ `get_image_bytes()` | Extrait l'image en `Vec<u8>` (PNG) |
| | ✅ SHA-256 | Hachage pour dédoublonnage |
| | ⚠️ À tester | Test Windows réel (compilation OK, logique validée) |
**Notes techniques** :
- Utiliser `arboard::Clipboard::new()` → `get_image()`
- Convertir `ImageData` en bytes PNG via le crate `image`
- Gérer le cas où le clipboard est vide ou contient du texte
- ✅ Utiliser `arboard::Clipboard::new()` → `get_image()`
- ✅ Convertir `ImageData` en bytes PNG via le crate `image`
- ✅ Gérer le cas où le clipboard est vide ou contient du texte
- ⚠️ Testé uniquement sous Linux (headless) — validation Windows à faire
**Dépendances estimées** : crate `image` (si pas déjà présent)
---
## 🟡 Phase 6 — Boucle principale du Watcher
## 🟢 Phase 6 — Boucle principale du Watcher ✅ *Complété*
**Objectif** : Assembler clipboard + dédoublonnage + upload dans une boucle de polling.
| Fichier | Action | Détail |
|---------|--------|--------|
| `src/watcher.rs` | Implémenter | Remplacer le stub `loop` commenté |
| | Polling | Intervalle configurable (`watcher.poll_interval_ms`) |
| | Pipeline | Détection → hash → dédoublonnage → upload → notification WS |
| | Windows | Appeler `clipboard::has_image()` + `clipboard::get_image_bytes()` + `window_info::get_active_window_title()` |
| | Linux | Fallback : détection via `notify` sur `~/Pictures/Screenshots/` |
| `src/watcher.rs` | ✅ Implémenté | Boucle polling unifiée (clipboard + dossier) |
| | ✅ Polling | Intervalle configurable (`watcher.poll_interval_ms`) |
| | ✅ Pipeline | Détection → hash → dédoublonnage → upload → nettoyage |
| | ✅ Windows | Appeler `clipboard::has_image()` + `clipboard::get_image_bytes()` |
| | ✅ Linux | Polling dossier configurable (`watch_dir`) |
| | ✅ SQLite | Dédoublonnage persistant |
| | ✅ Testé Linux | Upload réussi vers Imago (ID=13) |
| | ⚠️ Test Windows | Validation clipboard réel à faire |
**Pipeline détaillé** :
```
@@ -214,8 +220,8 @@ Ces tâches dépendent du backend Imago, pas d'imagod-web directement :
|-------|--------|----------|---------------|
| 1–2 Fondations | ✅ Complété | — | — |
| 7–9 Dashboard | ✅ Complété | — | — |
| 3 Clipboard | 🟡 À faire | Haute | 2–3h |
| 6 Watcher | 🟡 À faire | Haute | 2–4h |
| 3 Clipboard | 🟢 ✅ Complété | Haute | — |
| 6 Watcher | 🟢 ✅ Complété | Haute | — |
| Correctifs Imago | 🟡 Bloquant | Critique | Variable |
| 10 Service NSSM | 🟠 À faire | Moyenne | 3–4h |
| 11 Intégration Ditto | 🟠 À faire | Moyenne | 4–8h |
@@ -231,5 +237,6 @@ Ces tâches dépendent du backend Imago, pas d'imagod-web directement :
1. **Corriger le scope `images:delete`** dans l'admin Imago → débloque la suppression
2. **Corriger le stockage Imago** (upload 500) → débloque les tests
3. **Implémenter Phase 3** (clipboard watcher) → cœur du produit
4. **Implémenter Phase 6** (watcher loop) → premier flux complet fonctionnel
3. ~~**Implémenter Phase 3** (clipboard watcher)~~ ✅ — 25 juin 2026
4. ~~**Implémenter Phase 6** (watcher loop)~~ ✅ — 25 juin 2026
5. **Corriger le backend Imago** (thumbnails, upload, stockage)