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:
+24
-17
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user