v0.2.1-pre.005-fix.001

This commit is contained in:
2026-08-17 20:40:08 +02:00
parent ac1b1033c4
commit 14bcbf2cfb
16 changed files with 238 additions and 29 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/008-V0_2_1_ONCHAIN_HTTP_PLAN.md -->
<!-- version: 6 -->
<!-- version: 7 -->
# `0.2.1-pre.001` — plan `ksp-onchain-transport-lib` HTTP Solana foundation
@@ -718,7 +718,7 @@ ksp-core-lib path/workspace
ksp-logging-lib path/workspace
```
`pre.002` utilisait `reqwest` uniquement pour le parsing/validation robuste de `HttpEndpointUrl`. `pre.003` crée réellement les clients HTTP logiques et active donc la feature `rustls` de `reqwest 0.13` au workspace, toujours avec `default-features = false`. Aucune feature `json` n'est nécessaire : KSP possède déjà son encodage JSON-RPC via `serde_json`. Aucune dépendance Tokio directe n'est ajoutée tant que `pre.004` n'utilise pas effectivement ses primitives de concurrence/attente.
`pre.002` utilisait `reqwest` uniquement pour le parsing/validation robuste de `HttpEndpointUrl`. `pre.003` crée réellement les clients HTTP logiques et active donc localement la feature `rustls` de `reqwest 0.13` dans `ksp-onchain-transport-lib`, tandis que le workspace conserve `default-features = false` sans feature dusage globale. Aucune feature `json` n'est nécessaire : KSP possède déjà son encodage JSON-RPC via `serde_json`. Aucune dépendance Tokio directe n'est ajoutée tant que `pre.004` n'utilise pas effectivement ses primitives de concurrence/attente.
Ne pas ajouter :
@@ -741,6 +741,8 @@ Target KSP :
ksp-onchain-transport-lib
```
Ce target est possédé explicitement par `src/constants.rs` via `pub(crate) const TRACING_TARGET: &str = "ksp-onchain-transport-lib"`; les appels de logging utilisent `crate::TRACING_TARGET` conformément à `DEP-LOG-010/011`. `env!("CARGO_PKG_NAME")` reste réservé aux usages où lidentité Cargo est réellement la donnée recherchée, par exemple le User-Agent HTTP.
Événements :
- création client/pool ;
@@ -947,6 +949,8 @@ Restent à `pre.005` : exécution HTTP JSON-RPC réelle et wrappers typés `getH
- les deux canaries de dépendances générales quittent `ksp-onchain-transport-lib/tests/dependency_boundary.rs` et sont centralisées sous `ksp-core-lib/tests/workspace_dependencies.rs`, conformément à `DEP-CARGO-007` ;
- Transport compte désormais **78 tests déclarés** ; Core porte 2 canaries workspace supplémentaires dans sa surface d'intégration.
`pre.005-fix.001` normalise ensuite le contrat de target KSP : Transport et Config possèdent désormais leur `TRACING_TARGET` principal dans `src/constants.rs`, les targets comportementaux ne dépendent plus de `env!("CARGO_PKG_NAME")` ni de littéraux dispersés, et une canarie workspace Core protège cette convention. Lusage Cargo de `CARGO_PKG_NAME` pour le User-Agent Transport reste volontaire et autorisé.
Restent à `pre.006` : document/schema/exemple `std.transport`, enregistrement Config, adapter Config -> Transport et tests de sensibilité/provenance/env.
## 23. Séquence `0.2.x` recalibrée

View File

@@ -1,5 +1,5 @@
<!-- file: docs/rules/RULES_DEPENDENCIES.md -->
<!-- version: 13 -->
<!-- version: 14 -->
# Règles des dépendances KSP
@@ -54,6 +54,8 @@ Elles complètent les règles Rust générales et le graphe de `docs/architectur
- **DEP-LOG-007** — Une application/framework peut exceptionnellement intégrer directement un plugin/dépendance tracing imposé par son framework, notamment Tauri, sans créer une seconde politique de logging parallèle à `ksp-logging-lib`; les événements KSP restent émis via la façade KSP.
- **DEP-LOG-008** — `ksp-logging-lib` possède ses settings runtime et son hot reload ; `ksp-config-lib` peut plus tard construire ces settings et demander une reconfiguration sans créer de dépendance inverse Logging -> Config.
- **DEP-LOG-009** — Tout bridge `tracing` public mais caché de la documentation rendu techniquement nécessaire par lexpansion des macros de `ksp-logging-lib` est un détail dimplémentation réservé à ces macros ; une crate consommatrice ne lutilise jamais directement et reste limitée à la façade KSP documentée.
- **DEP-LOG-010** — Toute crate KSP comportementale qui émet des événements/spans via `ksp-logging-lib` possède un target principal explicite `pub(crate) const TRACING_TARGET: &str` dans `src/constants.rs`, égal au nom Cargo de la crate. Les appels utilisent ce symbole (ou un target spécialisé possédé par le même `constants.rs`) plutôt quun littéral dispersé.
- **DEP-LOG-011** — `env!("CARGO_PKG_NAME")` ne sert pas de target de tracing/logging KSP : le target appartient au contrat dobservabilité et doit rester explicite dans le code. Les metadata Cargo restent autorisées lorsquelles sont réellement la donnée recherchée, par exemple pour un User-Agent ou une information de build.
## Program / Execution