# Delta `v0.2.2-pre.007` ## Base Base attendue : ```text v0.2.2-pre.006-fix.001 ``` Cette base a été validée localement par l'opérateur le 2026-08-18 avec : - `cargo fmt --all` ; - `cargo check --workspace` ; - `cargo clippy --workspace --all-targets` ; - `cargo test -p ksp-onchain-transport-lib`. Résultats Transport communiqués : ```text 127 unit tests passed 13 public API tests passed 6 release completeness tests passed 0 warning clippy signalé ``` Version Cargo cible : ```text 0.2.2-pre.7 ``` ## Objectif Fermer la dernière prerelease fonctionnelle de `0.2.2` sans ajouter de nouvelle méthode HTTP : - revérifier l'inventaire officiel Solana ; - figer la complétude exacte des 22 wrappers `0.2.2` ; - ajouter un smoke Devnet opt-in **Transport pur** avec settings programmatiques ; - conserver séparément le smoke historique de composition Config -> Transport ; - synchroniser README/USAGE et la documentation d'architecture/planification ; - produire la matrice finale `0.2.2` ; - produire le prompt de démarrage `0.2.3 — HTTP Transactions` ; - préparer un `rel.001` strictement publicationnel. Aucun 23e wrapper `0.2.2` et aucune méthode Transactions n'est introduit dans cette tranche. ## Réaudit officiel final La documentation officielle Solana a été revérifiée le 2026-08-18 : ```text https://solana.com/docs/rpc/http https://solana.com/docs/rpc/deprecated/confirmtransaction ``` L'index courant contient toujours : ```text 52 méthodes HTTP courantes 14 méthodes historiques Deprecated ``` Les familles restent : ```text Accounts : 6 current Tokens : 5 current Cluster : 15 current ``` En retranchant les quatre canaris `0.2.1` (`getBalance`, `getGenesisHash`, `getHealth`, `getVersion`), la partition `0.2.2` reste exactement `5 + 5 + 12 = 22`. Aucun recalibrage n'est nécessaire. ## Canaries de complétude `tests/release_completeness.rs` gagne un canary final qui fige depuis l'API publique : ```text V0_2_2 exact set == 22 méthodes du plan 009 22 => Stable + Supported + Read + RetrySafe V0_2_3 count == 11 V0_2_4 count == 15 ``` Les canaries antérieures `52 + 14`, `4 / 22 / 11 / 15`, foundation exacte, Accounts, Tokens et Cluster restent inchangées. La candidate attend donc : ```text 127 tests unitaires Transport 13 tests public API 7 tests release completeness 1 smoke Devnet Transport ignored par défaut ``` ## Smoke Devnet Transport pur Nouveau test : ```text crates/ksp-onchain-transport-lib/tests/transport_devnet_smoke.rs ``` Contrairement au smoke historique de `0.2.1`, il ne dépend pas de Config : ```text settings programmatiques -> https://api.devnet.solana.com -> HttpTransportPool -> getAccountInfo(System Program) -> getTokenSupply(mint de l'exemple Devnet officiel courant) -> getEpochInfo -> getVoteAccounts ``` Exécution opt-in : ```bash cargo test -p ksp-onchain-transport-lib --test transport_devnet_smoke -- --ignored --nocapture ``` Ce smoke appartient durablement à Transport parce qu'il ne valide que Transport. Il reste `ignored` car il dépend d'un réseau externe et d'un état Devnet. Le smoke `crates/ksp-config-lib/tests/transport_devnet_smoke.rs` reste séparé et valide uniquement la composition historique : ```text Config -> Transport -> quatre canaris foundation ``` Il reste transitoire et devra migrer vers une future surface d'intégration/orchestration/demo ; Config ne devient pas la destination générale des smokes cross-crates. ## Documentation durable Mises à jour : - README Transport : 26 wrappers typed candidats, répartition 4 + 5 + 5 + 12 et ownership des deux smokes ; - USAGE Transport : exemples typed `0.2.2` et commandes des deux smokes ; - inventaire composant : état candidate `0.2.2` ; - séquence fonctionnelle : `pre.002`–`pre.006` exécutées et `pre.007` candidate ; - plan `009` : état candidate, réaudit final, smoke et préparation stable ; - ROADMAP : `0.2.2` passe à `[/]`, pas à `[X]` avant stable ; - index docs/plans/validation/prompts synchronisés. Nouveaux documents : ```text docs/validation/004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md prompts/008-V0_2_3_START_PROMPT.md ``` `CHANGELOG.md` n'est volontairement pas modifié dans cette prerelease. ## Prompt `0.2.3` Le prompt suivant cible exactement les 11 méthodes Transactions actuellement affectées à `V0_2_3` : ```text 8 Read / RetrySafe 2 WriteSubmission / NeverAfterDispatch 1 Simulation / RetrySafe ``` Il impose un nouveau `pre.001` d'audit/sizing et met au premier plan la règle no-resend de `requestAirdrop` et `sendTransaction`. ## Préparation de `rel.001` Si la candidate passe les validations opérateur, `rel.001` doit rester publicationnel : ```text workspace.package.version -> 0.2.2 ROADMAP : 0.2.2 -> [X] CHANGELOG : synthèse stable 0.2.2 plan 009 / validation 004 : clôture + preuves opérateur deltas/0.2.2/rel.001.md commit v0.2.2-rel.001 tag v0.2.2 après validation du commit ``` Aucun développement fonctionnel nouveau ne doit entrer dans `rel.001`. ## Fichiers ajoutés ```text crates/ksp-onchain-transport-lib/tests/transport_devnet_smoke.rs docs/validation/004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md prompts/008-V0_2_3_START_PROMPT.md deltas/0.2.2/pre.007.md ``` ## Fichiers modifiés ```text Cargo.toml ROADMAP.md crates/ksp-onchain-transport-lib/README.md crates/ksp-onchain-transport-lib/USAGE.md crates/ksp-onchain-transport-lib/tests/release_completeness.rs docs/000-README.md docs/architecture/004-COMPONENT_INVENTORY.md docs/plans/000-README.md docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md docs/plans/009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md docs/validation/000-README.md prompts/000-README.md ``` Aucun ancien delta et aucun `CHANGELOG.md` ne sont modifiés. ## Validations exécutées dans la préparation de livraison Contrôles statiques exécutés : - version Cargo `0.2.2-pre.7` ; - présence exacte des 22 noms dans le canary final ; - fixture live absente des suites par défaut via `#[ignore]` ; - smoke Transport sans dépendance Config ni lecture d'environnement ; - index docs/plans/validation/prompts synchronisés ; - versions de fichiers modifiés incrémentées ; - aucun ajout de dépendance/feature Cargo ; - archive réextraite et comparée au payload préparé. Cargo n'est pas disponible dans l'environnement de préparation. Les validations suivantes restent donc à exécuter par l'opérateur sur le dépôt canonique : ```bash 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 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 ```