Files
khadhroony-solana-project/deltas/0.2.5/pre.010-fix.003.md

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.toml et cargo fmt --all sont canoniques pour l'ordre interne des use/réexports ;
  • RUST-FMT-005 n'impose pas son tri générique aux use/réexports ;
  • RUST-FMT-007 ne possède que la structure pub / pub(crate) et l'espacement ;
  • RUST-AUDIT-003 interdit 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.