4.8 KiB
Delta v0.2.2-pre.007-fix.001
Base
Base attendue :
v0.2.2-pre.007
Version Cargo de la base :
0.2.2-pre.7
Ce fix modifie du Rust de test et synchronise donc le signal technique Cargo conformément à VER-ID-007 / VER-ID-010 :
0.2.2-pre.7.fix.1
Le delta historique deltas/0.2.2/pre.007.md reste inchangé conformément à KSP-REL-003 et VER-DELTA-007.
Motif du fix
La validation opérateur du 2026-08-18 a révélé deux défauts du nouveau smoke Transport de pre.007.
1. Clippy expect_used hors corps de test
cargo clippy --workspace --all-targets échoue sur deux expect() placés dans le helper devnet_pool() :
HttpEndpointUrl::parse(...).expect(...)
HttpTransportPool::new(...).expect(...)
Le workspace autorise les assertions/expect dans les corps de tests via sa configuration Clippy, mais le helper non annoté comme test reste soumis à expect_used = deny.
Correction : devnet_pool() retourne désormais ksp_core_lib::Result<HttpTransportPool> et propage explicitement l'erreur par match, sans ?, unwrap ni expect dans le helper.
2. Fixture live Token trop fragile
L'exécution opt-in du smoke Transport a atteint Devnet mais getTokenSupply a renvoyé :
onchain_transport.rpc_application_error
rpc_code = -32602
Le mint utilisé reste affiché par la documentation officielle courante, mais son état réel n'est donc pas une dépendance live suffisamment durable pour une gate de candidate KSP.
Correction : la branche Token du smoke utilise désormais :
getTokenAccountsByOwner
owner = System Program (Pubkey valide et stable)
selector = programId
programId = SPL Token canonique (Tokenkeg...)
config = absent
Une liste vide est acceptable. Le test vérifie le contexte RPC et la traversée du wrapper Token sans dépendre de l'existence d'un mint ou d'un token account Devnet particulier.
La documentation officielle getTokenAccountsByOwner confirme que le selector accepte programId et que la méthode cible Devnet.
Résultats opérateur de la base
Avant ce fix, l'opérateur a communiqué :
cargo fmt --all: OK ;cargo check --workspace: OK ;cargo clippy --workspace --all-targets: FAIL, uniquement les deuxexpect_usedci-dessus ;cargo test -p ksp-onchain-transport-lib: 127 unit + 13 public API + 7 release completeness, OK ; smoke ignoré par défaut ;cargo test -p ksp-config-lib: OK ;cargo test -p ksp-core-lib: OK ;cargo test -p ksp-app-config-desk: OK ;cargo test --workspace: OK ;- inspections
cargo treedemandées : exécutées ; - smoke Config -> Transport live : OK ;
- smoke Transport live : FAIL uniquement sur
getTokenSupplyavec RPC-32602.
Ces échecs empêchent pre.007 de devenir la base de rel.001 sans fix.
Fichiers modifiés
Cargo.toml
crates/ksp-onchain-transport-lib/tests/transport_devnet_smoke.rs
crates/ksp-onchain-transport-lib/README.md
crates/ksp-onchain-transport-lib/USAGE.md
docs/plans/009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md
docs/validation/004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md
Fichier ajouté
deltas/0.2.2/pre.007-fix.001.md
Aucun fichier supprimé.
Inchangé
Ce fix ne modifie pas :
- les 22 wrappers
0.2.2; - les DTOs publics ;
- les descriptors ou politiques retry ;
- Config ;
- les fixtures HTTP déterministes ;
- les canaries de complétude ;
- les dépendances/features Cargo ;
ROADMAP.md;CHANGELOG.md;- le prompt
0.2.3; - le delta historique
pre.007.md.
Le périmètre reste strictement la correction de la candidate pre.007.
Validations exécutées pendant la préparation
Contrôles statiques exécutés :
- version Cargo
0.2.2-pre.7.fix.1; - versions de tous les fichiers modifiés incrémentées ;
- aucun
expect()dansdevnet_pool(); - absence du mint d'exemple
3wyAj7...dans le smoke corrigé ; - présence de
getTokenAccountsByOwner+ selectorProgramId; - aucune dépendance/feature ajoutée ;
- payload du fix limité aux sept fichiers listés ;
- archive réextraite et comparée au payload préparé.
Cargo n'est pas disponible dans l'environnement de préparation.
Validations opérateur à rejouer
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-onchain-transport-lib
cargo test --workspace
cargo test -p ksp-onchain-transport-lib --test transport_devnet_smoke -- --ignored --nocapture
cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture
Résultat attendu :
clippy propre
127 unit + 13 public API + 7 release completeness OK
smoke Transport live OK
smoke Config -> Transport live OK
Si ces gates passent, 0.2.2-rel.001 peut rester strictement publicationnel comme prévu.