📋 imagod-web v0.2.0+build.27-62e63e4-dirty

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.rs avec capture d'image via arboard, 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.0 dans l'en-tête du dashboard
  • Pages statiques : changelog.html et help.html générées depuis le markdown, encastrées dans le binaire
  • Endpoint version : GET /api/version retourne la version, le build, l'OS et l'architecture
  • 🐛 Corrections

  • Thumbnails 404 : Les miniatures échouaient car les balises <img> n'envoyaient pas le header X-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 install té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.html et help.html depuis CHANGELOG.md et ROADMAP.md à chaque build
  • Routage : Correction fallback .html pour /changelog et /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 : commandes start, serve, stop, status, config, logs, install, uninstall
  • Configuration TOML (imagod.toml) avec auto-génération
  • Serveur web axum avec frontend vanilla JS embarqué via rust-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 : listimages, searchimages, uploadimage, deleteimage, update_tags
  • get_thumbnail() : Appel thumbnail-url + suivi URL signée + fallback download-url si 404
  • get_file() : Appel download-url + suivi URL signée
  • Auth : Header X-API-Key dynamique (clé serveur ou utilisateur)
  • Multi-tenant : Support header X-Tenant-ID
  • 🗄️ Dédoublonnage

  • Base SQLite locale pour le cache SHA-256
  • Table dedup_hashes avec 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 : captureimages, pollintervalms, watchdir, filters
  • Gestion multi-environnement : développement (dev.lab.home) et production

  • Légende des tags