# Delta `0.3.3-pre.003-fix.002` — correctif compilation et ownership du contrat PostgreSQL ## 1. Base et objectif Ce correctif s’applique **par-dessus `0.3.3-pre.003-fix.001`**. Le gate opérateur de `fix.001` a confirmé que les audits Rust/Markdown étaient propres, mais a échoué sur deux défauts localisés : 1. `schema.rs` transmettait un `&str` directement dans deux slices de paramètres `tokio-postgres`, alors que le cast vers `&(dyn ToSql + Sync)` nécessite ici un `&&str` ; 2. cinq constantes internes du contrat de colonnes commençaient par `KSP_`, namespace que les canaris Config réservent aux variables d’environnement runtime, ce qui provoquait à la fois un refus d’ownership Store et une fausse exigence `.env.example`. Version workspace après application : ```text 0.3.3-pre.3.fix.2 ``` Identifiant de livraison : ```text 0.3.3-pre.003-fix.002 ``` ## 2. Correctifs ### 2.1 Paramètres catalogue `tokio-postgres` Les deux appels concernés deviennent : ```text transaction.query(UNEXPECTED_CONSTRAINTS_SQL, &[&table]) transaction.query(UNIQUE_INDEXES_SQL, &[&table]) ``` Aucune requête SQL ni logique d’introspection n’est modifiée. ### 2.2 Namespace `KSP_` réservé à Config Les constantes privées suivantes sont renommées sans changer leur contenu : ```text KSP_STORE_SCHEMA_MIGRATIONS_COLUMNS -> STORE_SCHEMA_MIGRATIONS_COLUMNS KSP_STORE_IDENTITY_COLUMNS -> STORE_IDENTITY_COLUMNS KSP_RAW_TRANSACTIONS_COLUMNS -> RAW_TRANSACTIONS_COLUMNS KSP_RAW_TRANSACTION_OBSERVATIONS_COLUMNS -> RAW_TRANSACTION_OBSERVATIONS_COLUMNS KSP_RAW_TRANSACTION_ARCHIVE_PAYLOADS_COLUMNS -> RAW_TRANSACTION_ARCHIVE_PAYLOADS_COLUMNS ``` Le test ownership n’est pas assoupli et `.env.example` n’est pas pollué par de faux noms runtime. ## 3. Invariants inchangés Ce fix ne modifie aucune ressource SQL. L’arborescence V000/V001, l’ordre embedded, le binding réseau et le contrat `Compatible/Missing/Incompatible` restent inchangés. Checksums attendus inchangés : ```text V000 d29068b8c13b9dc0cc9ef6aaadd0fa12d41e0fe4c56541a1118c4bfc846a1450 V001 31488cda2f08f3f46c4cdbdbb6c18c243662fada02eac4487040c8735d72cc51 ``` ## 4. Fichiers modifiés - `Cargo.toml` - `crates/ksp-store-postgres-lib/src/schema.rs` - `docs/validation/020-V0_3_3_STORE_POSTGRES_RAW_TRANSACTION.md` ## 5. Fichier ajouté - `deltas/0.3.3/pre.003-fix.002.md` ## 6. Suppressions Aucune suppression supplémentaire dans `fix.002`. Les deux suppressions demandées par `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 du delta par-dessus `fix.001` : ```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 ne doit être considéré validé qu’après gate Cargo opérateur vert.