v0.3.15-pre.008

This commit is contained in:
2026-09-13 22:28:21 +02:00
parent 35bd1bb226
commit c71fb2d8fe
23 changed files with 1055 additions and 81 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/036-V0_3_15_RAW_TRANSACTION_INGEST_DESK_PLAN.md -->
<!-- version: 10 -->
<!-- version: 11 -->
# Plan v0.3.15 — Raw Transaction Ingest Desk
@@ -766,7 +766,30 @@ Le préflight instancie puis détruit immédiatement le contrat source. Il ne fa
### `pre.008` — Store lifecycle et Start/Stop mono-route
Ouvrir/réutiliser le Store via `ksp-store-lib`, lancer un Worker pour une route, installer le handle avant publication Running, puis fermer proprement Stop/terminal.
Ouvrir/réutiliser le Store via `ksp-store-lib`, lancer un Worker pour une route, installer le handle avant toute projection runtime vers le frontend, puis fermer proprement Stop/terminal.
La tranche retient les invariants suivants :
```text
Start request logique
-> revalidation pre.007 + ressources exactes
-> réservation atomique du slot mono-route
-> Store::open(settings Config)
-> Store::health == Ready
-> RawTransactionIngestSettings::with_defaults(network, WorkerId backend-owned)
-> RawTransactionIngestWorker::start_with_runtime_resources
-> installation handle dans le slot
-> accusé IPC sûr Starting/Running
Stop
-> handle.request_stop()
-> handle.wait_terminal()
-> monitor récupère l'unique Arc<Store>
-> Store::close()
-> libération slot mono-route
```
Le slot reste occupé pendant le drain terminal et la fermeture Store ; aucun second Start n'est admis durant cette fenêtre. Le frontend ne reçoit ni `WorkerId`, ni handle, ni endpoint, ni URI Store. La terminaison spontanée est nettoyée backend-side mais son streaming vers le frontend reste `pre.010`. Le partage d'un même Store entre plusieurs Workers reste `pre.009`.
Budget cible : une tranche runtime mono-route.