55 lines
2.1 KiB
Markdown
55 lines
2.1 KiB
Markdown
<!-- 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.
|