v0.3.2-pre.009

This commit is contained in:
2026-08-29 22:00:20 +02:00
parent 80eea82398
commit 9ec4f26874
6 changed files with 753 additions and 35 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/023-V0_3_2_STORE_POSTGRES_FOUNDATION_PLAN.md -->
<!-- version: 10 -->
<!-- version: 11 -->
# Plan `0.3.2` — Store/PostgreSQL runtime foundation
@@ -1063,7 +1063,57 @@ Aucun hook test-only n'est ajouté au runtime de production et aucune table RAW
### `pre.009` — Hardening/completeness/dependency matrix
Inputs hostiles, redaction, no-env, exact exports/modules, external backend compatibility, `--no-default-features`, graphes/features/duplicates, non-régression API.
Base requise : `0.3.2-pre.008` avec gate déterministe vert et preuve PostgreSQL réelle verte. Le 29 août 2026, le smoke opt-in a validé la fondation sur PostgreSQL 17 : bootstrap initial, réouverture idempotente, concurrence sous advisory lock, corruption/restauration checksum, rollback transactionnel, health `Ready` et fermeture bornée.
Cette tranche reste un hardening de preuve : aucun `src/**`, aucune migration SQL et aucune dépendance runtime ne doivent être modifiés sauf découverte d'un défaut réel par les canaris.
Canaris ajoutés :
```text
ksp-store-lib
modules privés exacts
84 exports crate-root exacts
manifest exact : logging + Store API + backend optionnel
feature postgres default exacte
URI hostile/secret canary redacted dans Settings et Error
même preuve avec et sans default features
aucune lecture Config/env/PG*/.pgpass
aucun type PostgreSQL physique ou SQL dans la façade
ksp-store-postgres-lib
modules privés exacts
7 exports bridge exacts
manifest physique exact
URI malformed/surdimensionnée/hostaddr-only/options rejetées avant I/O
canary secret absent des Debug/errors publics
PostgresBackendError ne peut retenir que kind + phase statique
PoolError::Backend perd explicitement le texte remote
aucune lecture env/PG*/.pgpass ni fichiers TLS libpq implicites
aucune capability RawTransaction/RawAccount implémentée
V000 reste metadata-only
```
La compatibilité backend externe reste prouvée par `ksp-store-api/tests/external_backend.rs`; `pre.009` la rejoue sans modifier `ksp-store-api`.
Gate ciblé 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.2
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-store-api
cargo test -p ksp-store-postgres-lib
cargo test -p ksp-store-lib
cargo test -p ksp-store-lib --no-default-features
cargo test -p ksp-config-lib
cargo check -p ksp-store-lib --no-default-features
cargo tree -p ksp-store-lib --edges normal
cargo tree -p ksp-store-lib -e features
cargo tree -p ksp-store-postgres-lib --edges normal
cargo tree --duplicates
```
### `pre.010` — Gate technique final