v0.3.3-pre.008

This commit is contained in:
2026-08-30 14:10:10 +02:00
parent 1f0b202135
commit 84ab2b3651
21 changed files with 816 additions and 62 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/024-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION_PLAN.md -->
<!-- version: 8 -->
<!-- version: 9 -->
# Plan `0.3.3` — Store/PostgreSQL RawTransaction vertical slice
@@ -1148,11 +1148,17 @@ Matérialisation :
### `0.3.3-pre.008` — façade `ksp-store-lib`
- six implémentations/dispatches ;
- validation réseau pré-I/O ;
- erreurs sûres ;
- feature mismatch/no-default-features ;
- aucune fuite de type PostgreSQL.
Tranche matérialisée :
- les six traits `RawTransaction*` sont implémentés directement sur `PostgresBackend` en adaptant le bridge physique existant vers `StoreApiFuture`/`ksp_store_api::Result` ;
- `Store` implémente les mêmes six traits et dispatch uniquement vers le backend compilé ;
- les opérations portant `RawNetworkId` valident le réseau dans la façade avant tout appel backend ; `RawTransactionObservationRead` n'a aucun réseau dans son input et reste naturellement scoped par l'instance mono-réseau ;
- `Conflict` et `QueryInvalid` conservent les codes API `store_api.raw_conflict` / `store_api.raw_query_invalid` ;
- les erreurs runtime stabilisées sont `store.wrong_network`, `store.raw_reference_not_found`, `store.postgres_read_failed`, `store.postgres_write_failed`, `store.postgres_data_invalid`, `store.postgres_page_limit_unsupported` et le code compaction acquis ;
- les erreurs conservent uniquement backend/network propre de l'instance + phase statique, jamais SQL/SQLSTATE/binds/texte serveur ;
- `cargo check -p ksp-store-lib --no-default-features` reste un gate obligatoire et `Store::open` sans backend compilé conserve `store.backend_not_compiled` ;
- aucun trait `RawAccount*`, type PostgreSQL, SQL ou reverse edge backend -> façade n'est ouvert ;
- V000/V001 restent byte-identiques.
### `0.3.3-pre.009` — preuve PostgreSQL live

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/020-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION.md -->
<!-- version: 12 -->
<!-- version: 13 -->
# Validation `0.3.3` — Store/PostgreSQL RawTransaction vertical slice
@@ -42,12 +42,12 @@ Le test live est `#[ignore]` dans les gates ordinaires mais sa preuve réelle an
| Capacité | Backend PostgreSQL | Façade Store | Preuve finale |
|----------------------------------|--------------------|--------------|---------------------------|
| `RawTransactionRead` | À FAIRE | À FAIRE | unit + integration + live |
| `RawTransactionWrite` | À FAIRE | À FAIRE | unit + concurrency live |
| `RawTransactionObservationRead` | À FAIRE | À FAIRE | unit + live |
| `RawTransactionObservationWrite` | À FAIRE | À FAIRE | unit + concurrency live |
| `RawTransactionRetentionRead` | À FAIRE | À FAIRE | unit + live |
| `RawTransactionRetentionWrite` | À FAIRE | À FAIRE | unit + race live |
| `RawTransactionRead` | PASS pre.008 | PASS pre.008 | unit + integration + live |
| `RawTransactionWrite` | PASS pre.008 | PASS pre.008 | unit + concurrency live |
| `RawTransactionObservationRead` | PASS pre.008 | PASS pre.008 | unit + live |
| `RawTransactionObservationWrite` | PASS pre.008 | PASS pre.008 | unit + concurrency live |
| `RawTransactionRetentionRead` | PASS pre.008 | PASS pre.008 | unit + live |
| `RawTransactionRetentionWrite` | PASS pre.008 | PASS pre.008 | unit + race live |
Aucune capacité `RawAccountState`, structurale N2, job ou worker n'est admise dans cette matrice.
@@ -608,13 +608,19 @@ cap 500/1000 dans Store pagination
- `RetentionCompactionUnsupported` stable, aucune représentation `compacted` SQL : PASS statique/unit ;
- preuve des races et atomicité PostgreSQL réelle : différée à `pre.009` ;
- premier gate opérateur : FAIL local sur un canari `pre.005` devenu obsolète après ouverture légitime du `DELETE` de purge en `pre.007` ;
- `pre.007-fix.001` retire uniquement cette interdiction historique globale et conserve le garde-fou contre les implémentations directes des traits Store ; gate opérateur à rejouer.
- `pre.007-fix.001` retire uniquement cette interdiction historique globale et conserve le garde-fou jusqu'à ouverture de `pre.008` ; gate opérateur complet PASS le 2026-08-30.
### `pre.008`
- façade/feature dispatch ;
- no physical leak ;
- pre-I/O mismatch.
- six implémentations `RawTransaction*` sur `PostgresBackend` : PASS statique/compile-gate à exécuter ;
- six dispatches correspondants sur `Store` : PASS statique/compile-gate à exécuter ;
- validation réseau façade pré-dispatch : PASS unit/static ;
- `RawTransactionObservationRead` reste scoped par l'instance mono-réseau car l'input ne porte aucun réseau ;
- mapping `Conflict -> store_api.raw_conflict`, `QueryInvalid -> store_api.raw_query_invalid` : PASS statique ;
- codes `wrong_network`, `raw_reference_not_found`, read/write/data/page-limit PostgreSQL stabilisés : PASS public canary ;
- aucune fuite PostgreSQL/SQL/env/reverse edge et aucun `RawAccount*` : PASS boundary canaries ;
- `--no-default-features` reste requis au gate opérateur ;
- V000/V001 inchangées.
### `pre.009`
@@ -640,7 +646,7 @@ cap 500/1000 dans Store pagination
- publication stable.
## 22. Gate courant `pre.007`
## 22. Gate courant `pre.008`
```bash
cargo fmt --all