196 lines
6.8 KiB
Markdown
196 lines
6.8 KiB
Markdown
<!-- file: deltas/0.2.0/pre.002.md -->
|
||
<!-- version: 1 -->
|
||
|
||
# Delta `0.2.0-pre.002`
|
||
|
||
## Identité
|
||
|
||
```text
|
||
release : 0.2.0
|
||
prerelease : pre.002
|
||
identifiant de commit attendu : v0.2.0-pre.002
|
||
workspace.package.version : 0.2.0-pre.2
|
||
base : 0.2.0-pre.001
|
||
```
|
||
|
||
Cette livraison est une **nouvelle tranche planifiée** et non un `pre.001-fix.001` : `pre.001` avait volontairement laissé le découpage `0.2.1+` ouvert. `pre.002` ajoute de nouvelles décisions de planification/architecture issues de l'audit et du brainstorming suivants.
|
||
|
||
## Mission
|
||
|
||
Consolider le plan de série `0.2.x`, fixer la première séquence fonctionnelle, corriger l'ancienne ambiguïté D1/D2 liée au décodage Program, établir la progression `RAW -> CORE -> DECODE -> SPECIALIZED`, formaliser la discipline de sizing d'une release/session et préparer un prompt de démarrage complet pour `0.2.1`.
|
||
|
||
Aucune capacité Solana runtime N2 n'est implémentée dans cette tranche.
|
||
|
||
## Décisions principales
|
||
|
||
### Dimensionnement
|
||
|
||
- une prerelease vise environ 15–20 minutes de travail effectif ;
|
||
- une release concrète doit être entièrement clôturable dans une seule session de chat ;
|
||
- si `pre.001` révèle un risque de dépassement, la release est scindée avant implémentation fonctionnelle lourde.
|
||
|
||
### Début de `0.2.x`
|
||
|
||
```text
|
||
0.2.1 HTTP Solana foundation
|
||
0.2.2 ksp-wallet-lib / .kspwallet
|
||
0.2.3 ksp-app-wallet-desk
|
||
0.2.4 standard WebSocket
|
||
0.2.5 Helius LaserStream WebSocket
|
||
0.2.6 Yellowstone gRPC standard foundation
|
||
0.2.7 off-chain price transport
|
||
0.2.8 price desk
|
||
0.2.9 ksp-interface-lib foundation
|
||
0.2.10 ksp-program-api foundation
|
||
```
|
||
|
||
HTTP précède Wallet afin que Wallet Desk puisse être validé avec un solde réseau réel.
|
||
|
||
### Transport
|
||
|
||
- `ksp-onchain-transport-lib` possède ses settings publics et ne dépend pas de Config ;
|
||
- `ksp-config-lib` peut fournir un document standard Transport et un adapter Config -> Transport ;
|
||
- pools/rôles/priorités/limites HTTP sont retenus ;
|
||
- toute méthode documentée de la surface normative ciblée doit être inventoriée/implémentée sauf impossibilité documentée ;
|
||
- une méthode deprecated/obsolete encore fonctionnelle émet un warning KSP à l'utilisation ;
|
||
- une méthode unstable/experimental émet également un warning KSP ;
|
||
- WebSocket autorise plusieurs sessions sur une même URL mais n'impose pas encore un pool automatique ;
|
||
- Helius WS réutilise le moteur standard ;
|
||
- Yellowstone reste provider-neutral dans sa première version ;
|
||
- providers avancés/shred streams sont reportés dans IDEAS.
|
||
|
||
### Wallet
|
||
|
||
- format natif KSP : `.kspwallet` ;
|
||
- temporary wallet JSON historique abandonné ;
|
||
- `WalletPolicy` sort de Wallet et relève de la future execution policy ;
|
||
- import/export reste extensible, formats supplémentaires suivis dans IDEAS.
|
||
|
||
### Interface / Program / Policy
|
||
|
||
- `ksp-interface-lib` expose sa propre API publique wire ; pas de `ksp-interface-api` séparée actuellement ;
|
||
- nomenclature confirmée : `ksp-program-api` / `ksp-program-lib` ;
|
||
- `ksp-execution-policy-api` reste le contrat commun ; petites policies locales dans scenarios/orchestrateurs, libs communes uniquement si réutilisation réelle.
|
||
|
||
### Données
|
||
|
||
La chaîne durable devient explicitement :
|
||
|
||
```text
|
||
RAW -> CORE -> DECODE -> SPECIALIZED
|
||
```
|
||
|
||
- RAW et CORE ne nécessitent aucun decoder Program ;
|
||
- CORE est une normalisation générique Solana ;
|
||
- Program decoding commence à CORE -> DECODE ;
|
||
- à partir de DECODE, progression verticale groupe par groupe.
|
||
|
||
### Groupes Program
|
||
|
||
Ordre prioritaire :
|
||
|
||
```text
|
||
Solana Core Programs
|
||
-> SPL token/trading
|
||
-> token metadata
|
||
-> Anchor
|
||
-> Meteora
|
||
-> Raydium
|
||
-> Pump
|
||
-> Orca
|
||
-> Market Desk V1
|
||
-> Jupiter/OKX routing
|
||
-> Market Desk V2
|
||
-> trading-adjacent
|
||
-> general decoding
|
||
```
|
||
|
||
Les programmes satellites nécessaires restent dans leur groupe : Meteora vaults avec Meteora, Pump fee avec Pump, etc.
|
||
|
||
### Market Desk
|
||
|
||
Une première `ksp-app-market-desk` est prévue après les DEX prioritaires pour afficher notamment tokens, pools, liquidity, trades, prix et OHLC. Elle est enrichie après routing avec routes/legs/fees/slippage/quote-execution.
|
||
|
||
## Fichiers modifiés
|
||
|
||
```text
|
||
Cargo.toml
|
||
ROADMAP.md
|
||
docs/000-README.md
|
||
docs/IDEAS.md
|
||
docs/architecture/002-LAYERS_AND_DEPENDENCIES.md
|
||
docs/architecture/003-COMPONENT_CONTRACTS.md
|
||
docs/architecture/004-COMPONENT_INVENTORY.md
|
||
docs/architecture/005-DEPENDENCY_GRAPH.md
|
||
docs/architecture/006-WIRE_AND_PROGRAM.md
|
||
docs/architecture/007-EXECUTION_AND_POLICY.md
|
||
docs/architecture/008-DATA_MATERIALIZATION_AND_STORE.md
|
||
docs/architecture/009-ACQUISITION_WORKERS_AND_JOBS.md
|
||
docs/architecture/010-APPS_SERVICES_SCENARIOS_AND_CONTROL.md
|
||
docs/plans/000-README.md
|
||
docs/plans/001-V0_0_3_PLAN.md
|
||
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
|
||
docs/plans/007-V0_2_0_SERIES_PLANNING.md
|
||
docs/rules/PROMPT_STRUCTURE.md
|
||
docs/rules/RULES_DEPENDENCIES.md
|
||
docs/rules/RULES_KSP.md
|
||
prompts/000-README.md
|
||
```
|
||
|
||
## Fichier ajouté
|
||
|
||
```text
|
||
prompts/006-V0_2_1_START_PROMPT.md
|
||
```
|
||
|
||
Le prompt `0.2.1` impose notamment :
|
||
|
||
- audit bot3 précis ;
|
||
- consultation des sources officielles Solana actuelles ;
|
||
- matrice exhaustive des méthodes HTTP ;
|
||
- classification stable/deprecated/unstable ;
|
||
- warnings runtime appropriés ;
|
||
- ownership Config/Transport ;
|
||
- pools/rôles/limites ;
|
||
- tests/canaries ;
|
||
- gate de sizing avant grosse implémentation ;
|
||
- préparation du futur plan `docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md`.
|
||
|
||
## Validations réalisées dans l'environnement d'échange
|
||
|
||
- parsing TOML du `Cargo.toml` via Python `tomllib` ;
|
||
- contrôle de la version Cargo `0.2.0-pre.2` ;
|
||
- contrôle des en-têtes `<!-- file: ... -->` / `<!-- version: ... -->` des fichiers modifiés ;
|
||
- contrôle des fences Markdown équilibrées ;
|
||
- contrôle des liens Markdown locaux des fichiers modifiés ;
|
||
- recherche de contradictions actives principales (`ksp-program-api-lib`, ancienne dépendance Program dans RAW -> CORE, anciennes chaînes de workers/pipelines figées) ;
|
||
- annotation explicite du plan historique `0.0.3` pour distinguer ses anciennes décisions des règles désormais actives ;
|
||
- contrôle de l'archive d'échange et calcul SHA-256.
|
||
|
||
## Validations non exécutables dans cet environnement
|
||
|
||
Le conteneur d'échange ne fournit ni `cargo` ni `rustc`. Les commandes Rust doivent donc être exécutées après application sur le dépôt canonique :
|
||
|
||
```bash
|
||
cargo fmt --all
|
||
cargo check --workspace
|
||
cargo clippy --workspace --all-targets
|
||
cargo test --workspace
|
||
```
|
||
|
||
Aucune de ces commandes n'est déclarée réussie dans ce delta.
|
||
|
||
## Commit attendu
|
||
|
||
Après application et validations sur le dépôt canonique :
|
||
|
||
```text
|
||
v0.2.0-pre.002
|
||
```
|
||
|
||
Conformément aux règles KSP, ce commit de prerelease ne reçoit pas de tag Git stable.
|
||
|
||
## Suite
|
||
|
||
Le travail restant de `0.2.0` est volontairement court : audit de cohérence final, correction des écarts documentaires restants, finalisation du prompt `0.2.1`, puis publication `0.2.0-rel.001` lorsque le cadrage est validé.
|