feat: watcher (phase 3+6) + navigation dashboard (version, changelog, aide)

Phase 3 — Clipboard Watcher (Windows):
- clipboard.rs: détection d'images via arboard, conversion BGRA→PNG
- Gère les doublons consécutifs (même image dans le presse-papier)

Phase 6 — Watcher Loop:
- Windows: polling clipboard → hash → dédoublonnage → upload
- Linux/macOS: polling de dossier configurable (watch_dir)
- Ajout champ watch_dir dans WatcherConfig
- Client Imago cloné avant await (évite problème Send/Sync)

Dashboard:
- Badge version v0.1.0 dans le header
- Barre de navigation: Galerie / Changelog / Aide
- Pages changelog.html et help.html (chargement dynamique)
- Endpoint GET /api/version avec infos build
- Correction import delete inutilisé dans routes.rs
This commit is contained in:
2026-06-25 09:41:51 -04:00
parent 9b06df737d
commit 3bab62733d
11 changed files with 608 additions and 36 deletions
+5
View File
@@ -37,6 +37,10 @@ pub struct WatcherConfig {
pub capture_images: bool,
#[serde(default = "default_poll_interval")]
pub poll_interval_ms: u64,
/// Dossier à surveiller pour les nouveaux screenshots (Linux/macOS)
/// Si vide, utilise le clipboard (Windows uniquement)
#[serde(default)]
pub watch_dir: Option<String>,
#[serde(default)]
pub filters: WatcherFilters,
}
@@ -46,6 +50,7 @@ impl Default for WatcherConfig {
Self {
capture_images: true,
poll_interval_ms: 500,
watch_dir: None,
filters: WatcherFilters::default(),
}
}