3.9 KiB
Delta 0.2.5-pre.010-fix.003 — alignement audit Rust sur rustfmt et TODO prix offchain
1. Base et version
Base :
0.2.5-pre.010-fix.002
workspace.package.version = 0.2.5-pre.10.fix.2
Version technique cible :
workspace.package.version = 0.2.5-pre.10.fix.3
Identifiant de livraison :
0.2.5-pre.010-fix.003
Commit attendu après validation :
v0.2.5-pre.010-fix.003
Aucun tag stable n'est créé par ce fix et rel.001 reste bloqué jusqu'à validation complète.
2. Cause du fix
Après application de fix.002, l'opérateur a exécuté la séquence canonique :
cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo fmt a produit un ordre valide et canonique dans les façades, mais l'audit Python a ensuite signalé 52 violations RUST-FMT-107 parce qu'il imposait son propre tri alphabétique par symbole exporté.
Ce contrôle était incorrect : l'audit structurel ne doit pas réimplémenter un ordre de réexports différent de celui possédé par rustfmt.
Les contrôles Rust/Cargo du même checkpoint étaient par ailleurs verts : cargo check --workspace, Clippy, tests Wallet et tests workspace complets passent.
3. Correction de l'audit des réexports
RUST-FMT-107 est retiré de audit_rust_general_rules.py.
Le script continue de vérifier les contraintes structurelles que rustfmt ne possède pas :
pub use avant pub(crate) use
exactement une ligne vide entre les deux visibilités
aucune ligne vide à l'intérieur d'un bloc homogène
pas de grouped use/re-export
pas de glob
pas d'alias
réexports internes via self::
rustdoc adjacente
résolution crate-root via l'audit de complétude
En revanche, l'ordre intra-bloc des use/réexports est désormais explicitement délégué à :
cargo fmt --all
Le script ne tente plus de trier par symbole exporté ni de reproduire l'algorithme de rustfmt.
4. Règles Rust synchronisées
RULES_RUST.md précise désormais que :
rustfmt.tomletcargo fmt --allsont canoniques pour l'ordre interne desuse/réexports ;RUST-FMT-005n'impose pas son tri générique auxuse/réexports ;RUST-FMT-007ne possède que la structurepub/pub(crate)et l'espacement ;RUST-AUDIT-003interdit explicitement au script de réimplémenter un ordre concurrent à rustfmt.
5. TODO 0.2.11 ajouté au prompt 0.2.6
Le prompt prompts/011-V0_2_6_START_PROMPT.md contient maintenant un TODO durable :
0.2.11
après réalisation et validation de l'application spécialisée de visualisation
de prix offchain, intégrer cette capacité dans ksp-app-wallet-desk
Le TODO précise que 0.2.6 ne doit pas anticiper cette logique et que 0.2.11 devra réauditer la frontière de partage afin de ne pas dupliquer récupération, normalisation, cache ou contrats de prix dans Wallet Desk.
6. Périmètre
Ce fix ne modifie :
aucun fichier Rust
aucune API runtime
aucun wire .kspwallet
aucune dépendance
aucune primitive cryptographique
Le bump Cargo est requis parce que le script d'audit fait partie du toolchain de validation technique KSP.
7. Validation de préparation
Les scripts Python modifiés doivent passer :
python3 -m py_compile scripts/audit_rust_general_rules.py
python3 scripts/audit_rust_workspace_rules.py
La validation opérateur canonique doit impérativement conserver cargo fmt --all avant l'audit structurel afin de vérifier que le script accepte exactement l'état formaté par rustfmt.
8. Validation opérateur requise
cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-wallet-lib
cargo test --workspace
Les arbres de dépendances ne nécessitent pas d'être répétés pour ce fix : aucune dépendance n'est modifiée.