Files
imagod-web/CHANGELOG.md
T
bruno d05bcc0ef7 chore: structure Nexus version/OS/, CHANGELOG v0.2.1+0.2.2, README
- 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)
2026-06-30 09:45:34 -04:00

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 --config ignoré par serve : Le flag --config était parsé par le CLI mais jamais passé à cmd_serve(). Le service NSSM passait serve --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 --config est spécifié.

🔧 Améliorations

  • Structure Nexus : v0.2.2/windows/ et v0.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
  • install auto-config : Génération automatique de imagod.toml avec --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 : AppDirectory pointe maintenant vers le dossier du binaire (et non C:\Windows\System32)
  • Redémarrage auto : Configuration AppExit Default Restart pour le service Windows

[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 : list_images, search_images, upload_image, delete_image, 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 : 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