3.8 KiB
Delta 0.3.2-pre.002-fix.001 — ancrage compile-time des targets de tracing
1. Déclencheur
Le gate opérateur de pre.002 est fonctionnellement vert :
cargo fmt --all PASS
audit Rust général / exports / workspace PASS
audit Markdown PASS — 186 tables / 125 files
cargo check --workspace PASS avec warnings
cargo clippy --workspace --all-targets PASS avec warnings
cargo test -p ksp-store-api PASS
cargo test -p ksp-store-lib PASS
cargo test -p ksp-store-postgres-lib PASS
cargo check -p ksp-store-lib --no-default-features PASS
cargo tree Store facade/backend fourni et conforme
L'écart est limité aux deux nouveaux scaffolds :
unused import: self::constants::TRACING_TARGET
constant TRACING_TARGET is never used
Le même défaut existe dans ksp-store-lib et ksp-store-postgres-lib.
2. Diagnostic
pre.002 ne contient encore aucun comportement Store/PostgreSQL et n'ajoute volontairement pas ksp-logging-lib. Le simple réexport crate-private du TRACING_TARGET obligatoire ne possède donc aucun site d'usage réel à cette tranche, ce qui produit les warnings observés.
Supprimer les targets n'est pas possible : l'audit workspace impose déjà :
KSP-TRACE-102 — constants.rs possède le TRACING_TARGET canonique
KSP-TRACE-103 — le crate root réexporte TRACING_TARGET
Ajouter un faux log, assouplir les règles ou poser un allow(dead_code/unused_imports) masquerait le staging réel.
3. Correction
Les deux targets et leurs réexports sont conservés à l'identique. Chaque crate ajoute uniquement un canari compile-time privé :
const _: &str = TRACING_TARGET;
Ce canari :
marque le réexport et la constante comme réellement consommés par le scaffold compilé
ne crée aucun comportement runtime
n'émet aucun log artificiel
n'ajoute pas ksp-logging-lib
n'assouplit aucun lint
préserve KSP-TRACE-102/103
Les tests de frontière figent aussi la présence de ce canari pour empêcher le retour des warnings tant que le premier comportement réel n'a pas remplacé cet usage de scaffold.
4. Version
Le correctif touche des sources Rust ; conformément à VER-ID-007 et VER-ID-010, la version workspace devient :
0.3.2-pre.2.fix.1
Identifiant de livraison :
0.3.2-pre.002-fix.001
5. Documentation durable
Le plan 023 et la validation 019 sont synchronisés :
graphe pre.002 confirmé par le gate opérateur
--no-default-features confirmé
cycle backend absent confirmé
warning TRACING_TARGET documenté puis corrigé par fix.001
TRACING_TARGET conservé et ancré compile-time sans faux log
Le delta pre.002.md n'est pas réécrit : une livraison déjà émise reste immuable et son correctif est tracé séparément.
6. Hors scope
Aucun changement de périmètre fonctionnel :
pas de StoreSettings
pas de Store runtime public
pas de Config std.store
pas de ksp-logging-lib
pas de Tokio/tokio-postgres/Deadpool/Rustls
pas de connexion PostgreSQL
pas de migration
pas de SQL métier
7. Validation opérateur requise
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-lib
cargo test -p ksp-store-postgres-lib
cargo check -p ksp-store-lib --no-default-features
Le passage à pre.003 reste interdit si un warning ou un nouvel écart apparaît.