108 lines
3.9 KiB
Markdown
108 lines
3.9 KiB
Markdown
<!-- file: deltas/0.3.3/pre.003-fix.003.md -->
|
||
<!-- version: 1 -->
|
||
|
||
# Delta `0.3.3-pre.003-fix.003` — clôture Clippy et relocalisation du canari live V000
|
||
|
||
## 1. Base et objectif
|
||
|
||
Ce correctif s’applique **par-dessus `0.3.3-pre.003-fix.002`**. Son gate opérateur confirme que les audits Rust/Markdown, `cargo check` jusqu’au backend et les tests Config/ownership sont désormais propres, mais révèle trois défauts résiduels strictement locaux :
|
||
|
||
1. une variable `name` décodée mais non utilisée dans l’inventaire des indexes uniques ;
|
||
2. cinq usages de l’opérateur `?` dans `expected_constraint_definition`, interdits par la policy workspace `clippy::question_mark_used = deny` ;
|
||
3. le test opt-in `postgres_foundation_live.rs` référence encore l’ancien fichier monolithique V000 supprimé par `fix.001`.
|
||
|
||
Un warning Clippy de test (`assert!(false, ...)`) est également supprimé afin de garder le gate sans bruit.
|
||
|
||
Version workspace après application :
|
||
|
||
```text
|
||
0.3.3-pre.3.fix.3
|
||
```
|
||
|
||
Identifiant de livraison :
|
||
|
||
```text
|
||
0.3.3-pre.003-fix.003
|
||
```
|
||
|
||
## 2. Correctifs
|
||
|
||
### 2.1 Introspection catalogue
|
||
|
||
Le nom d’index décodé mais inutilisé est explicitement marqué `_name`. Le comportement reste inchangé : tout index unique externe non adossé à une contrainte reste incompatible.
|
||
|
||
### 2.2 Policy Clippy `question_mark_used`
|
||
|
||
`expected_constraint_definition` conserve exactement sa sémantique `Option<String>`, mais remplace les cinq propagations `?` par des `match` explicites retournant `None` lorsque la ressource SQL ne peut pas être découpée selon le contrat attendu.
|
||
|
||
### 2.3 Canari unitaire
|
||
|
||
L’assertion constante `assert!(false, ...)` est remplacée par une assertion sur `resource.is_some()`, puis un `match` non paniquant pour satisfaire simultanément le canari et la policy KSP.
|
||
|
||
### 2.4 Test PostgreSQL live V000
|
||
|
||
Le `include_str!` du test opt-in suit maintenant le déplacement effectué dans `fix.001` :
|
||
|
||
```text
|
||
crates/ksp-store-postgres-lib/migrations/v000_bootstrap/tables/001_ksp_store_schema_migrations.sql
|
||
```
|
||
|
||
Aucun comportement live supplémentaire n’est ajouté.
|
||
|
||
### 2.5 Documentation backend
|
||
|
||
Le README et l’USAGE du backend sont réconciliés avec l’arborescence versionnée introduite par `fix.001`; ils ne présentent plus les anciens fichiers monolithiques supprimés comme artefacts actifs.
|
||
|
||
## 3. Invariants inchangés
|
||
|
||
Aucune ressource SQL n’est modifiée. Les checksums restent :
|
||
|
||
```text
|
||
V000 d29068b8c13b9dc0cc9ef6aaadd0fa12d41e0fe4c56541a1118c4bfc846a1450
|
||
V001 31488cda2f08f3f46c4cdbdbb6c18c243662fada02eac4487040c8735d72cc51
|
||
```
|
||
|
||
Le contrat `schema_autocreate` / `schema_autoupdate`, l’introspection physique, le binding réseau et les 40 ressources V001 ne changent pas.
|
||
|
||
## 4. Fichiers modifiés
|
||
|
||
- `Cargo.toml`
|
||
- `crates/ksp-store-postgres-lib/README.md`
|
||
- `crates/ksp-store-postgres-lib/USAGE.md`
|
||
- `crates/ksp-store-postgres-lib/src/schema.rs`
|
||
- `crates/ksp-store-postgres-lib/tests/postgres_foundation_live.rs`
|
||
- `crates/ksp-store-postgres-lib/unit_tests/schema.rs`
|
||
- `docs/validation/020-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION.md`
|
||
|
||
## 5. Fichier ajouté
|
||
|
||
- `deltas/0.3.3/pre.003-fix.003.md`
|
||
|
||
## 6. Suppressions
|
||
|
||
Aucune suppression supplémentaire. Les suppressions de `fix.001` restent acquises :
|
||
|
||
```text
|
||
crates/ksp-store-postgres-lib/migrations/V000__bootstrap.sql
|
||
crates/ksp-store-postgres-lib/migrations/V001__raw_transaction.sql
|
||
```
|
||
|
||
## 7. Gate opérateur
|
||
|
||
Après extraction par-dessus `fix.002` :
|
||
|
||
```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
|
||
```
|
||
|
||
Le correctif n’est validé qu’après gate opérateur entièrement vert.
|