Files
khadhroony-solana-project/deltas/0.2.1/pre.006-fix.001.md

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 --all propre ;
  • cargo check --workspace propre ;
  • cargo clippy --workspace --all-targets propre ;
  • 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 sur ksp-app-config-desk::profiles::tests::profile_inventory_exposes_logging_default_and_available_profiles, qui attend encore un seul document profilé alors que cfg.std.transport est désormais le second ;
  • les audits cargo tree Config montrent la dépendance interne attendue ksp-config-lib -> ksp-onchain-transport-lib, sans nouvelle dépendance externe volontaire ; le doublon syn 2/3 reste 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_profile est 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.