- CHANGELOG.md : ajout entrées v0.2.1 (update, install auto-config, NSSM fixes) et v0.2.2 (fix --config ignoré, Config::load_from) - Nexus : structure v0.2.2/windows/ et v0.2.2/linux/ - README.md + CHANGELOG.md uploadés à la racine imagod-web/ - Anciens fichiers plats supprimés (v0.2.2/*.zip, SHA256SUMS)
5.7 KiB
5.7 KiB
Changelog — imagod-web
Toutes les modifications notables de imagod-web sont documentées ici.
[v0.2.2] — 2026-06-30
🐛 Corrections
- Fix
--configignoré parserve: Le flag--configétait parsé par le CLI mais jamais passé àcmd_serve(). Le service NSSM passaitserve --config <path>mais la commande lisait toujours depuis%APPDATA%/imagod-web/imagod.toml. Résultat : le service Windows crashait au démarrage (SERVICE_PAUSED). - Ajout
Config::load_from(path): Nouvelle méthode pour charger la config depuis un chemin arbitraire, utilisée quand--configest spécifié.
🔧 Améliorations
- Structure Nexus :
v0.2.2/windows/etv0.2.2/linux/au lieu d'un fichier plat - Builds Linux + Windows systématiques
[v0.2.1] — 2026-06-28
🚀 Ajouts
- Commande
update: Self-update depuis Nexus (imagod-web update), téléchargement + vérification SHA256 + remplacement du binaire installauto-config : Génération automatique deimagod.tomlavec--api-key, plus besoin de créer le fichier manuellement- NSSM AppDirectory : Le service Windows définit maintenant le répertoire de travail correctement
🐛 Corrections
- Service NSSM :
AppDirectorypointe maintenant vers le dossier du binaire (et nonC:\Windows\System32) - Redémarrage auto : Configuration
AppExit Default Restartpour le service Windows
[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
- Cross-compilation Windows : Build x86_64-pc-windows-gnu réussi (8.1 MB, standalone)
🔧 DevOps
- Phase 10 — Service NSSM :
imagod-web installtélécharge NSSM, installe le service 'ImagodWeb' avec démarrage auto + redémarrage sur crash - Phase 12 — Cross-compilation : Cible Windows x86_64, linker mingw-w64, config
.cargo/config.toml - Build.rs : Génération automatique de
changelog.htmlethelp.htmldepuis CHANGELOG.md et ROADMAP.md à chaque build - Routage : Correction fallback
.htmlpour/changeloget/help
📚 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 |