4.9 KiB
0.2.1-pre.006-fix.001 — inventaire Config Desk et routing debug Transport ciblé
Base
Base attendue :
v0.2.1-pre.006
La validation utilisateur de pre.006 a confirmé :
cargo fmt --allpropre ;cargo check --workspacepropre ;cargo clippy --workspace --all-targetspropre ;cargo test -p ksp-config-lib: 95 unit tests + 5 ownership + 13 public API, propres ;cargo test -p ksp-onchain-transport-lib: 70 unit tests + 8 public API, propres ;cargo test -p ksp-core-lib: 14 unit tests + 3 public API + 2 workspace dependencies + 1 workspace logging, propres ;cargo test --workspaceéchoue uniquement surksp-app-config-desk::profiles::tests::profile_inventory_exposes_logging_default_and_available_profiles, qui attend encore un seul document profilé alors quecfg.std.transportest désormais le second ;- les audits
cargo treeConfig montrent la dépendance interne attendueksp-config-lib -> ksp-onchain-transport-lib, sans nouvelle dépendance externe volontaire ; le doublonsyn 2/3reste transitif.
Problème 1 — inventaire Profils Config Desk
Le panneau Profils est volontairement générique et parcourt les documents Config enregistrés qui exposent default_profile / profiles. Le test historique supposait cependant que seul cfg.std.logging possédait ce contrat et imposait inventory.len() == 1.
pre.006 ajoute légitimement cfg.std.transport, donc cette assertion est devenue obsolète alors que l'implémentation runtime se comporte correctement.
Correction
Le test devient profile_inventory_exposes_registered_standard_profile_documents et vérifie :
- présence de
cfg.std.logging; - présence de
cfg.std.transport; - pour chaque document retourné,
default_profileest non vide et appartient àprofile_ids.
Le test ne fige plus le nombre total de documents profilés, afin que l'ajout futur d'un autre document standard ne provoque pas la même régression artificielle.
Problème 2 — verbosité Transport pendant le développement actif
Le target ksp-onchain-transport-lib est désormais explicite et stable. Pendant le développement actif de 0.2.1, ses événements debug doivent pouvoir être inspectés sans relever toute la configuration Logging au niveau debug.
La solution retenue utilise la granularité déjà possédée par ksp-logging-lib :
default_filter = warn
console.filter.level = info
file.all.info = info
ksp-config-lib = info
ksp-logging-lib = info
ksp-app-config-desk = info
ksp-onchain-transport-lib = debug
file.onchain_transport.debug = debug / target ksp-onchain-transport-lib uniquement
Nouveau sink canonique :
output_id = file.onchain_transport.debug
path = transport/onchain/ksp-onchain-transport-debug.log
level = debug
targets = [ksp-onchain-transport-lib]
domains = [*]
Le target_filter Transport à debug autorise ces événements au niveau du takeover global. Les filtres de sortie maintiennent cependant la console et file.all.info à info; les événements Transport debug sont donc persistés uniquement dans le fichier dédié.
Aucun profil global debug n'est ajouté : cette option produirait inutilement davantage d'événements pour les autres crates.
Règle Logging
Ajout de DEP-LOG-012 : lorsqu'une seule crate/target nécessite temporairement debug/trace, KSP privilégie un target_filter ciblé et un sink dédié plutôt qu'un relèvement global du profil.
Cette règle complète KSP-APP-031 : la verbosité élevée reste temporaire pendant le développement/correctif de la crate concernée. La tranche finale pre.007 doit réévaluer le niveau Transport et le ramener à info/warn avant la stable, sauf justification opératoire explicite.
Le plan actif 008 est synchronisé avec cette décision.
Version
workspace.package.version passe à :
0.2.1-pre.6.fix.1
Le fix touche un test Rust participant au workspace et la configuration runtime Logging canonique ; le signal Cargo est donc incrémenté.
Fichiers modifiés
Cargo.toml
config/std.logging.json
crates/ksp-app-config-desk/unit_tests/profiles.rs
docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md
docs/rules/RULES_DEPENDENCIES.md
Fichier ajouté
deltas/0.2.1/pre.006-fix.001.md
ROADMAP.md, pre.006.md et les deltas historiques restent inchangés.
Validation requise après application
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-app-config-desk
cargo test -p ksp-config-lib
cargo test -p ksp-onchain-transport-lib
cargo test -p ksp-core-lib
cargo test --workspace
Aucun cargo tree supplémentaire n'est requis pour ce fix : aucune dépendance ni feature n'est modifiée.