v0.2.2-pre.007

This commit is contained in:
2026-08-18 09:48:11 +02:00
parent ecfb9500eb
commit b57f796187
16 changed files with 1020 additions and 78 deletions

248
deltas/0.2.2/pre.007.md Normal file
View File

@@ -0,0 +1,248 @@
<!-- file: deltas/0.2.2/pre.007.md -->
<!-- version: 1 -->
# 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
```