v0.2.1-pre.007

This commit is contained in:
2026-08-17 22:43:07 +02:00
parent e0a7ac0bf8
commit 79b67f8eae
20 changed files with 1379 additions and 42 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/000-README.md -->
<!-- version: 22 -->
<!-- version: 23 -->
# Documentation KSP
@@ -44,7 +44,8 @@ docs/
├── validation/
│ ├── 000-README.md
│ ├── 001-V0_1_4_CONFIG_DESKTOP.md
── 002-V0_2_0_SERIES_PLANNING.md
── 002-V0_2_0_SERIES_PLANNING.md
│ └── 003-V0_2_1_ONCHAIN_HTTP.md
└── rules/
├── FILE_CONTRACTS.md
├── PROMPT_STRUCTURE.md
@@ -61,7 +62,7 @@ D'autres sous-répertoires seront ajoutés uniquement lorsque leur rôle aura é
## Documents de planification
Le plan historique de la phase fondatrice clôturée est conservé dans [`plans/001-V0_0_3_PLAN.md`](plans/001-V0_0_3_PLAN.md). La séquence active des premières releases fonctionnelles est définie dans [`plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md`](plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md). Le plan détaillé de la release stable `0.1.1` est conservé comme historique clôturé dans [`plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md`](plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.2` est conservé comme historique clôturé dans [`plans/004-V0_1_2_LOGGING_FOUNDATION_PLAN.md`](plans/004-V0_1_2_LOGGING_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.3 — Configuration foundation` est conservé comme historique clôturé dans [`plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md`](plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.4 — ksp-app-config-desk` est conservé comme historique clôturé dans [`plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md`](plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md), avec sa matrice finale [`validation/001-V0_1_4_CONFIG_DESKTOP.md`](validation/001-V0_1_4_CONFIG_DESKTOP.md). Son prompt d'ouverture historique reste [`../prompts/004-V0_1_4_START_PROMPT.md`](../prompts/004-V0_1_4_START_PROMPT.md). La release stable `0.2.0` clôt l'audit de bot3 et le découpage de la série. Son plan directeur est conservé comme historique clôturé dans [`plans/007-V0_2_0_SERIES_PLANNING.md`](plans/007-V0_2_0_SERIES_PLANNING.md), avec sa matrice finale [`validation/002-V0_2_0_SERIES_PLANNING.md`](validation/002-V0_2_0_SERIES_PLANNING.md). `0.2.1` a été ouverte par [`../prompts/006-V0_2_1_START_PROMPT.md`](../prompts/006-V0_2_1_START_PROMPT.md). Son `pre.001` applique le gate de sizing, crée le plan actif [`plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md`](plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md) et produit d'abord un split HTTP sur `0.2.1``0.2.6`. `0.2.1-pre.001-fix.001` recalibre ensuite ce split sur `0.2.1``0.2.4` sans perdre l'inventaire exhaustif, et précise que plusieurs releases peuvent être enchaînées dans un même chat si chacune est clôturée séparément et si le sizing de la suivante reste positif.
Le plan historique de la phase fondatrice clôturée est conservé dans [`plans/001-V0_0_3_PLAN.md`](plans/001-V0_0_3_PLAN.md). La séquence active des premières releases fonctionnelles est définie dans [`plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md`](plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md). Le plan détaillé de la release stable `0.1.1` est conservé comme historique clôturé dans [`plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md`](plans/003-V0_1_1_CORE_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.2` est conservé comme historique clôturé dans [`plans/004-V0_1_2_LOGGING_FOUNDATION_PLAN.md`](plans/004-V0_1_2_LOGGING_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.3 — Configuration foundation` est conservé comme historique clôturé dans [`plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md`](plans/005-V0_1_3_CONFIG_FOUNDATION_PLAN.md). Le plan détaillé de la release stable `0.1.4 — ksp-app-config-desk` est conservé comme historique clôturé dans [`plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md`](plans/006-V0_1_4_CONFIG_DESKTOP_PLAN.md), avec sa matrice finale [`validation/001-V0_1_4_CONFIG_DESKTOP.md`](validation/001-V0_1_4_CONFIG_DESKTOP.md). Son prompt d'ouverture historique reste [`../prompts/004-V0_1_4_START_PROMPT.md`](../prompts/004-V0_1_4_START_PROMPT.md). La release stable `0.2.0` clôt l'audit de bot3 et le découpage de la série. Son plan directeur est conservé comme historique clôturé dans [`plans/007-V0_2_0_SERIES_PLANNING.md`](plans/007-V0_2_0_SERIES_PLANNING.md), avec sa matrice finale [`validation/002-V0_2_0_SERIES_PLANNING.md`](validation/002-V0_2_0_SERIES_PLANNING.md). `0.2.1` a été ouverte par [`../prompts/006-V0_2_1_START_PROMPT.md`](../prompts/006-V0_2_1_START_PROMPT.md). Son `pre.001` applique le gate de sizing et crée [`plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md`](plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md); `pre.001-fix.001` recalibre la couverture typed sur `0.2.1``0.2.4` sans perdre l'inventaire exhaustif. `pre.007` prépare maintenant la clôture de la foundation avec [`validation/003-V0_2_1_ONCHAIN_HTTP.md`](validation/003-V0_2_1_ONCHAIN_HTTP.md), README/USAGE Transport, smoke Devnet opt-in et [`../prompts/007-V0_2_2_START_PROMPT.md`](../prompts/007-V0_2_2_START_PROMPT.md).
`IDEAS.md` conserve les pistes et questions qui ne sont pas encore des engagements du roadmap ni des décisions architecturales.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/architecture/004-COMPONENT_INVENTORY.md -->
<!-- version: 7 -->
<!-- version: 8 -->
# Inventaire initial des composants KSP
@@ -23,7 +23,7 @@ Ce document maintient l'inventaire synthétique des composants retenus ou presse
| Logging | `ksp-logging-lib` | lib | Stable | `0.1.2` | façade unique tracing KSP |
| Config | `ksp-config-lib` | lib | Stable | `0.1.3` | documents, profils, env et persistence Config |
| Config Desk | `ksp-app-config-desk` | app | Stable | `0.1.4` | validation/management Config |
| On-chain HTTP | `ksp-onchain-transport-lib` | lib | Retenu | `0.2.1` | JSON-RPC HTTP complet, settings, pools, rôles |
| On-chain HTTP | `ksp-onchain-transport-lib` | lib | Retenu | `0.2.1` | foundation HTTP, registry 52+14, pools/rôles, 4 canaris |
| Wallet | `ksp-wallet-lib` | lib | Retenu | `0.2.5` | `.kspwallet`, secrets, signature, import/export |
| Wallet Desk | `ksp-app-wallet-desk` | app | Retenu | `0.2.6` | Wallet + Config composite + HTTP/balance |
| Standard WS | `ksp-onchain-transport-lib` | lib | Retenu | `0.2.7` | WebSocket Solana complet, sessions/subscriptions |
@@ -78,7 +78,7 @@ ksp-data-api
## Transport
`ksp-onchain-transport-lib` doit couvrir l'intégralité des opérations documentées de la surface ciblée par chaque release. Les statuts deprecated/obsolete encore fonctionnels et unstable/experimental restent exposés avec warning runtime KSP.
`ksp-onchain-transport-lib` doit couvrir l'intégralité des opérations documentées de la surface ciblée par chaque release. `0.2.1` stabilise la foundation HTTP et quatre wrappers typés canari ; la couverture typée des 48 autres méthodes courantes reste explicitement répartie sur `0.2.2``0.2.4`. Les statuts deprecated/obsolete encore fonctionnels et unstable/experimental restent exposés avec warning runtime KSP.
La Config standard Transport appartient à `ksp-config-lib`, qui adapte vers les settings publics du transport ; le transport ne dépend jamais de Config.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/000-README.md -->
<!-- version: 30 -->
<!-- version: 31 -->
# Plans KSP
@@ -16,7 +16,7 @@ Un plan décrit le périmètre, les décisions déjà acquises, les questions ou
- [`005-V0_1_3_CONFIG_FOUNDATION_PLAN.md`](005-V0_1_3_CONFIG_FOUNDATION_PLAN.md) — plan historique clôturé de la release stable `0.1.3 — Configuration foundation`, établi par `0.1.3-pre.001`, exécuté jusqu'à `pre.015` puis publié par `0.1.3-rel.001`.
- [`006-V0_1_4_CONFIG_DESKTOP_PLAN.md`](006-V0_1_4_CONFIG_DESKTOP_PLAN.md) — plan historique clôturé de la release stable `0.1.4 — ksp-app-config-desk`, établi par `0.1.4-pre.001` puis consolidé jusqu'à `0.1.4-rel.001`.
- [`007-V0_2_0_SERIES_PLANNING.md`](007-V0_2_0_SERIES_PLANNING.md) — plan historique clôturé de la release stable `0.2.0`, ouvert par `pre.001`, consolidé par `pre.002`, audité par `pre.003` puis publié par `rel.001`; il fixe l'ordre `0.2.1+`, la stratégie RAW/CORE/DECODE/SPECIALIZED, les vertical slices Program et le prompt `0.2.1`.
- [`008-V0_2_1_ONCHAIN_HTTP_PLAN.md`](008-V0_2_1_ONCHAIN_HTTP_PLAN.md) — plan actif de `0.2.1`, établi par `0.2.1-pre.001` puis recalibré par `0.2.1-pre.001-fix.001`; il contient l'inventaire officiel 52 méthodes HTTP courantes + 14 Deprecated historiques, l'audit bot3, le design Transport/Config et le split courant de la couverture HTTP sur `0.2.1``0.2.4`, avec enchaînement possible de releases dans une même session sous gate de sizing.
- [`008-V0_2_1_ONCHAIN_HTTP_PLAN.md`](008-V0_2_1_ONCHAIN_HTTP_PLAN.md) — plan de `0.2.1`, établi par `0.2.1-pre.001`, recalibré par `pre.001-fix.001` et amené en clôture candidate par `pre.007`; il conserve l'inventaire 52 méthodes HTTP courantes + 14 Deprecated historiques, le design Transport/Config et le split de couverture typée sur `0.2.1``0.2.4`.
Le `pre.001` de chaque release fonctionnelle peut introduire son propre plan détaillé lorsque la release s'ouvre.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md -->
<!-- version: 31 -->
<!-- version: 32 -->
# Séquence des releases fonctionnelles KSP
@@ -378,7 +378,7 @@ Mission : créer `ksp-onchain-transport-lib` avec la foundation HTTP JSON-RPC in
Inclure : settings publics ; endpoint/provider/cluster ; pool logique ; rôles/capabilities/request kinds ouverts ; priorités/limites/concurrence ; timeout/retry/backoff ; JSON-RPC ; metadata centrale de statut méthode + forme de requête + runtime ; warning centralisé lorsqu'un contrat supported est deprecated/unstable ; document Config standard + adapter Config -> Transport ; `getBalance`, `getGenesisHash`, `getHealth`, `getVersion`.
Le plan détaillé actif est `docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md`. Un appel raw/générique ne compte pas comme couverture typée des méthodes reportées.
Le plan détaillé actif est `docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md`. `pre.007` clôt la surface candidate avec canaries de complétude, smoke Devnet opt-in Config -> Transport, README/USAGE et prompt `0.2.2`. Un appel raw/générique ne compte pas comme couverture typée des méthodes reportées.
## `0.2.2` à `0.2.4` — complétude HTTP Solana

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md -->
<!-- version: 10 -->
<!-- version: 11 -->
# `0.2.1-pre.001` — plan `ksp-onchain-transport-lib` HTTP Solana foundation
@@ -7,6 +7,8 @@
Ce document ouvre `0.2.1` à partir de la base stable fournie `0.2.0` et exécute le gate de sizing imposé par le prompt `006` avant toute grosse implémentation. Sa version initiale appartient à `0.2.1-pre.001`; le split de releases présenté dans cette version du plan est le recalibrage documentaire de `0.2.1-pre.001-fix.001`.
> **État `pre.007` : candidate de clôture.** La foundation HTTP réduite est fonctionnellement matérialisée ; `pre.007` ajoute les canaries finales, le smoke Devnet opt-in, README/USAGE, la matrice de validation durable et le prompt `0.2.2`. La publication stable reste séparée dans `rel.001` après validations opérateur.
Conclusion du gate :
```text
@@ -766,7 +768,7 @@ Interdits par défaut :
Les erreurs `reqwest` utiles sont remappées/réémises via `ksp-logging-lib`; aucun target externe n'est activé globalement par Transport.
Pendant le développement actif de `0.2.1`, `std.logging.json` conserve sa baseline générale à `info` mais autorise `debug` uniquement pour `ksp-onchain-transport-lib` et route ces événements vers un fichier dédié `transport/onchain/ksp-onchain-transport-debug.log`. La console et `file.all.info` restent à `info`. Ce routage ciblé suit `DEP-LOG-012` et évite de placer tout le profil en `debug`. Conformément à `KSP-APP-031`, la dernière tranche de clôture réévalue cette verbosité et la ramène à `info`/`warn` avant la stable, sauf justification opératoire explicite.
Pendant le développement actif jusqu'à `pre.006`, `std.logging.json` autorisait `debug` uniquement pour `ksp-onchain-transport-lib` et routait ces événements vers un fichier dédié. `pre.007` applique `KSP-APP-031` : le target et le sink dédié reviennent à `info`, avec le fichier `transport/onchain/ksp-onchain-transport.log`. La console et `file.all.info` restent également à `info`. Un développement/correctif futur peut relever temporairement uniquement ce target/sink via Config Desk conformément à `DEP-LOG-012`.
## 19. Architecture de tests
@@ -871,15 +873,15 @@ La release peut devenir stable seulement si :
## 22. Prévision souple des prereleases de la `0.2.1` réduite
| Tranche | Objectif |
|-----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `pre.001` | audit KSP + bot3 + docs officielles, matrice 52+14, architecture, split et sizing |
| `pre.002` | **réalisé** : crate/workspace, codes erreur, settings/validation, JSON-RPC, descriptors/status, base Logging |
| `pre.003` | **réalisé** : endpoint client + pool logique + rôles/capabilities + priorité/fairness/fallback + snapshots sûrs |
| `pre.004` | **réalisé** : RPS/burst/concurrence/cooldown + deadline commune + retry/backoff + classification retry/no-resend |
| `pre.005` | **réalisé** : exécution HTTP JSON-RPC + `getHealth`, `getVersion`, `getGenesisHash`, `getBalance` + fixtures déterministes + centralisation des canaries workspace dans Core |
| `pre.006` | **réalisé** : `std.transport` schema/document/example + registry Config + adapter Config -> Transport + sensibilité/provenance/env tests |
| `pre.007` | completeness/canaries, smoke opt-in, `cargo tree`, README/USAGE, docs finales, prompt `0.2.2`, préparation `rel.001` |
| Tranche | Objectif |
|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `pre.001` | audit KSP + bot3 + docs officielles, matrice 52+14, architecture, split et sizing |
| `pre.002` | **réalisé** : crate/workspace, codes erreur, settings/validation, JSON-RPC, descriptors/status, base Logging |
| `pre.003` | **réalisé** : endpoint client + pool logique + rôles/capabilities + priorité/fairness/fallback + snapshots sûrs |
| `pre.004` | **réalisé** : RPS/burst/concurrence/cooldown + deadline commune + retry/backoff + classification retry/no-resend |
| `pre.005` | **réalisé** : exécution HTTP JSON-RPC + `getHealth`, `getVersion`, `getGenesisHash`, `getBalance` + fixtures déterministes + centralisation des canaries workspace dans Core |
| `pre.006` | **réalisé** : `std.transport` schema/document/example + registry Config + adapter Config -> Transport + sensibilité/provenance/env tests |
| `pre.007` | **réalisé côté livraison candidate** : completeness/canaries, smoke opt-in, README/USAGE, docs finales, prompt `0.2.2`, préparation `rel.001`; `cargo tree`/Cargo restent à valider opérateur |
Ce découpage est révisable si une tranche dépasse le budget ; la release réduite, contrairement au scope initial, reste raisonnablement clôturable dans la session.
@@ -972,7 +974,23 @@ Restent à `pre.006` : document/schema/exemple `std.transport`, enregistrement C
`pre.006-fix.002`, déclenché par laudit complet du workspace avant clôture, corrige une fuite diagnostique potentielle : les `reqwest::Error` attachées à `ksp_core_lib::Error` sont désormais neutralisées par `without_url()` avant `with_source`, avec une canarie timeout portant un secret dans la query de lendpoint. Le même audit remet aussi en conformité les fins de ligne des fichiers courants concernés par `GEN-FILE-005` et corrige le rustdoc Transport devenu obsolète après lintroduction de ladapter Config -> Transport. Les écarts purement documentaires sans impact code/config restent volontairement réservés à `pre.007`.
Restent à `pre.007` : completeness/canaries finales, smoke réseau opt-in, audit `cargo tree`, README/USAGE, documentation de clôture, prompt `0.2.2` et préparation de `rel.001`.
### 22.6 État candidat après `0.2.1-pre.007`
`pre.007` ferme le périmètre de développement de la foundation sans ajouter de méthode HTTP typed au-delà des quatre canaris :
- `workspace.package.version = 0.2.1-pre.7` ;
- revérification officielle du 2026-08-17 : lindex Solana HTTP courant expose toujours 52 méthodes et la navigation Deprecated conserve les 14 noms historiques audités ;
- deux canaries dintégration publiques figent la partition `52 current / 14 historical / 4-22-11-15` et le set exact des quatre canaris `0.2.1` ;
- la candidate déclare **80 tests Transport** et **114 tests Config**, dont un unique smoke Devnet Config `ignored` ;
- un smoke Devnet `ignored` sous `ksp-config-lib` valide de manière opt-in la chaîne Config -> `devnet_public` -> Transport -> `getHealth/getGenesisHash/getVersion/getBalance`, sans lecture denvironnement dans Transport ;
- `ksp-onchain-transport-lib/README.md` et `USAGE.md` documentent frontières, API raw vs typed, résilience, sécurité, Config et utilisation ;
- `docs/validation/003-V0_2_1_ONCHAIN_HTTP.md` devient la matrice durable de clôture ;
- le niveau de référence du sink Transport dédié revient de `debug` à `info` avant stable ;
- les écarts documentaires résiduels issus de laudit complet sont normalisés : convention `bindings/gen`, README Config et inventaire composant HTTP ;
- `prompts/007-V0_2_2_START_PROMPT.md` prépare `0.2.2 — HTTP Accounts + Tokens + Cluster` avec un nouvel audit officiel et gate de sizing ;
- `CHANGELOG.md` nest pas encore modifié : lentrée stable `0.2.1` appartient à `rel.001`, conformément au workflow des releases précédentes.
Les validations Cargo et `cargo tree` de cette candidate doivent être exécutées sur le dépôt canonique. Si elles sont propres, `rel.001` reste strictement publicationnel : version stable, statuts ROADMAP/plan/validation, entrée CHANGELOG, delta de release, commit et tag `v0.2.1`.
## 23. Séquence `0.2.x` recalibrée

View File

@@ -1,5 +1,5 @@
<!-- file: docs/rules/FILE_CONTRACTS.md -->
<!-- version: 15 -->
<!-- version: 16 -->
# Contrats des fichiers
@@ -85,7 +85,7 @@ Pour un document standard profilé, `default_profile` et `profiles` sont des cl
- **FILE-GEN-001** — Un fichier généré n'est jamais modifié manuellement lorsque sa source de vérité est un générateur.
- **FILE-GEN-002** — Le choix de versionner ou ignorer une famille générée est décidé explicitement lorsqu'elle apparaît.
- **FILE-GEN-003** — Les futurs artefacts Tauri `bindings/` et `gen/` ne sont pas encore une convention KSP ; ils seront traités lorsqu'ils apparaîtront.
- **FILE-GEN-003** — Les répertoires générés `bindings/` et `gen/` des toolchains Tauri/TS-RS restent des artefacts reconstruisibles et ne sont pas versionnés par défaut. Ils sont ignorés par le dépôt ; leurs sources de vérité restent les DTO/configurations/générateurs KSP. Toute exception de versionnement doit être explicitement justifiée et documentée.
## Documentation durable des crates et applications

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/000-README.md -->
<!-- version: 3 -->
<!-- version: 4 -->
# Validations KSP
@@ -11,3 +11,4 @@ Documents :
- [`001-V0_1_4_CONFIG_DESKTOP.md`](001-V0_1_4_CONFIG_DESKTOP.md) — matrice finale de `0.1.4 — ksp-app-config-desk`.
- [`002-V0_2_0_SERIES_PLANNING.md`](002-V0_2_0_SERIES_PLANNING.md) — matrice finale de la release stable `0.2.0`, avec audit de cohérence et preuves opérateur de `pre.003`.
- [`003-V0_2_1_ONCHAIN_HTTP.md`](003-V0_2_1_ONCHAIN_HTTP.md) — matrice de clôture de `0.2.1 — HTTP Solana foundation`, registry 52+14, résilience, Config -> Transport, quatre canaris et smoke Devnet opt-in.

View File

@@ -0,0 +1,194 @@
<!-- file: docs/validation/003-V0_2_1_ONCHAIN_HTTP.md -->
<!-- version: 1 -->
# Validation `0.2.1` — HTTP Solana foundation
## Objet
Cette matrice synthétise les critères de clôture de `0.2.1 — ksp-onchain-transport-lib / HTTP Solana foundation`, les preuves acquises jusqu'à `pre.006-fix.002` et les validations finales attendues de `pre.007` avant publication `rel.001`.
Elle ne remplace ni `docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md` ni les deltas `0.2.1`.
## Base de clôture
```text
base validée : 0.2.1-pre.6.fix.2
candidate finale : 0.2.1-pre.7
```
La base `pre.006-fix.002` a été validée par l'opérateur le 2026-08-17 avec `cargo fmt --all`, `cargo check --workspace`, `cargo clippy --workspace --all-targets`, les tests ciblés Transport/Config Desk/Config/Core et `cargo test --workspace`.
## Revérification officielle Solana
Revérification de clôture effectuée le 2026-08-17.
Index HTTP officiel :
```text
https://solana.com/docs/rpc/http
```
L'index courant expose toujours **52 méthodes HTTP** et confirme JSON-RPC 2.0 sur HTTP `POST` avec `Content-Type: application/json`.
La navigation officielle `Deprecated Methods`, visible depuis les pages deprecated telles que :
```text
https://solana.com/docs/rpc/deprecated/confirmtransaction
```
expose toujours les **14 noms historiques** audités :
```text
confirmTransaction
getConfirmedBlock
getConfirmedBlocks
getConfirmedBlocksWithLimit
getConfirmedSignaturesForAddress2
getConfirmedTransaction
getFeeCalculatorForBlockhash
getFeeRateGovernor
getFees
getRecentBlockhash
getSignatureConfirmation
getSignatureStatus
getSnapshotSlot
getStakeActivation
```
KSP les conserve comme `Deprecated / Removed / Historical`; `0.2.1` ne simule pas leur appelabilité runtime.
## Matrice de clôture
| Critère | État candidat `pre.007` | Preuve / contrat |
|------------------------------------------------------------|-------------------------|-----------------------------------------------------------------------|
| Crate `ksp-onchain-transport-lib` présente et indépendante | OK | manifest + canary Core `workspace_dependencies` |
| Transport -X-> Config/Store/Program | OK | canary de firewall workspace |
| Transport -X-> `tracing` direct | OK | ownership Logging + `ksp-logging-lib` |
| Features Cargo activées localement par consumer | OK | canary workspace + manifests |
| Target Logging explicite possédé par la crate | OK | `src/constants.rs` + canary `workspace_logging` |
| URL endpoint redacted dans settings/snapshots/Debug | OK | tests settings/client/pool/public API |
| `reqwest::Error` source sans URL sensible | OK | `without_url()` + canary timeout secret |
| JSON-RPC 2.0 request/response/id/error | OK | tests `json_rpc` |
| Registry HTTP courant | OK | 52 descriptors + canary de release |
| Registry historique Deprecated | OK | 14 descriptors `Removed` + canary de release |
| Partition typed future | OK | `4 / 22 / 11 / 15` pour `0.2.1``0.2.4` |
| Quatre canaris typés exacts | OK | `getBalance`, `getGenesisHash`, `getHealth`, `getVersion` |
| Pool rôles/capabilities/priorités/fairness | OK | tests pool |
| RPS/burst/concurrence/cooldown | OK | tests resilience/pool |
| Deadline/timeout/retry borné | OK | tests executor/resilience |
| No-resend après dispatch ambigu | OK | descriptor + policy + tests |
| 429/Retry-After et statuts temporaires | OK | tests executor |
| Config standard Transport | OK | `std.transport.json` + schema + example |
| Direction Config -> Transport | OK | adapter `load_resolved_transport_config` |
| Sensibilité/provenance/env Transport | OK | tests Config |
| Logging Transport dédié | OK | sink dédié `info` dans `std.logging.json` |
| Tests réseau par défaut déterministes | OK | fixtures + serveur HTTP local |
| Smoke Devnet | OPT-IN | `tests/transport_devnet_smoke.rs`, ignored par défaut |
| README durable | OK | `crates/ksp-onchain-transport-lib/README.md` |
| USAGE durable | OK | `crates/ksp-onchain-transport-lib/USAGE.md` |
| Prompt release suivante | OK | `prompts/007-V0_2_2_START_PROMPT.md` |
| Matrice HTTP globale préservée | OK | plan `008`; 48 méthodes restantes restent affectées à `0.2.2``0.2.4` |
## Canaries de complétude finales
`pre.007` ajoute une intégration publique dédiée qui vérifie :
```text
current == 52
historical == 14
coverage == 4 / 22 / 11 / 15
V0_2_1 == getBalance/getGenesisHash/getHealth/getVersion
historical => Deprecated + Removed + NotApplicable
```
Ces checks complètent les tests unitaires existants du registre et protègent la frontière de release depuis l'API publique.
La candidate déclare **80 tests Transport** et **114 tests Config**, dont le smoke Devnet Config unique marqué `ignored`. Ces nombres sont des canaries de clôture de la candidate et devront être confirmés par Cargo sur le dépôt canonique.
## Smoke Devnet opt-in
Le smoke live appartient à `ksp-config-lib`, car il doit prouver la chaîne :
```text
Config
-> profile devnet_public
-> HttpTransportSettings
-> HttpTransportPool
-> getHealth
-> getGenesisHash
-> getVersion
-> getBalance(System Program)
```
Transport ne lit donc pas directement l'environnement.
Exécution explicite :
```bash
cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture
```
Ce test dépend d'un service Devnet externe. Il reste ignoré dans les suites déterministes et un incident/rate-limit du RPC public n'est pas assimilé à une régression locale sans analyse.
## Audit `cargo tree` final attendu
À exécuter sur le dépôt canonique :
```bash
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
```
Points attendus :
- pas de Config sous Transport ;
- Config dépend de Transport dans le sens autorisé ;
- pas de Store/Program ;
- pas de `tracing` direct chez Transport ;
- `reqwest/rustls`, `serde/derive`, Tokio Transport et Tokio de test Config restent activés localement par les crates consommatrices.
## Validations finales de `pre.007`
Avant commit :
```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
```
Puis, de manière opt-in :
```bash
cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture
```
Le smoke live est une preuve supplémentaire ; les suites déterministes restent la gate reproductible de publication.
## Préparation de `rel.001`
Si les validations de `pre.007` sont propres, `rel.001` doit rester minimal :
```text
workspace.package.version -> 0.2.1
ROADMAP : 0.2.1 -> [X]
CHANGELOG : synthèse stable 0.2.1
plan 008 / matrice 003 : statut clôturé et preuves opérateur
nouveau delta deltas/0.2.1/rel.001.md
commit v0.2.1-rel.001
tag v0.2.1
```
Aucune nouvelle capacité HTTP ne doit être introduite dans `rel.001`.