v0.3.3-pre.005

This commit is contained in:
2026-08-30 12:42:50 +02:00
parent 917e602a87
commit 66a3926adb
14 changed files with 1106 additions and 42 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/020-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION.md -->
<!-- version: 7 -->
<!-- version: 8 -->
# Validation `0.3.3` — Store/PostgreSQL RawTransaction vertical slice
@@ -562,18 +562,25 @@ cap 500/1000 dans Store pagination
### `pre.004`
- quatre lectures RAW backend-specific sans fuite de row/SQL : PASS statique ;
- conversion `NUMERIC(20,0) -> u64` jusqu'à `u64::MAX` et conversions entières/timestamps fallibles : PASS unit design ;
- `Full/Archived/Purged`, observation complète, rétention/tombstone : PASS unit design ;
- mauvais réseau avant pool I/O : PASS unit design ;
- malformed DB -> `DataInvalid`, SELECT -> `ReadFailed`, aucune valeur hostile retenue : PASS statique/unit design ;
- SQL strictement read-only dans cette tranche : PASS canari source ;
- gate Cargo opérateur : À EXÉCUTER.
- quatre lectures RAW backend-specific sans fuite de row/SQL : PASS ;
- conversion `NUMERIC(20,0) -> u64` jusqu'à `u64::MAX` et conversions entières/timestamps fallibles : PASS ;
- `Full/Archived/Purged`, observation complète, rétention/tombstone : PASS ;
- mauvais réseau avant pool I/O : PASS ;
- malformed DB -> `DataInvalid`, SELECT -> `ReadFailed`, aucune valeur hostile retenue : PASS ;
- SQL strictement read-only dans cette tranche : PASS ;
- gate opérateur complet du 2026-08-30 : PASS (`check`, Clippy, Store/API/PostgreSQL/Config, no-default-features ; 25 tests unit backend).
### `pre.005`
- atomic writes/idempotence/conflict ;
- observation writes.
- acquisition transaction + observation atomique sous transaction SQL : PASS statique/design ;
- insert unique sans `has_*`, puis verrouillage `FOR UPDATE` et comparaison réelle : PASS statique/unit design ;
- même contenu -> `AlreadyPresent`, divergence -> `Conflict` : PASS unit design ;
- tombstone compatible `Normal` -> `SkippedPurged/NotRecorded` : PASS statique/design ;
- tombstone compatible `ForceRehydrate` -> `Rehydrated` + observation atomique : PASS statique/design ;
- observation write séparée, key identique/divergente, absent/purged : PASS statique/unit design ;
- `Conflict` / `ReferenceNotFound` / `WriteFailed` sans texte serveur : PASS statique ;
- preuve PostgreSQL concurrente/rollback réelle : différée à `pre.009` ;
- gate Cargo opérateur : À EXÉCUTER.
### `pre.006`
@@ -615,7 +622,7 @@ cap 500/1000 dans Store pagination
- publication stable.
## 22. Gate courant `pre.004`
## 22. Gate courant `pre.005`
```bash
cargo fmt --all
@@ -667,4 +674,17 @@ cargo check -p ksp-store-lib --no-default-features
- [PASS] wrong-network gardé avant pool I/O ;
- [PASS] `ReadFailed` / `DataInvalid` / `WrongNetwork` sans texte externe ;
- [PASS] tests déterministes de row mapping et hostile data ajoutés ;
- [À FAIRE] gate Cargo opérateur complet de `pre.004`.
- [PASS] gate Cargo opérateur complet de `pre.004` fourni le 2026-08-30.
### `pre.005` — état de la tranche
- [PASS] écritures backend-specific canonique + observation ajoutées sans implémenter encore les traits incomplets ;
- [PASS] validation réseau et cohérence transaction/observation avant `pool.get()` ;
- [PASS] idempotence par insert unique + comparaison réelle sous `FOR UPDATE`, sans `has_*` ;
- [PASS] payload comparé byte-for-byte lorsque disponible ;
- [PASS] `Purged` normal skip et `ForceRehydrate` atomique selon tombstone ;
- [PASS] observation write séparée : `Inserted` / `AlreadyPresent` / `NotRecorded` / conflit ;
- [PASS] référence canonique absente classée `ReferenceNotFound` ;
- [PASS] erreurs physiques d'écriture classées `WriteFailed` sans conserver le texte PostgreSQL ;
- [PASS] aucune migration SQL modifiée et aucun scope pagination/rétention mutante ouvert ;
- [À FAIRE] gate Cargo opérateur complet de `pre.005`.