v0.3.3-pre.010
This commit is contained in:
112
deltas/0.3.3/pre.010.md
Normal file
112
deltas/0.3.3/pre.010.md
Normal file
@@ -0,0 +1,112 @@
|
||||
<!-- file: deltas/0.3.3/pre.010.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.3.3-pre.010` — hardening/completeness RawTransaction
|
||||
|
||||
## 1. Base acquise
|
||||
|
||||
Base opérateur :
|
||||
|
||||
```text
|
||||
0.3.3-pre.9.fix.6
|
||||
```
|
||||
|
||||
Le gate standard est entièrement propre et la preuve opt-in `postgres_raw_transaction_live` passe sur PostgreSQL 17. `pre.009`, corrections incluses, est donc fermée.
|
||||
|
||||
## 2. Version
|
||||
|
||||
```text
|
||||
workspace.package.version = 0.3.3-pre.10
|
||||
```
|
||||
|
||||
## 3. Nature de la tranche
|
||||
|
||||
`pre.010` est une tranche de hardening uniquement. Aucun fichier de production, aucune ressource SQL et aucune migration ne sont modifiés.
|
||||
|
||||
Elle ajoute des canaris de complétude qui figent la vertical slice acquise avant le gate technique final.
|
||||
|
||||
## 4. Conformance des six capacités
|
||||
|
||||
Les tests exigent exactement une implémentation de chacun des traits suivants sur `PostgresBackend` puis sur `Store` :
|
||||
|
||||
```text
|
||||
RawTransactionRead
|
||||
RawTransactionWrite
|
||||
RawTransactionObservationRead
|
||||
RawTransactionObservationWrite
|
||||
RawTransactionRetentionRead
|
||||
RawTransactionRetentionWrite
|
||||
```
|
||||
|
||||
Le hardening refuse simultanément toute ouverture prématurée des quatre capacités `RawAccountState`/observation et toute ressource de migration `ksp_raw_account*`.
|
||||
|
||||
## 5. Hardening SQL privé
|
||||
|
||||
Le canari backend fige les propriétés physiques utiles à la vertical slice :
|
||||
|
||||
- keyset ASC/DESC sur `(slot, signature)` ;
|
||||
- `LIMIT` physique sans `OFFSET` ;
|
||||
- `FOR UPDATE` pour les chemins concurrents ;
|
||||
- `ON CONFLICT DO NOTHING` pour l’idempotence canonique ;
|
||||
- archive payload séparée ;
|
||||
- absence de `SELECT *`, `ON CONFLICT DO UPDATE`, `processing_state`, `batch_size` ou `priority`.
|
||||
|
||||
Ce scan ne crée aucune policy worker dans Store.
|
||||
|
||||
## 6. Mapping d’erreurs exhaustif
|
||||
|
||||
Les 18 variantes actuelles de `PostgresBackendErrorKind` sont toutes exercées :
|
||||
|
||||
- dans `ksp-store-postgres-lib`, vers le contrat `ksp-store-api` ;
|
||||
- dans `ksp-store-lib`, vers les codes stables possédés par la façade.
|
||||
|
||||
Le canari backend vérifie en plus que le rendu de l’erreur mappée ne contient ni URI PostgreSQL ni SQL.
|
||||
|
||||
## 7. Migrations
|
||||
|
||||
Inchangées :
|
||||
|
||||
```text
|
||||
V000 d29068b8c13b9dc0cc9ef6aaadd0fa12d41e0fe4c56541a1118c4bfc846a1450
|
||||
V001 31488cda2f08f3f46c4cdbdbb6c18c243662fada02eac4487040c8735d72cc51
|
||||
```
|
||||
|
||||
V001 reste à 40 ressources.
|
||||
|
||||
## 8. Fichiers modifiés
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
crates/ksp-store-postgres-lib/tests/hardening_completeness.rs
|
||||
crates/ksp-store-postgres-lib/unit_tests/runtime.rs
|
||||
crates/ksp-store-lib/tests/hardening_completeness.rs
|
||||
crates/ksp-store-lib/unit_tests/store.rs
|
||||
docs/plans/024-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION_PLAN.md
|
||||
docs/validation/020-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION.md
|
||||
deltas/0.3.3/pre.010.md
|
||||
```
|
||||
|
||||
Aucune suppression.
|
||||
|
||||
## 9. Gate opérateur attendu
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
python3 scripts/audit_rust_workspace_rules.py
|
||||
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.3
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets
|
||||
cargo test -p ksp-store-api
|
||||
cargo test -p ksp-store-lib
|
||||
cargo test -p ksp-store-postgres-lib
|
||||
cargo test -p ksp-config-lib
|
||||
cargo check -p ksp-store-lib --no-default-features
|
||||
```
|
||||
|
||||
Aucun nouveau live PostgreSQL n’est requis en `pre.010`, car le runtime et les migrations sont byte-identiques à la base live validée `pre.009-fix.006`.
|
||||
|
||||
## 10. Suite si le gate est vert
|
||||
|
||||
```text
|
||||
0.3.3-pre.011 — gate technique final
|
||||
```
|
||||
Reference in New Issue
Block a user