v0.3.8-pre.005
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/029-V0_3_8_STORE_DESK_PLAN.md -->
|
||||
<!-- version: 4 -->
|
||||
<!-- version: 5 -->
|
||||
|
||||
# Plan v0.3.8 — Store Desk V1 RAW
|
||||
|
||||
@@ -572,7 +572,7 @@ Implémenter summary query, counts exacts, offset/limit checked et trait Tx dans
|
||||
|
||||
### pre.005 — inspection PostgreSQL RawAccountState
|
||||
|
||||
Même vertical slice pour Account : pubkey/slot filters, ordre canonique, data length sans data bytes, counts exacts, offset/limit checked, façade et canaris cross-family.
|
||||
Même vertical slice pour Account : filtre exact `pubkey`, range slot inclusif, ordre canonique `(slot, pubkey, state_hash)`, `data_length_bytes` via `OCTET_LENGTH(data)` sans sélectionner `data`, counts exacts et page `LIMIT/OFFSET` dans une seule instruction SQL par direction. `RawAccountStateInspectionRead` est implémenté sur PostgreSQL puis dispatché par `Store`, ce qui porte l'inventaire symétrique à 12 capabilities RAW. Les quatre statements cursor/keyset Account restent strictement OFFSET-free et ne sont jamais réécrits. Le live proof opt-in couvre filtre pubkey, counts, asc/desc, offset et page vide profonde.
|
||||
|
||||
### pre.006 — composite Config + lifecycle Store + Overview
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/025-V0_3_8_STORE_DESK.md -->
|
||||
<!-- version: 7 -->
|
||||
<!-- version: 8 -->
|
||||
|
||||
# Validation v0.3.8 — Store Desk V1 RAW
|
||||
|
||||
@@ -358,4 +358,49 @@ unset KSP_LIVE_PG_URI
|
||||
```
|
||||
|
||||
Aucun SQL, contrat Store, runtime PostgreSQL ou comportement d'inspection de production n'est modifié par ce fix.
|
||||
## 20. Gate opérateur `pre.004-fix.001` et live proof PostgreSQL
|
||||
|
||||
Le rejeu opérateur sur `0.3.8-pre.4.fix.1` est entièrement vert :
|
||||
|
||||
```text
|
||||
General Rust rule audit: clean
|
||||
Rust export completeness audit: 0 candidate(s)
|
||||
KSP workspace Rust rule audit: clean
|
||||
Markdown table audit: clean (314 table(s), 697 file(s))
|
||||
cargo check --workspace: PASS
|
||||
cargo clippy --workspace --all-targets: PASS
|
||||
cargo test -p ksp-store-postgres-lib: PASS
|
||||
cargo test -p ksp-store-lib: PASS
|
||||
cargo check -p ksp-store-lib --no-default-features: PASS
|
||||
cargo test -p ksp-store-api: PASS
|
||||
```
|
||||
|
||||
Le live proof `postgres_raw_transaction_live` a ensuite été exécuté sur une base PostgreSQL dédiée vide. Il atteint réellement PostgreSQL 17 et passe :
|
||||
|
||||
```text
|
||||
KSP Store RawTransaction live proof: server major 17
|
||||
test pre_009_real_postgres_raw_transaction_vertical_slice_is_atomic_concurrent_and_recoverable ... ok
|
||||
```
|
||||
|
||||
`pre.004` est donc fermé sans réserve et `pre.005` peut ouvrir uniquement le vertical slice `RawAccountStateInspectionRead`.
|
||||
|
||||
## 21. `pre.005` — inspection PostgreSQL RawAccountState + façade Store
|
||||
|
||||
- [X] `workspace.package.version = 0.3.8-pre.5` ;
|
||||
- [X] `PostgresBackend` implémente `RawAccountStateInspectionRead` ;
|
||||
- [X] `Store` implémente le même trait avec guard network avant dispatch ;
|
||||
- [X] les inventaires RAW Store/PostgreSQL passent de 11 à 12 et restent exactement symétriques ;
|
||||
- [X] chaque direction d'inspection Account utilise une seule instruction SQL regroupant `filtered_count`, `total_count` conditionnel et page LATERAL ;
|
||||
- [X] `filtered_items` applique le filtre exact `pubkey` optionnel et le range slot inclusif ;
|
||||
- [X] `total_items` compte toute la famille `ksp_raw_account_states` et réutilise `filtered_count` lorsqu'aucun filtre n'est actif ;
|
||||
- [X] l'ordre inspection est canonique `(slot, pubkey, state_hash)` en ascendant ou descendant ;
|
||||
- [X] la page random-access utilise `LIMIT/OFFSET` uniquement dans le chemin inspection ;
|
||||
- [X] limit/offset non représentables par PostgreSQL sont rejetés avant acquisition du pool ;
|
||||
- [X] les quatre statements cursor/keyset Account historiques restent sans `OFFSET` ;
|
||||
- [X] le SQL d'inspection ne sélectionne jamais `account_row.data` et projette seulement `OCTET_LENGTH(account_row.data)` ;
|
||||
- [X] `RawAccountStateSummary` est reconstruit avec reference, lamports, owner, executable, rent epoch et data length uniquement ;
|
||||
- [X] longueurs, widths et décimaux hostiles sont rejetés sans écho de valeur ;
|
||||
- [X] une page vide obtenue par offset profond conserve les counts exacts ;
|
||||
- [X] le live proof Account opt-in couvre filtre pubkey, counts, ordre asc/desc, offset, data length et page vide profonde ;
|
||||
- [X] aucune migration, table, index, capability destructive Account, UI Desk ou protocole DataTables n'est ajouté.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user