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/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