fix: anti-doublon upload — lock mémoire in-flight + garde click/drag frontend

- Backend: Mutex<HashSet> pour bloquer les uploads concurrents du même hash (409 Conflict)
- Backend: logs tracing pour tracer chaque upload entrant
- Frontend: flag isDragging pour éviter le double déclenchement click+drag
- Dépendance: ajout hex = 0.4 pour log du hash

Corrige le bug où un seul fichier uploadé générait 4 copies sur Imago.
This commit is contained in:
2026-06-25 14:23:55 -04:00
parent 3254c33ae5
commit 5a2e12da01
7 changed files with 58 additions and 9 deletions
+3
View File
@@ -9,6 +9,8 @@ use axum::Router;
use rust_embed::RustEmbed;
use std::net::SocketAddr;
use std::sync::Arc;
use std::collections::HashSet;
use tokio::sync::Mutex;
use crate::imago_client::ImagoClient;
use crate::config::Config;
@@ -49,6 +51,7 @@ pub async fn serve_with_config(host: &str, port: u16, config: &Config) -> anyhow
api_key: config.imago.api_key.clone(),
ws_hub: ws_hub.clone(),
dedup_db_path,
in_flight: Mutex::new(HashSet::new()),
};
// Router principal