3.6 KiB
Delta 0.2.14-pre.005-fix.001 — faux positif du canari logging
1. Base requise
Ce correctif s'applique exclusivement après :
0.2.14-pre.005
Le gate opérateur du 28 août 2026 confirme :
cargo fmt --all PASS
audit Rust général / exports / workspace PASS
audit Markdown PASS — 173 tables / 122 fichiers
cargo check --workspace PASS
cargo clippy --workspace --all-targets PASS
cargo test -p ksp-program-api PASS — 18 tests Rust
cargo test --workspace FAIL — ksp-logging-lib/tests/ownership.rs
L'unique échec observé est :
crates/ksp-program-api/tests/release_completeness.rs bypasses ksp-logging-lib via tracing
2. Diagnostic
release_completeness.rs doit vérifier que les sources de production Program API ne contiennent aucun chemin direct vers tracing. Le canari écrivait cependant lui-même ce chemin sous forme de chaîne littérale dans sa liste de motifs interdits.
Le scanner workspace de ksp-logging-lib/tests/ownership.rs inspecte tous les fichiers Rust des autres crates, tests d'intégration compris, et recherche textuellement ce chemin. Il classait donc le motif de test lui-même comme un bypass alors qu'aucune dépendance, importation ou utilisation de tracing n'existe dans ksp-program-api.
Le graphe normal observé reste :
ksp-program-api
├── ksp-core-lib
└── ksp-interface-lib
└── ksp-core-lib
3. Correction
Le canari conserve exactement la même interdiction sur les sources de production, mais construit désormais le motif recherché à partir de deux fragments. Son propre fichier ne contient donc plus le chemin direct littéral que le scanner logging doit légitimement refuser.
Aucune règle logging n'est contournée ou affaiblie. Le scanner de ksp-logging-lib reste inchangé.
Comme un fichier .rs est modifié, VER-ID-007 et VER-ID-010 imposent :
workspace.package.version = 0.2.14-pre.5.fix.1
La livraison est :
0.2.14-pre.005-fix.001
4. Fichiers modifiés
Cargo.toml
crates/ksp-program-api/tests/release_completeness.rs
5. Fichier ajouté
deltas/0.2.14/pre.005-fix.001.md
6. Fichiers volontairement inchangés
crates/ksp-program-api/src/**
crates/ksp-program-api/Cargo.toml
crates/ksp-program-api/tests/security_hardening.rs
crates/ksp-logging-lib/**
docs/plans/**
docs/validation/**
README.md
ROADMAP.md
CHANGELOG.md
prompts/**
7. Scope négatif
Ce fix n'ajoute aucun :
contrat Program
trait ou type public
dependency
logging runtime
registry
descriptor
codec
payload D3
preparer
8. Validations de génération
Les audits statiques disponibles dans l'environnement de génération doivent rester propres. Cargo n'y est pas disponible ; aucun PASS Cargo n'est revendiqué par ce delta.
9. Gate opérateur attendu
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.2.14
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-program-api
cargo test -p ksp-logging-lib --test ownership
cargo test --workspace
cargo tree -p ksp-program-api --edges normal
cargo tree --duplicates
Si ce gate est vert, pre.005 est considéré corrigé et pre.006 peut ouvrir le gate technique final sans développement fonctionnel.