- 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
3.8 KiB
3.8 KiB
Changelog — imagod-web
Toutes les modifications notables de imagod-web sont documentées ici.
[v0.2.0] — 2026-06-25
🚀 Ajouts majeurs
- Phase 3 — Clipboard Watcher (Windows) : Module
clipboard.rsavec capture d'image viaarboard, conversion BGRA→PNG, hachage SHA-256 pour dédoublonnage - Phase 6 — Boucle Watcher : Polling unifié Windows (clipboard) / Linux-macOS (dossier), dédoublonnage SQLite persistant, pipeline complet détection → upload → nettoyage
- Navigation dashboard : Barre d'onglets 🖼️ Galerie | 📋 Changelog | ❓ Aide
- Badge version : Affichage
v0.2.0dans l'en-tête du dashboard - Pages statiques :
changelog.htmlethelp.htmlgénérées depuis le markdown, encastrées dans le binaire - Endpoint version :
GET /api/versionretourne la version, le build, l'OS et l'architecture
🐛 Corrections
- Thumbnails 404 : Les miniatures échouaient car les balises
<img>n'envoyaient pas le headerX-API-Key. Correction :get_thumbnail()utilise toujours la clé serveur configurée, pas le header utilisateur - Clé API expirée : Mise à jour de la configuration avec la clé valide
🧪 Tests
- Watcher Linux validé : Polling dossier fonctionnel, upload réussi vers Imago (image test ID=13), dédoublonnage confirmé
- Phase 3 compilée : Code clipboard compilé et prêt, test Windows à venir
📚 Documentation
- ROADMAP.md : Créé avec planification complète des phases 3 à 15
- CHANGELOG.md : Ce fichier
[v0.1.0] — 2026-06-23
🏗️ Architecture
- Structure du projet Rust (Cargo, modules)
- CLI avec
clap: commandesstart,serve,stop,status,config,logs,install,uninstall - Configuration TOML (
imagod.toml) avec auto-génération - Serveur web
axumavec frontend vanilla JS embarqué viarust-embed - Multiplateforme : Windows, Linux, macOS (x86_64, ARM64)
🎨 Dashboard Web (Phase 7-9)
- Interface sombre moderne, responsive mobile/desktop
- Authentification : Login par clé API, validation immédiate, persistence localStorage
- Galerie d'images : Affichage responsive avec thumbnails, recherche textuelle, stats (nombre, stockage)
- Upload : Zone drag & drop, sélection de fichier, barre de progression
- Suppression : Bouton corbeille avec confirmation, toast notification
- Tags : Édition inline, ajout/suppression, enregistrement automatique
- WebSocket : Connexion temps réel avec indicateur de statut
- Modale : Détail complet (EXIF, OCR, description AI, tags, taille)
- Filtrage : Recherche par nom, tags, description AI
🔌 Client Imago v2
- Endpoints :
list_images,search_images,upload_image,delete_image,update_tags get_thumbnail(): Appelthumbnail-url+ suivi URL signée + fallbackdownload-urlsi 404get_file(): Appeldownload-url+ suivi URL signée- Auth : Header
X-API-Keydynamique (clé serveur ou utilisateur) - Multi-tenant : Support header
X-Tenant-ID
🗄️ Dédoublonnage
- Base SQLite locale pour le cache SHA-256
- Table
dedup_hashesavec horodatage - Nettoyage automatique du cache (limite configurable, défaut 10 000 entrées)
🔧 Configuration
imagod.toml: sections[imago],[watcher],[dedup],[ui],[logging]- Paramètres watcher :
capture_images,poll_interval_ms,watch_dir,filters - Gestion multi-environnement : développement (dev.lab.home) et production
Légende des tags
| Tag | Signification |
|---|---|
| 🚀 | Nouvelle fonctionnalité majeure |
| 🐛 | Correction de bug |
| 🧪 | Tests et validation |
| 📚 | Documentation |
| 🎨 | Interface utilisateur |
| 🔌 | Intégration API |
| 🔧 | Configuration / DevOps |
| 🗄️ | Base de données / Stockage |
| 🏗️ | Architecture / Structure |