v0.3.4-pre.009
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
<!-- file: docs/validation/021-V0_3_4_STORE_POSTGRES_RAW_ACCOUNT.md -->
|
||||
<!-- version: 13 -->
|
||||
<!-- version: 14 -->
|
||||
|
||||
# Validation `0.3.4` — Store/PostgreSQL `RawAccountState` + complétude RAW
|
||||
|
||||
## 1. Portée
|
||||
|
||||
Cette matrice est ouverte par `0.3.4-pre.001`. `0.3.4-pre.002` matérialise la fondation V002 minimale et `pre.002-fix.001` corrige deux canaris sans modifier le SQL ; son gate opérateur complet est PASS. `0.3.4-pre.003` complète les contraintes de domaine, l'index de navigation, la compatibilité externe et le checksum V002 final ; `pre.003-fix.001` corrige uniquement l'ordre alphabétique du bloc `const` et son gate opérateur complet est PASS. `pre.004` à `pre.007` matérialisent successivement mapping/read, writes, observation supplémentaire et pagination account ; `pre.007-fix.001` clôt son gate opérateur en PASS. `pre.008` ouvre les quatre capabilities account dans `PostgresBackend` et `Store`, portant l'inventaire RAW statique à 10/10 ; son gate initial échoue uniquement sur un canari `dependency_boundary` mal réconcilié et `pre.008-fix.001` corrige ce déplacement de variable sans toucher à la verticale. La preuve PostgreSQL live reste réservée à `pre.009`.
|
||||
Cette matrice est ouverte par `0.3.4-pre.001`. `0.3.4-pre.002` matérialise la fondation V002 minimale et `pre.002-fix.001` corrige deux canaris sans modifier le SQL ; son gate opérateur complet est PASS. `0.3.4-pre.003` complète les contraintes de domaine, l'index de navigation, la compatibilité externe et le checksum V002 final ; `pre.003-fix.001` corrige uniquement l'ordre alphabétique du bloc `const` et son gate opérateur complet est PASS. `pre.004` à `pre.007` matérialisent successivement mapping/read, writes, observation supplémentaire et pagination account ; `pre.007-fix.001` clôt son gate opérateur en PASS. `pre.008` ouvre les quatre capabilities account dans `PostgresBackend` et `Store`, portant l'inventaire RAW statique à 10/10 ; `pre.008-fix.001` corrige son unique canari mal réconcilié et son gate opérateur complet est PASS. `pre.009` matérialise la preuve PostgreSQL live account, la concurrence/cancellation réelle et la coexistence RawTransaction sans modifier les migrations.
|
||||
|
||||
Base :
|
||||
|
||||
@@ -278,8 +278,8 @@ Le test live account devra être opt-in/ignored, URI stdin, sans environnement n
|
||||
| pre.005 | acquisition atomique state+observation + idempotence/conflict | PASS |
|
||||
| pre.006 | observation supplémentaire + races/cancellation unitaires | PASS |
|
||||
| pre.007 | list RawAccountStateQuery + keyset cursor V1 account | PASS |
|
||||
| pre.008 | 4 impl backend + 4 dispatch Store + conformance 10/10 | CURRENT |
|
||||
| pre.009 | preuve PostgreSQL live account + coexistence RawTransaction | PLANNED |
|
||||
| pre.008 | 4 impl backend + 4 dispatch Store + conformance 10/10 | PASS |
|
||||
| pre.009 | preuve PostgreSQL live account + coexistence RawTransaction | CURRENT |
|
||||
| pre.010 | hardening/completeness cross-family + canaries ownership | PLANNED |
|
||||
| pre.011 | gate technique final + replay live ciblé + graphes | PLANNED |
|
||||
| pre.012 | réconciliation docs finale sans rouvrir le code | PLANNED |
|
||||
@@ -599,4 +599,63 @@ let runtime = include_str!("../src/runtime.rs");
|
||||
|
||||
vers le canari qui le consomme effectivement. Les assertions de placement 10/10 restent inchangées : les implémentations account demeurent uniques dans `runtime.rs`, absentes de `raw_account.rs`, et les couches migration/schema restent sans capability métier. Aucun fichier de production, SQL runtime ou migration V000/V001/V002 n'est modifié.
|
||||
|
||||
Le checksum V002 reste `ff21605ed45f7ab4c0f92bbb692700b4118a9488b04d50a31d259ac59bdb550e`. Le gate opérateur complet doit être rejoué sur `0.3.4-pre.8.fix.1`.
|
||||
Le checksum V002 reste `ff21605ed45f7ab4c0f92bbb692700b4118a9488b04d50a31d259ac59bdb550e`. Le gate opérateur complet du 2026-08-30 sur `0.3.4-pre.8.fix.1` est **PASS** : audits Rust/Markdown, workspace check, Clippy all-targets, Store API, Store façade, backend PostgreSQL (63 tests unitaires + 13 dependency + 7 hardening + 13 public), Config et `--no-default-features` sont verts.
|
||||
|
||||
## 28. Verdict `pre.009`
|
||||
|
||||
Preuve PostgreSQL live `RawAccountState` : **matérialisée ; gate opérateur standard et exécution live opt-in à rejouer**.
|
||||
|
||||
Nouveau test :
|
||||
|
||||
```text
|
||||
crates/ksp-store-postgres-lib/tests/postgres_raw_account_live.rs
|
||||
#[ignore = "opt-in real PostgreSQL RawAccountState proof; reads one dedicated URI from stdin"]
|
||||
```
|
||||
|
||||
Invariants d'exploitation :
|
||||
|
||||
```text
|
||||
URI dédiée lue depuis stdin uniquement
|
||||
aucune lecture d'environnement
|
||||
aucun affichage de l'URI
|
||||
refus si une table KSP managée existe déjà
|
||||
PostgreSQL >= 15
|
||||
cleanup uniquement après preuve d'absence initiale
|
||||
reopen health migration_version = 2
|
||||
```
|
||||
|
||||
Matrice matérialisée :
|
||||
|
||||
| Scénario | Preuve `pre.009` |
|
||||
|--------------------------------------------|--------------------------------------|
|
||||
| bootstrap/reopen V002 | oui |
|
||||
| schema_autoupdate index account | oui |
|
||||
| slot/lamports/rent_epoch/write_version u64 | oui, `u64::MAX` |
|
||||
| data account vide | oui |
|
||||
| data account 16 MiB exact | oui |
|
||||
| acquisition insert/idempotence | oui |
|
||||
| même référence / contenu divergent | `Conflict` |
|
||||
| même pubkey+slot / hashes distincts | oui |
|
||||
| collision observation + rollback state | oui |
|
||||
| observation supplémentaire identique | `AlreadyPresent` |
|
||||
| observation supplémentaire divergente | `Conflict` |
|
||||
| référence state absente | `ReferenceNotFound` |
|
||||
| metadata Yellowstone | round-trip exact |
|
||||
| pagination ASC/DESC | oui |
|
||||
| filtre pubkey | oui |
|
||||
| cursor cross-query / digest hostile | `QueryInvalid` |
|
||||
| cursor cross-family `KSPT` | `QueryInvalid` |
|
||||
| concurrence identique | Inserted + AlreadyPresent |
|
||||
| concurrence divergente | Inserted + Conflict |
|
||||
| cancellation réelle | `JoinHandle::abort()` + state absent |
|
||||
| coexistence RawTransaction | oui |
|
||||
| cleanup isolation | oui |
|
||||
|
||||
Le test `postgres_raw_transaction_live.rs` est ajusté uniquement sur son inventaire de schéma managé : il probe et supprime désormais aussi `ksp_raw_account_states` et `ksp_raw_account_observations`, nécessaires depuis V002. Aucun scénario métier RawTransaction n'est modifié.
|
||||
|
||||
Les migrations V000/V001/V002 restent byte-inchangées ; le checksum V002 reste :
|
||||
|
||||
```text
|
||||
ff21605ed45f7ab4c0f92bbb692700b4118a9488b04d50a31d259ac59bdb550e
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user