v0.3.3-pre.007

This commit is contained in:
2026-08-30 13:37:22 +02:00
parent 10996f11f7
commit aa56a12846
13 changed files with 683 additions and 41 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/020-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION.md -->
<!-- version: 10 -->
<!-- version: 11 -->
# Validation `0.3.3` — Store/PostgreSQL RawTransaction vertical slice
@@ -594,12 +594,20 @@ cap 500/1000 dans Store pagination
- `LIMIT requested + 1`, limite `i64::MAX - 1`, aucun cap worker : PASS unit/statique ;
- index V001 `(slot, signature)` partiel réutilisé, migration inchangée : PASS statique ;
- snapshot inter-pages explicitement non garanti : PASS doc ;
- gate Cargo opérateur : À EXÉCUTER.
- premier gate opérateur : FAIL local sur re-export cursor inutilisé + placeholder manquant du canari hardening ;
- `pre.006-fix.001` corrige uniquement ces deux défauts ; gate opérateur complet du 2026-08-30 : PASS (`check`, Clippy, Store/API/PostgreSQL/Config, no-default-features ; 34 tests unit backend).
### `pre.007`
- archive/purge/tombstone/ForceRehydrate ;
- Compacted unsupported stable.
- méthode backend-specific de transition : PASS statique ;
- network + `Compacted` rejetés pré-I/O : PASS unit design ;
- `Full -> Archived` et `Archived -> Purged` sous `FOR UPDATE` : PASS statique/unit decision ;
- `AlreadyAtTarget` / `ExpectedStateMismatch` / `Applied` : PASS unit decision ;
- archive payload/hot payload/block time validés selon l'état avant mutation/no-op : PASS statique ;
- unknown reference -> `ReferenceNotFound` : PASS statique ;
- `RetentionCompactionUnsupported` stable, aucune représentation `compacted` SQL : PASS statique/unit ;
- preuve des races et atomicité PostgreSQL réelle : différée à `pre.009` ;
- gate Cargo opérateur : À EXÉCUTER.
### `pre.008`
@@ -631,7 +639,7 @@ cap 500/1000 dans Store pagination
- publication stable.
## 22. Gate courant `pre.006`
## 22. Gate courant `pre.007`
```bash
cargo fmt --all
@@ -706,12 +714,24 @@ cargo check -p ksp-store-lib --no-default-features
- [PASS] replay network/direction/range et cursor hostile classés `QueryInvalid` ;
- [PASS] limite physique `requested <= i64::MAX - 1`, au-delà `PageLimitUnsupported` sans clamp ;
- [PASS] aucune migration SQL modifiée, aucun scope rétention mutante/façade ouvert ;
- [À FAIRE] gate Cargo opérateur complet de `pre.006`.
- [PASS] premier gate a isolé deux défauts purement locaux, corrigés en `pre.006-fix.001`.
### `pre.006-fix.001` — correction du gate
- [PASS] re-export crate-private `RawTransactionDecodedCursor` inutilisé supprimé sans modifier le codec cursor ;
- [PASS] canari `hardening_completeness` corrigé pour concaténer les huit sources backend inspectées ;
- [PASS] aucune logique SQL, pagination, migration ou checksum V000/V001 modifiée ;
- [À FAIRE] gate Cargo opérateur complet de `pre.006-fix.001`.
- [PASS] gate Cargo opérateur complet fourni le 2026-08-30.
### `pre.007` — état de la tranche
- [PASS] bridge backend-specific `transition_raw_transaction_retention` ajouté ;
- [PASS] validation réseau et `Compacted` avant pool I/O ;
- [PASS] compare-and-transition sérialisé par verrou canonical `FOR UPDATE` ;
- [PASS] `Full -> Archived` copie le payload exact vers archive puis retire le payload hot atomiquement ;
- [PASS] `Archived -> Purged` supprime l'archive, efface block time et conserve le tombstone minimal ;
- [PASS] `AlreadyAtTarget`, `ExpectedStateMismatch`, `Applied` décidés depuis l'état verrouillé ;
- [PASS] `RetentionCompactionUnsupported` utilise le code stable déjà acquis ;
- [PASS] aucune migration SQL modifiée, aucun trait Store complet ni dispatch façade ouvert ;
- [À FAIRE] gate Cargo opérateur complet de `pre.007`.