0.2.1-pre.1

This commit is contained in:
2026-08-17 17:20:41 +02:00
parent 24cf2c5a11
commit 624202c363
8 changed files with 1225 additions and 102 deletions

View File

@@ -1,9 +1,9 @@
<!-- file: prompts/006-V0_2_1_START_PROMPT.md -->
<!-- version: 2 -->
<!-- version: 4 -->
# Prompt de démarrage `0.2.1` — `ksp-onchain-transport-lib` HTTP Solana foundation
> **Statut : finalisé par `0.2.0-pre.003`.** Utiliser ce prompt uniquement après publication stable/tag `v0.2.0`; toute information externe temporelle doit être revérifiée à l'ouverture de `0.2.1-pre.001`.
> **Statut : consommé par `0.2.1-pre.001`.** Le gate de sizing du 2026-08-17 a conclu que le périmètre monolithique décrit ci-dessous n'était pas clôturable raisonnablement dans une seule session. Le plan actif `docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md` le remplace pour l'exécution : `0.2.1` devient la foundation + 4 canaris, et la couverture HTTP typée exhaustive est répartie sur `0.2.1``0.2.6`. Le présent document reste la trace du cahier des charges ayant ouvert l'audit ; ne pas le réutiliser comme prompt d'implémentation monolithique.
## 1. Contexte de reprise
@@ -484,12 +484,12 @@ et vérifiant la complétude de la matrice de méthodes si elle peut être autom
Ne pas ouvrir :
- WebSocket Solana — `0.2.4` ;
- Helius LaserStream WebSocket — `0.2.5` ;
- Yellowstone gRPC — `0.2.6` ;
- WebSocket Solana — `0.2.9` ;
- Helius LaserStream WebSocket — `0.2.10` ;
- Yellowstone gRPC — `0.2.11` ;
- providers gRPC avancés ;
- Wallet — `0.2.2` ;
- Wallet Desk — `0.2.3` ;
- Wallet — `0.2.7` ;
- Wallet Desk — `0.2.8` ;
- Store/persistence RAW — `0.3.1` ;
- decoders Program ;
- `ksp-interface-lib` fonctionnel complet ;
@@ -547,60 +547,69 @@ Si la réponse est non ou incertaine, **ne pas commencer la grosse implémentati
La contrainte de couverture documentaire exhaustive ne doit jamais être contournée en masquant des méthodes pour faire tenir artificiellement la release.
## 17. Prévision souple initiale des prereleases
## 17. Prévision souple recalibrée après le gate `pre.001`
Cette prévision est un point de départ et doit être recalibrée par `pre.001` à partir de la matrice réelle des méthodes.
Le gate a refusé la grosse release HTTP monolithique. La `0.2.1` réduite suit désormais la prévision active du plan `008` :
### `pre.001` — audit, matrice exhaustive, architecture et sizing
Aucune grosse implementation.
Tranche actuelle, sans grosse implémentation.
### `pre.002` — crate foundation + settings + JSON-RPC + method descriptors
Candidat :
### `pre.002` — crate foundation + settings + JSON-RPC + descriptors
- package/workspace ;
- contrats settings ;
- validation ;
- JSON-RPC envelope/error ;
- metadata de méthode/status ;
- erreurs KSP ;
- settings/validation ;
- JSON-RPC ;
- metadata méthode/statut/runtime/request-form/retry ;
- base Logging.
### Tranches méthodes HTTP
### `pre.003` — client/pool/routing
Répartir les méthodes par familles cohérentes **après inventaire officiel**, par exemple accounts/cluster, blocks/transactions, tokens/economics, write/execution technique ou toute meilleure découpe révélée par la documentation.
- endpoint client ;
- pool logique ;
- rôles/capabilities ;
- priorité/fairness/fallback ;
- snapshots redacted.
Aucune de ces tranches ne doit dépasser le budget 1520 minutes ; ajouter des prereleases si nécessaire **uniquement si la release entière reste clôturable dans la session**.
### `pre.004` — résilience
### Tranche pools/rôles/resilience
- rate-limit/burst ;
- concurrence ;
- cooldown ;
- timeout ;
- retry/backoff borné ;
- classification no-resend des writes futures.
- pools ;
- role matching ;
- priority/fallback ;
- rate-limit ;
- concurrency ;
- retry/backoff ;
- health/snapshots.
### `pre.005` — méthodes canari typées
### Tranche Config standard
- `getBalance` ;
- `getGenesisHash` ;
- `getHealth` ;
- `getVersion` ;
- fixtures/tests déterministes.
- schema/document/example ;
- registration/file IDs ;
### `pre.006` — Config standard
- schema/document/example `std.transport` ;
- registry/file IDs ;
- adapter Config -> Transport ;
- env inventory ;
- intégration tests.
- sensibilité/env ;
- integration tests.
### Dernière prerelease
### `pre.007` — clôture
- matrice de complétude 100 % de la surface ciblée ;
- tests ciblés et workspace ;
- canaries et matrice 52 current + 14 deprecated historiques ;
- tests ciblés/workspace ;
- cargo tree audits ;
- README/USAGE ;
- documentation durable ;
- cleanup/TODO ;
- prompt `0.2.2` Wallet ;
- prompt `0.2.2 — HTTP Accounts + Tokens` ;
- préparation `rel.001`.
Les méthodes typées restantes sont réparties sur `0.2.2``0.2.6` et restent toutes présentes dans la matrice du plan `008`.
## 18. Validation de chaque tranche Rust
Après toute modification Rust :
@@ -624,39 +633,51 @@ Exécuter les `cargo tree` pertinents pour les crates modifiées.
Ne jamais déclarer une commande réussie si elle n'a pas été exécutée.
## 19. Critères de clôture `0.2.1`
## 19. Critères de clôture `0.2.1` après split
La release ne peut pas être déclarée stable tant que :
- `ksp-onchain-transport-lib` existe comme crate KSP propre ;
- aucune dépendance Transport -> Config/Store/Program n'existe ;
- aucune dépendance Transport -> Config/Store/Program/tracing direct n'existe ;
- les settings publics sont documentés ;
- le document Config Transport + adapter fonctionnent sans inverser l'ownership ;
- toutes les méthodes de la surface HTTP Solana normative ciblée sont présentes dans la matrice ;
- toutes les méthodes supportables ciblées sont implémentées ;
- deprecated/obsolete encore fonctionnel et unstable/experimental émettent le warning KSP prévu ;
- JSON-RPC, erreurs et descriptors centraux fonctionnent ;
- le registre contient exactement les 52 méthodes courantes et les 14 méthodes Deprecated historiques auditées ;
- le statut runtime `Removed` empêche de présenter les 14 anciennes méthodes comme supportées ;
- le mécanisme de warning centralisé sait couvrir les contrats deprecated/unstable supportés, notamment les formes legacy documentées ;
- pools/rôles/priority/limites/timeouts/retry retenus sont testés ;
- les réponses restent transport/raw-compatible et ne produisent pas des modèles Program/Store ;
- aucun secret/provider token n'est loggué ;
- `getBalance`, `getGenesisHash`, `getHealth` et `getVersion` sont exposés par une API typée et testés ;
- le document Config Transport + adapter fonctionnent sans inverser l'ownership ;
- les tests ciblés passent ;
- les validations workspace finales passent ;
- le graphe de dépendances est audité ;
- `README.md` et `USAGE.md` sont complets ;
- TODO/hors scope sont fermés ou reportés explicitement ;
- le prompt final `0.2.2` est prêt ;
- le prompt final `0.2.2 — HTTP Accounts + Tokens` est prêt ;
- les 48 méthodes courantes reportées restent affectées explicitement à `0.2.2``0.2.6` ;
- la release entière a été clôturée dans la session qui l'a ouverte.
## 20. Release suivante
## 20. Release suivante après split
La release suivante prévue est :
```text
0.2.2 — ksp-wallet-lib / .kspwallet foundation
0.2.2 — ksp-onchain-transport-lib / HTTP Accounts + Tokens
```
Elle devra utiliser les fondations N1 mais **ne pas dépendre du transport** pour son cœur cryptographique/format.
Elle doit compléter les 5 méthodes Accounts restantes et les 5 méthodes Tokens, après revérification de la documentation officielle actuelle.
Le transport `0.2.1` sera ensuite composé avec Wallet dans `0.2.3 — ksp-app-wallet-desk` pour afficher notamment le solde réseau du wallet.
La suite HTTP reste :
```text
0.2.3 Transactions
0.2.4 Blocks
0.2.5 Cluster
0.2.6 Economics + compliance finale
```
Wallet passe à `0.2.7` et Wallet Desk à `0.2.8`. Le cœur cryptographique/format de Wallet restera indépendant du transport ; Wallet Desk composera ensuite Wallet et la surface HTTP stabilisée.
## Instruction d'ouverture