9.6 KiB
Delta v0.2.1-pre.007
Base
Base attendue :
v0.2.1-pre.006-fix.002
Cette base a été validée localement par l'opérateur le 2026-08-17 avec :
cargo fmt --all;cargo check --workspace;cargo clippy --workspace --all-targets;cargo test -p ksp-onchain-transport-lib;cargo test -p ksp-app-config-desk;cargo test -p ksp-config-lib;cargo test -p ksp-core-lib;cargo test --workspace.
Le test Transport renforcé contre la fuite d'URL dans les sources reqwest::Error passe également sur cette base.
Version Cargo cible :
0.2.1-pre.7
Objectif
Fermer la dernière prerelease fonctionnelle de 0.2.1 sans rouvrir le périmètre HTTP :
- revérifier la matrice officielle Solana ;
- figer la complétude
52 + 14et la partition4 / 22 / 11 / 15par des canaries publiques ; - fournir un smoke Devnet opt-in de bout en bout Config -> Transport ;
- produire le README et le guide d'utilisation durables de Transport ;
- remettre la baseline Logging Transport à
infoavant stable ; - absorber les écarts documentaires réservés par l'audit complet de
pre.006-fix.002; - produire la matrice de validation finale et le prompt de démarrage
0.2.2; - préparer un
rel.001strictement publicationnel.
Aucune cinquième méthode HTTP typée n'est ajoutée dans cette tranche.
Revérification officielle HTTP Solana
La documentation officielle Solana a été revérifiée le 2026-08-17 :
https://solana.com/docs/rpc/http
https://solana.com/docs/rpc/deprecated/confirmtransaction
Le résultat reste compatible avec la matrice acquise :
52 méthodes HTTP courantes
14 méthodes historiques Deprecated
L'index courant confirme également le transport JSON-RPC 2.0 sur HTTP POST avec Content-Type: application/json.
Les 14 méthodes historiques restent représentées dans KSP comme Deprecated / Removed / Historical et ne sont pas simulées comme appelables.
Canaries de complétude de release
Nouveau test public :
crates/ksp-onchain-transport-lib/tests/release_completeness.rs
Il fige depuis l'API publique :
current == 52
historical == 14
coverage == 4 / 22 / 11 / 15
V0_2_1 == getBalance/getGenesisHash/getHealth/getVersion
historical => Deprecated + Removed + Historical + NotApplicable
La candidate déclare désormais 80 tests Transport.
La surface raw/générique execute_standard_rpc() reste disponible mais ne compte pas comme couverture typée des 48 méthodes reportées à 0.2.2–0.2.4.
Smoke Devnet opt-in Config -> Transport
Nouveau test :
crates/ksp-config-lib/tests/transport_devnet_smoke.rs
Il est volontairement :
#[ignore = "opt-in live Solana Devnet smoke; performs external network requests"]
Le chemin validé est :
ConfigFileRegistry::defaults()
-> cfg.std.transport
-> profile devnet_public
-> ConfigEnvironment
-> ResolvedTransportConfig
-> HttpTransportSettings
-> HttpTransportPool
-> getHealth
-> getGenesisHash
-> getVersion
-> getBalance(System Program)
Transport ne lit donc toujours pas directement l'environnement.
Le test Config nécessite Tokio uniquement comme dev-dependency local :
[dev-dependencies]
tokio = { workspace = true, features = ["macros", "rt"] }
La candidate déclare 114 tests Config, dont cet unique smoke Devnet ignored.
Exécution opt-in :
cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture
Un incident ou rate-limit du RPC public Devnet reste un signal externe à analyser ; les gates reproductibles restent les tests déterministes par défaut.
Logging Transport avant stable
Le sink dédié introduit pendant le développement est conservé, mais sa baseline revient de debug à info conformément à la politique de clôture :
output_id : file.onchain_transport.info
path : transport/onchain/ksp-onchain-transport.log
target : ksp-onchain-transport-lib
level : info
La console et le fichier général restent à info. Un niveau debug/trace ciblé peut être réactivé temporairement via Config lors d'un futur développement, puis doit être refermé avant publication stable.
Documentation durable Transport
Nouveaux documents :
crates/ksp-onchain-transport-lib/README.md
crates/ksp-onchain-transport-lib/USAGE.md
Ils documentent :
- responsabilités et firewall de dépendances ;
- registre
52 current + 14 historical; - différence raw/générique vs couverture typée ;
- quatre canaris
0.2.1; - pool/routing/admission/résilience ;
- retry/no-resend ;
- sécurité des URLs et sources
reqwest; - target Logging explicite ;
- construction directe ou via Config ;
- snapshots et smoke Devnet opt-in.
Normalisation documentaire issue de l'audit complet
Les écarts purement documentaires réservés par pre.006-fix.002 sont absorbés ici :
FILE-GEN-003décrit désormaisbindings/etgen/comme artefacts générés/reconstructibles ignorés par défaut, et non comme convention encore future ;crates/ksp-config-lib/README.mdne présente plusksp-app-config-deskcomme future ;- l'inventaire des composants décrit
0.2.1comme foundation HTTP + registre52+14+ quatre wrappers canari, et non comme surface typed HTTP complète ; - les index docs/plans/validation/prompts sont synchronisés avec les nouveaux livrables ;
- le ROADMAP conserve uniquement l'état synthétique de la candidate et reste
[/]jusqu'à la publication stable.
Les prompts et deltas historiques consommés restent immuables même lorsqu'ils décrivent l'état de leur époque.
Matrice de validation finale
Nouveau document :
docs/validation/003-V0_2_1_ONCHAIN_HTTP.md
Il regroupe les critères de clôture, les preuves acquises, les commandes Cargo/cargo-tree attendues et les conditions de passage à rel.001.
Prompt de reprise 0.2.2
Nouveau prompt :
prompts/007-V0_2_2_START_PROMPT.md
Il ouvre 0.2.2 — HTTP Accounts + Tokens + Cluster par un nouveau pre.001 d'audit/brainstorming/sizing et conserve la partition nominale actuelle de 22 méthodes :
Accounts : 5
Tokens : 5
Cluster : 12
Il exige une revérification officielle du jour avant toute implémentation lourde et rappelle que l'appel raw ne vaut jamais couverture typée.
Préparation de rel.001
CHANGELOG.md n'est volontairement pas modifié dans cette prerelease. Si la candidate passe les validations opérateur, rel.001 doit rester minimal :
workspace.package.version -> 0.2.1
ROADMAP : 0.2.1 -> [X]
CHANGELOG : synthèse stable 0.2.1
plan 008 / validation 003 : statut clôturé + preuves opérateur
deltas/0.2.1/rel.001.md
commit v0.2.1-rel.001
tag v0.2.1
Aucune nouvelle fonctionnalité HTTP ne doit être introduite dans rel.001.
Fichiers ajoutés
crates/ksp-config-lib/tests/transport_devnet_smoke.rs
crates/ksp-onchain-transport-lib/README.md
crates/ksp-onchain-transport-lib/USAGE.md
crates/ksp-onchain-transport-lib/tests/release_completeness.rs
docs/validation/003-V0_2_1_ONCHAIN_HTTP.md
prompts/007-V0_2_2_START_PROMPT.md
deltas/0.2.1/pre.007.md
Fichiers modifiés
Cargo.toml
ROADMAP.md
config/std.logging.json
crates/ksp-config-lib/Cargo.toml
crates/ksp-config-lib/README.md
docs/000-README.md
docs/architecture/004-COMPONENT_INVENTORY.md
docs/plans/000-README.md
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md
docs/rules/FILE_CONTRACTS.md
docs/validation/000-README.md
prompts/000-README.md
Aucun ancien delta et aucun CHANGELOG.md ne sont modifiés.
Validation statique de génération
Effectuée dans le sandbox :
- comparaison différentielle avec
pre.006-fix.002; - parsing de tous les TOML et JSON du workspace ;
- validation Draft 2020-12 de
std.logging.json,std.transport.jsonet de l'exemple Transport contre leurs schemas ; - contrôle des headers et incréments de version des fichiers modifiés ;
- contrôle de l'unique fin de ligne des fichiers livrés ;
- contrôle des lignes Rust/TOML <= 160 colonnes ;
- contrôle des fences Markdown et des liens Markdown relatifs des fichiers modifiés ;
- confirmation que les anciens deltas sont byte-for-byte inchangés ;
- contrôle de la baseline Logging Transport
info; - comptage statique de 80 tests Transport et 114 tests Config, dont un smoke Config
ignored; - contrôle des tableaux de registre Rust
[52]et[14].
Non exécutées dans le sandbox : cargo, rustc et rustfmt n'y sont pas disponibles. Aucune réussite Cargo de pre.007 n'est donc déclarée avant validation opérateur.
Validation requise après application
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-onchain-transport-lib
cargo test -p ksp-config-lib
cargo test -p ksp-core-lib
cargo test -p ksp-app-config-desk
cargo test --workspace
cargo tree -p ksp-onchain-transport-lib
cargo tree -p ksp-onchain-transport-lib -d
cargo tree -p ksp-onchain-transport-lib -e features
cargo tree -p ksp-onchain-transport-lib -e normal
cargo tree -p ksp-config-lib
cargo tree -p ksp-config-lib -d
cargo tree -p ksp-config-lib -e features
cargo tree -p ksp-config-lib -e normal
Puis, de manière opt-in :
cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture
Les cargo tree Config sont requis car pre.007 ajoute un dev-dependency Tokio local au smoke live. Si les validations déterministes et les audits de graphe sont propres, la tranche suivante est 0.2.1-rel.001.