v0.2.3-pre.006

This commit is contained in:
2026-08-18 12:35:29 +02:00
parent 1e1bc0d421
commit 4439589f0d
12 changed files with 728 additions and 39 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/010-V0_2_3_HTTP_TRANSACTIONS_PLAN.md -->
<!-- version: 4 -->
<!-- version: 5 -->
# Plan `0.2.3` — HTTP Transactions
@@ -589,6 +589,27 @@ Un candidat raisonnable pour la clôture est un smoke Transport pur combinant `g
simulation live n'est retenue que si une fixture transactionnelle stable peut être fournie sans déplacer la construction/signature métier dans
Transport.
## Audit rétroactif `KSP-TRANSPORT-007` planifié
La règle `KSP-TRANSPORT-007` formalise en `pre.005` un principe déjà appliqué dans les audits de `0.2.1` et `0.2.2`, mais elle n'était pas encore un
critère de clôture nommé lors de ces releases. Un contrôle rétroactif dédié est donc ajouté avant la clôture documentaire.
L'audit `pre.008` couvrira au minimum :
```text
4 wrappers foundation de 0.2.1
22 wrappers Accounts/Tokens/Cluster de 0.2.2
11 wrappers Transactions de 0.2.3
```
Il comparera la surface publique KSP aux paramètres/configs/overloads et formes de réponse des sources normatives courantes retenues. Les syntaxes
strictement équivalentes peuvent rester canonicalisées conformément à la règle. Toute possibilité supportée manquante sera corrigée dans cette tranche ;
si aucun manque n'est trouvé, la tranche fournira la preuve/canarie d'audit sans modification fonctionnelle artificielle.
Un contrôle ciblé effectué pendant `pre.006` confirme déjà que les configs structurantes de `0.2.2` (`RpcAccountInfoConfig`,
`RpcProgramAccountsConfig`, `RpcLargestAccountsConfig`, `RpcLeaderScheduleConfig`, `RpcGetVoteAccountsConfig`) correspondent aux champs Agave
`v4.2.1` exposés par les DTOs KSP. Ce contrôle ne remplace pas l'audit exhaustif `pre.008`.
## Prévision souple des prereleases
```text
@@ -599,11 +620,14 @@ pre.004 getRecentPrioritizationFees + getSignaturesForAddress + getSignatureSta
pre.005 getTransaction moderne + compatibilité legacy + transaction/meta/version wire
pre.006 requestAirdrop + sendTransaction + preuves end-to-end no-resend
pre.007 simulateTransaction + résultat riche + invariants de config
pre.008 audit final + canaries + smoke opt-in si pertinent + README/USAGE + validation + prompt 0.2.4
pre.008 audit rétroactif KSP-TRANSPORT-007 sur 0.2.1 -> 0.2.3 + remédiations éventuelles
pre.009 réaudit final + canaries + smoke opt-in si pertinent + README/USAGE + validation + prompt 0.2.4
```
Une prerelease intermédiaire peut être ajoutée si le volume réel d'une tranche dépasse le budget. La dernière prerelease reste une tranche de
clôture documentaire/validation et ne doit pas devenir une implémentation massive tardive.
Une prerelease intermédiaire peut être ajoutée si le volume réel d'une tranche dépasse le budget. Après formalisation de `KSP-TRANSPORT-007` en
`pre.005`, `pre.008` est désormais réservée à un audit rétroactif explicite des wrappers HTTP déjà livrés depuis `0.2.1`, afin de ne pas transformer la
tranche de clôture en remédiation fonctionnelle tardive. La dernière prerelease reste une tranche de clôture documentaire/validation et ne doit pas
devenir une implémentation massive tardive.
## Critères de clôture de `0.2.3`
@@ -683,3 +707,21 @@ La tranche suivante peut commencer par les primitives wire communes sans réouvr
- aucune nouvelle dépendance Cargo et aucun wrapper `0.2.3` activé prématurément.
La tranche suivante reste `pre.003` : `getFeeForMessage`, `getLatestBlockhash`, `getTransactionCount` et `isBlockhashValid`.
## Résultat de `pre.006`
`pre.006` active les deux écritures Transaction sans introduire de chemin de soumission parallèle :
- `requestAirdrop` expose `Pubkey`, lamports, `commitment` et le `recentBlockhash` encore supporté par Agave `v4.2.1` ;
- `sendTransaction` transporte une transaction déjà signée/encodée et expose `base58/base64`, `skipPreflight`, `preflightCommitment`, `maxRetries` et
`minContextSlot` ;
- `sendTransaction.maxRetries` reste explicitement node-side et ne modifie jamais `HttpRetrySettings` ;
- les deux wrappers passent par leur descriptor central `WriteSubmission / NeverAfterDispatch` puis `execute_standard_rpc` ;
- les fixtures end-to-end comptent les requêtes et prouvent une seule soumission après HTTP 429, HTTP 503 et timeout après dispatch ;
- une connexion refusée classée `NotDispatched` peut encore utiliser la policy centrale de retry/fallback, démontrée pour les deux wrappers ;
- les erreurs RPC applicatives, dont un échec de preflight `sendTransaction`, restent des erreurs applicatives sans retry transport ;
- aucune dépendance transactionnelle/codec supplémentaire n'est ajoutée ;
- `simulateTransaction` reste la seule méthode `0.2.3` non encore activée.
La prévision est ajustée : `pre.008` devient l'audit rétroactif `KSP-TRANSPORT-007` et la clôture finale est déplacée à `pre.009`.