v0.3.7-pre.008-fix.002

This commit is contained in:
2026-09-02 17:09:39 +02:00
parent d7db8d69e0
commit d49d7af0a4
4 changed files with 139 additions and 8 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/024-V0_3_7_BACKFILL_DESK.md -->
<!-- version: 12 -->
<!-- version: 13 -->
# Validation v0.3.7 — Backfill Desk
@@ -380,4 +380,24 @@ Le gate opérateur de `pre.008` confirme que les audits Rust/Markdown sont propr
- [X] aucune API publique Job, logique de requête, Start Desk, Store, Transport ou frontend n'est modifiée ;
- [X] audits statiques Rust/Markdown rejoués dans l'environnement d'assemblage ;
- [ ] replay opérateur `cargo fmt/check/clippy/test` de `pre.008-fix.001` à exécuter.
## 18. `pre.008-fix.002` — canari d'ordre Start local au bon spawn
Le replay opérateur de `pre.008-fix.001` confirme que la correction `Send` est effective : audits, `cargo check --workspace`, Clippy et `ksp-job-backfill-lib` passent. La suite Backfill Desk atteint alors le canari `pre_008_start_installs_handle_before_non_blocking_spawn_and_keeps_single_run_backend_owned`, qui échoue sur `prepare_index < spawn_index`.
La production respecte pourtant l'invariant : `AppState::prepare_backfill_start` construit le runtime, récupère son handle, installe le slot single-run, acquiert Transport/Store puis retourne `BackfillRunLaunch`; ensuite seulement la commande Tauri `backfill_start` appelle `tauri::async_runtime::spawn`. Le défaut vient du test, qui utilisait `tauri.find("tauri::async_runtime::spawn(async move")` sur tout `src/tauri.rs` et capturait ainsi le spawn antérieur du shutdown Store.
Le fix rend le canari contextuel : après localisation de `state.prepare_backfill_start(request)`, la recherche du spawn est limitée au suffixe de source qui suit cette admission. Aucun code de production, DTO, frontend, contrat Job, Store ou Transport n'est modifié.
Gate opérateur requis après application :
```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
```