v0.3.4-pre.002

This commit is contained in:
2026-08-30 21:11:23 +02:00
parent 03ad0ba063
commit 6bd593f467
18 changed files with 710 additions and 46 deletions

View File

@@ -1,11 +1,11 @@
<!-- file: docs/plans/025-V0_3_4_STORE_POSTGRES_RAW_ACCOUNT_PLAN.md -->
<!-- version: 2 -->
<!-- version: 3 -->
# Plan `0.3.4` — Store/PostgreSQL `RawAccountState` + complétude RAW
## 1. Statut du gate `pre.001`
## 1. Statut de la release
`0.3.4-pre.001` est un gate de conception. Il ne crée **aucun** SQL V002, aucune table account et aucun repository account. Il fixe la forme physique et le séquencement nécessaires avant implémentation.
`0.3.4-pre.001` a figé le design. `0.3.4-pre.002` matérialise uniquement la fondation physique V002 : registry logique, deux tables, deux clés primaires et la FK observation -> state. Aucun repository account, aucun dispatch façade, aucun index métier et aucune contrainte de domaine complète ne sont ouverts dans cette tranche.
Base canonique auditée :
@@ -569,15 +569,17 @@ Remplacement du sizing tabulaire par des sous-sections éditables avec statut ex
### `pre.002` — Registry V002 et tables minimales
**Statut : planifié.**
**Statut : réalisé ; gate Cargo opérateur post-delta à rejouer.**
Budget cible : **15-20 min**. Ajouter le registry V002 et les deux tables `RawAccountState`/observation avec PK/FK de base, sans repository account ni dispatch façade.
Budget cible : **15-20 min**. V002 `raw_account_state` est enregistrée avec exactement cinq resources : deux tables, les PK `(pubkey, slot, state_hash)` / `(observation_key)` et la FK composite observation -> state. Aucun repository account ni dispatch façade n'est ajouté.
Le checksum resources calculable sur cet état intermédiaire est `30ac87496f1bb3805d816660891d7eab2127c599a636eb40c17ade5926311f55`. Il est **provisoire de prerelease** : `pre.003` ajoute encore les contraintes de domaine et l'index prévus, puis fige le checksum V002 final avant toute preuve live account. V000/V001 restent strictement inchangées.
### `pre.003` — Contraintes, index et schema compatibility V002
**Statut : planifié.**
Budget cible : **15-20 min**. Compléter les contraintes physiques, l'index de navigation, la schema compatibility et le checksum V002, sans avancer les repositories.
Budget cible : **15-20 min**. Compléter les contraintes physiques, l'index de navigation, la schema compatibility et figer le checksum V002 final, sans avancer les repositories. Cette tranche doit traiter explicitement la transition depuis l'état V002 intermédiaire de `pre.002` avant toute utilisation live persistante.
### `pre.004` — Mapping privé et lectures `get`

View File

@@ -1,11 +1,11 @@
<!-- file: docs/validation/021-V0_3_4_STORE_POSTGRES_RAW_ACCOUNT.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Validation `0.3.4` — Store/PostgreSQL `RawAccountState` + complétude RAW
## 1. Portée
Cette matrice est ouverte par `0.3.4-pre.001`. La tranche courante valide **le design et le sizing uniquement** ; elle n'affirme aucune présence de V002 ou d'implémentation account.
Cette matrice est ouverte par `0.3.4-pre.001`. La tranche courante `0.3.4-pre.002` matérialise uniquement la fondation V002 : registry, deux tables et PK/FK de base. Les contraintes de domaine, l'index, la compatibilité externe complète, les repositories et les quatre capabilities account restent volontairement pending.
Base :
@@ -133,18 +133,22 @@ observation_key family-local unique
## 7. Migration/schema V002
| Objet | Décision pre.001 | État |
|----------------------------------|---------------------------------------|-------------------------|
| V000 | immuable | PASS design |
| V001 | immuable | PASS design |
| V002 logical name | raw_account_state | PASS design |
| table state | ksp_raw_account_states | PASS design |
| table observation | ksp_raw_account_observations | PASS design |
| archive/tombstone account | aucune | PASS negative scope |
| index métier | (slot,pubkey,state_hash) | PASS design |
| index owner/provider/time/status | aucun | PASS negative scope |
| SQL/resource files | pas encore créés | PENDING pre.002/pre.003 |
| V002 checksum | inconnu tant que resources non créées | PENDING pre.003 |
| Objet | Décision / état physique | État |
|----------------------------------|--------------------------------------------------------------------------|---------------------|
| V000 | bytes/checksum inchangés | PASS |
| V001 | 40 resources + checksum inchangés | PASS |
| V002 logical name | `raw_account_state` | PASS pre.002 |
| table state | `ksp_raw_account_states` | PASS pre.002 |
| table observation | `ksp_raw_account_observations` | PASS pre.002 |
| PK state | `(pubkey,slot,state_hash)` | PASS pre.002 |
| PK observation | `(observation_key)` | PASS pre.002 |
| FK observation -> state | `(account_pubkey,account_slot,account_state_hash)` -> state composite PK | PASS pre.002 |
| contraintes domaine/fixed-width | non encore ajoutées | PENDING pre.003 |
| index métier | `(slot,pubkey,state_hash)` non encore ajouté | PENDING pre.003 |
| index owner/provider/time/status | aucun prévu | PASS negative scope |
| archive/tombstone account | aucune | PASS negative scope |
| V002 checksum intermédiaire | `30ac8749…26311f55` sur les 5 resources pre.002 | PROVISIONAL |
| V002 checksum final | après contraintes/index de pre.003 | PENDING pre.003 |
## 8. Idempotence et concurrence
@@ -267,8 +271,8 @@ Le test live account devra être opt-in/ignored, URI stdin, sans environnement n
| Tranche | Objet | État |
|---------|-------------------------------------------------------------------|---------|
| pre.001 | audit, kbot3, threat model, V002 design, sizing, plan/validation | CURRENT |
| pre.002 | V002 registry + deux tables + PK/FK de base, sans repository | PLANNED |
| pre.001 | audit, kbot3, threat model, V002 design, sizing, plan/validation | DONE |
| pre.002 | V002 registry + deux tables + PK/FK de base, sans repository | CURRENT |
| pre.003 | contraintes complètes, index, schema compatibility, checksum V002 | PLANNED |
| pre.004 | mapping privé state/observation + get reads + hostile rows | PLANNED |
| pre.005 | acquisition atomique state+observation + idempotence/conflict | PLANNED |
@@ -318,10 +322,10 @@ cargo tree --duplicates
Les preuves live restent séparées et explicitement `--ignored --nocapture`.
## 17. Verdict `pre.001`
## 17. Verdict `pre.002`
Design : **PASS**. Les audits Rust/Markdown de l'overlay sont propres.
Fondation V002 minimale : **PASS statique**. Le registry logique V002 expose exactement cinq resources et aucune surface repository/runtime account. Les audits Rust/Markdown applicables sont rejoués dans l'environnement d'assemblage.
Compilation/Clippy/tests post-overlay : **NON EXÉCUTÉS dans le conteneur d'assemblage**, faute d'exécutable `cargo`; ils restent à rejouer par l'opérateur.
Compilation/Clippy/tests Cargo post-delta : **NON EXÉCUTÉS dans le conteneur d'assemblage**, faute d'exécutable `cargo`; ils restent à rejouer par l'opérateur.
Implémentation V002/account : **PENDING**, volontairement non ouverte dans cette tranche.
Contraintes complètes/index/schema compatibility/checksum final : **PENDING `pre.003`**. Repository et capabilities account : **PENDING `pre.004+`**.