v0.3.15-pre.008-fix.001

This commit is contained in:
2026-09-13 22:34:26 +02:00
parent c71fb2d8fe
commit fe512637d4
4 changed files with 77 additions and 16 deletions

View File

@@ -0,0 +1,54 @@
<!-- file: deltas/0.3.15/pre.008-fix.001.md -->
<!-- version: 1 -->
# Delta `0.3.15-pre.008-fix.001`
## Objet
Corriger les erreurs de compilation révélées par le premier gate opérateur de `pre.008`, sans modifier le périmètre fonctionnel du runtime mono-route.
## Défauts observés
Le gate `cargo check --workspace` de `pre.008` a révélé quatre défauts localisés dans le nouveau runtime Desk :
- le conteneur privé `RouteRuntimeInner` était référencé mais absent ;
- trois gardes de pattern appliquaient un déréférencement invalide à des tokens `u64` ;
- `AppState::start_route` conservait potentiellement le résultat du verrou `inventory_generation` dans l'état de la future jusqu'au premier `await`, rendant la commande Tauri non `Send` ;
- les erreurs précédentes empêchaient Clippy, les tests et le lancement Tauri d'atteindre le runtime `pre.008`.
## Correction
`route_runtime.rs` matérialise désormais le conteneur privé exact du slot mono-route :
```text
RouteRuntimeInner
next_sequence : u64
slot : RouteRuntimeSlot
```
Les trois comparaisons de token utilisent directement les valeurs `u64` produites par les patterns Rust 2024, sans déréférencement.
`AppState::start_route` lit maintenant `inventory_generation` dans un bloc synchrone borné. Le `MutexGuard` est détruit avant `prepare_route_start` puis avant l'appel async `start_route_runtime(...).await`, de sorte que la future Tauri ne transporte aucun guard `std::sync::MutexGuard` à travers un point de suspension.
## Périmètre inchangé
Le fix ne change aucun contrat de `pre.008` :
- un seul runtime route peut être `Starting` ou `Active` ;
- même revalidation Start `pre.007` ;
- même `Store::open` / health / close via `ksp-store-lib` ;
- même lancement `RawTransactionIngestWorker::start_with_runtime_resources` ;
- même Stop coopératif et nettoyage Store ;
- aucun multi-route de `pre.009` ;
- aucun monitoring continu de `pre.010`.
## Version
```text
header racine : 609 -> 610
workspace : 0.3.15-pre.8 -> 0.3.15-pre.8.fix.1
```
## Gate opérateur
Le gate complet de `pre.008` doit être rejoué après application de ce fix.