# Delta `0.3.7-pre.008-fix.001` — composabilité `Send` du runtime Job Backfill ## 1. Base requise ```text 0.3.7-pre.008 workspace.package.version = 0.3.7-pre.8 ``` ## 2. Objectif Corriger le blocage de compilation du Start réel Backfill Desk : `tauri::async_runtime::spawn` exige une future `Send + 'static`, mais deux alias privés de `ksp-job-backfill-lib` effaçaient `Send` dans les chaînes discovery et candidate-processing. ## 3. Cause Les types privés suivants étaient déclarés sans `std::marker::Send` : ```text SignaturePageFuture CandidateProcessFuture ``` Leurs implémentations concrètes utilisent des opérations async composables et le Store expose déjà `StoreApiFuture + Send`, mais l'effacement de type privé supprimait cette garantie avant que `BackfillJobRuntime::run` atteigne le spawn Tauri. ## 4. Correction - ajouter `std::marker::Send` à `SignaturePageFuture` ; - ajouter `std::marker::Send` à `CandidateProcessFuture` ; - ajouter une canary compile-time `Send` pour chaque alias ; - ne modifier aucune API publique, politique de pagination/concurrency, logique Store/Transport, DTO, commande Tauri ou frontend. Le correctif ne remplace pas le spawn Tauri par `spawn_local` et ne crée aucun thread ad hoc : le runtime Job reste composable sur un executor multithread standard. ## 5. Version ```text workspace.package.version = 0.3.7-pre.8.fix.1 label = 0.3.7-pre.008-fix.001 ``` ## 6. Fichiers ajoutés ```text deltas/0.3.7/pre.008-fix.001.md ``` ## 7. Fichiers modifiés ```text Cargo.toml crates/ksp-job-backfill-lib/src/discovery.rs crates/ksp-job-backfill-lib/src/execution.rs crates/ksp-job-backfill-lib/unit_tests/discovery.rs crates/ksp-job-backfill-lib/unit_tests/execution.rs docs/validation/024-V0_3_7_BACKFILL_DESK.md ``` ## 8. Fichiers supprimés Aucun. ## 9. Gate opérateur ayant déclenché le fix ```text cargo fmt --all exécuté python3 scripts/audit_rust_workspace_rules.py PASS python3 scripts/audit_markdown_tables.py ... deltas/0.3.7 PASS cargo check --workspace FAIL — E0277, future Job Backfill non-Send au spawn Tauri cargo clippy --workspace --all-targets FAIL compile — même E0277 cargo test -p ksp-job-backfill-lib PASS — 47 unitaires + suites d'intégration cargo test -p ksp-app-backfill-desk FAIL compile — même E0277 ``` ## 10. Validations exécutées dans l'environnement d'assemblage ```text python3 scripts/audit_rust_workspace_rules.py python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.7 ``` Contrôles ciblés : - les deux aliases privés imposent désormais `Future + Send` ; - deux canaries compile-time empêchent la régression ; - aucun fichier applicatif Backfill Desk de `pre.008` n'est modifié ; - aucune API publique de `ksp-job-backfill-lib` n'est modifiée. ## 11. Validations non exécutées dans l'environnement d'assemblage `cargo` et `rustfmt` ne sont pas disponibles dans l'environnement d'assemblage. Gate opérateur : ```text cargo fmt --all python3 scripts/audit_rust_workspace_rules.py python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.7 cargo check --workspace cargo clippy --workspace --all-targets cargo test -p ksp-job-backfill-lib cargo test -p ksp-app-backfill-desk cargo tree -p ksp-app-backfill-desk --edges normal cargo tree -p ksp-app-backfill-desk -e features ``` ## 12. Questions ouvertes Aucune pour ce correctif.