3.9 KiB
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 :
- une variable
namedécodée mais non utilisée dans l’inventaire des indexes uniques ; - cinq usages de l’opérateur
?dansexpected_constraint_definition, interdits par la policy workspaceclippy::question_mark_used = deny; - le test opt-in
postgres_foundation_live.rsréférence encore l’ancien fichier monolithique V000 supprimé parfix.001.
Un warning Clippy de test (assert!(false, ...)) est également supprimé afin de garder le gate sans bruit.
Version workspace après application :
0.3.3-pre.3.fix.3
Identifiant de livraison :
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 :
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 :
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.tomlcrates/ksp-store-postgres-lib/README.mdcrates/ksp-store-postgres-lib/USAGE.mdcrates/ksp-store-postgres-lib/src/schema.rscrates/ksp-store-postgres-lib/tests/postgres_foundation_live.rscrates/ksp-store-postgres-lib/unit_tests/schema.rsdocs/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 :
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 :
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.