Files
2026-08-18 09:48:11 +02:00

249 lines
7.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- 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
```