v0.3.15-pre.008-fix.003

This commit is contained in:
2026-09-13 23:05:18 +02:00
parent ee658eb862
commit 11e5247fbf
6 changed files with 91 additions and 17 deletions

View File

@@ -0,0 +1,51 @@
<!-- file: deltas/0.3.15/pre.008-fix.003.md -->
<!-- version: 1 -->
# Delta `0.3.15-pre.008-fix.003`
## Objet
Fermer le gate Clippy de `pre.008-fix.002` et corriger la resynchronisation Stop lorsqu'un Worker atteint spontanément un état terminal avant l'action utilisateur, sans modifier les capabilities Config ni le périmètre mono-route.
## Défauts observés
Le gate opérateur confirme `cargo check --workspace` et les suites de tests, mais Clippy strict rejette encore un `?` dans la boucle bornée de nettoyage Stop au titre de `clippy::question_mark_used`.
Le parcours Tauri live montre également qu'une route peut atteindre spontanément `Faulted` et fermer son Store avant que le frontend ne clique Stop. Le slot backend est alors correctement libéré, mais le frontend possède encore son dernier accusé `Starting`; un Stop tardif retourne donc `route_runtime_not_active` au lieu de lui permettre de récupérer l'état terminal déjà observé.
## Correction
- le `?` interdit est remplacé par un `match` explicite avec `return` ;
- le runtime mono-route conserve uniquement le dernier `RawIngestRouteRuntimeDto` terminal sûr après la terminaison Worker et la fermeture Store ;
- un Stop tardif sur un slot déjà `Idle` retourne ce dernier terminal de manière idempotente ;
- la réservation d'un nouveau Start efface immédiatement ce terminal afin de ne jamais mélanger deux exécutions ;
- le cache terminal ne contient aucun handle Worker, aucun `Store`, aucun endpoint, aucun secret et aucune ressource Transport.
## Caractérisation live inchangée
Les terminaisons `Faulted` observées ne sont pas masquées par ce fix :
- Yellowstone Mainnet a rencontré un overflow de queue Transport sous charge, concomitant à de l'hydration HTTP et à une mise en cooldown rate-limit ;
- `standard-block-direct` a atteint `Faulted` après la tentative `blockSubscribe`, méthode explicitement instable.
Ces événements restent des résultats Worker/Transport réels. Le fix ne fabrique aucune capability, ne transforme pas `Configured` en garantie live et ne modifie aucune politique provider.
## Périmètre inchangé
- un seul runtime route à la fois ;
- même revalidation Start issue de `pre.007` ;
- même ouverture, health et fermeture Store via `ksp-store-lib` ;
- même lancement `RawTransactionIngestWorker::start_with_runtime_resources` ;
- aucun partage Store multi-worker de `pre.009` ;
- aucun monitoring continu de `pre.010`.
## Version
```text
header racine : 611 -> 612
workspace : 0.3.15-pre.8.fix.2 -> 0.3.15-pre.8.fix.3
```
## Gate opérateur
Le gate complet de `pre.008` doit être rejoué après application de ce fix.