📋 Changelog — imagod-web
v0.1.0 — 2026-06-25
feat Dashboard Web
- Authentification par clé API Imago (login/logout, localStorage)
- Galerie responsive (grille adaptative desktop/mobile, breakpoints 768px/400px)
- Upload par drag & drop avec feedback visuel
- Raccourcis clavier : Ctrl+U (upload), Ctrl+V (coller)
- Recherche plein texte (nom, tags, description)
- Pagination par pages de 24 images
- Modale détail : full résolution, EXIF, OCR, description AI
- Suppression avec boîte de confirmation
- Gestion des tags : ajout, suppression, édition inline
- Notifications toast (succès/erreur)
- FAB mobile pour upload
- Connexion WebSocket temps réel
- Statistiques (nombre d'images, stockage, tags, uptime)
feat Client API Imago v2
- 8 endpoints : list, search, get, upload, thumbnail, download, delete, tags
- Proxy des URLs signées (thumbnail-url / download-url)
- Auth par header X-API-Key
feat Watcher (Phase 3 + 6)
- Windows : polling clipboard via arboard, conversion PNG automatique
- Linux/macOS : surveillance de dossier configurable (polling)
- Pipeline : détection → hash SHA-256 → dédoublonnage → upload → log
- Configuration : intervalle de polling, dossier Ă surveiller, filtres
feat CLI
- Commandes : start, serve, stop, status, config, install, uninstall, logs
- Flags : --host, --port, --api-key, --api-url, --no-watcher
- Gestion PID pour éviter les doublons d'instance
feat Dédoublonnage
- Hash SHA-256 des images
- Base SQLite locale (imagod.db)
- Cache LRU configurable
fix Corrections
- Structs Imago v2 (ExifData, OcrData, AiData) match l'API réelle
- Affichage via URLs signées (thumbnail-url/download-url)
- Fallback placeholder DOM quand pas de thumbnail
- Import delete inutilisé retiré
docs Documentation
- CHANGELOG.md dans le repo
- ROADMAP.md avec planification des phases
- Navigation in-app : Galerie / Changelog / Aide
Architecture
| Composant | Technologie | Statut |
| Daemon | Rust (tokio, clap) | âś… |
| Serveur web | axum 0.8 + tower-http | âś… |
| Frontend | Vanilla JS + rust-embed | âś… |
| Client API | reqwest (rustls) | âś… |
| Dédoublonnage | SHA-256 + SQLite | ✅ |
| Temps réel | WebSocket (broadcast) | ✅ |