v0.2.8-pre.011

This commit is contained in:
2026-08-23 20:01:28 +02:00
parent d8bfd7cd2e
commit 7cdf5e80c9
10 changed files with 1671 additions and 24 deletions

View File

@@ -1,12 +1,12 @@
# file: Cargo.toml # file: Cargo.toml
# version: 234 # version: 235
[workspace] [workspace]
resolver = "3" resolver = "3"
members = ["crates/ksp-app-config-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-wallet-lib"] members = ["crates/ksp-app-config-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-wallet-lib"]
[workspace.package] [workspace.package]
version = "0.2.8-pre.10" version = "0.2.8-pre.11"
edition = "2024" edition = "2024"
license = "MIT" license = "MIT"
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"

207
deltas/0.2.8/pre.011.md Normal file
View File

@@ -0,0 +1,207 @@
<!-- file: deltas/0.2.8/pre.011.md -->
<!-- version: 1 -->
# Delta `0.2.8-pre.011` — candidate finale + indexes + prompt `0.2.9`
## Objet
Fermer la candidate documentaire de `0.2.8` après le gate opérateur complet de `pre.010`, synchroniser les index qui décrivaient encore des états intermédiaires de la release et préparer un prompt de démarrage `0.2.9` autonome, conforme à `docs/rules/PROMPT_STRUCTURE.md`, avant la publication stable `rel.001`.
Cette tranche ne modifie aucune capacité runtime HTTP/WebSocket, aucun contrat Config et aucune dépendance Rust.
## Base et preuve opérateur héritée
Le gate `0.2.8-pre.10` fourni le 2026-08-23 est entièrement vert :
```text
cargo fmt --all OK
python3 scripts/audit_rust_workspace_rules.py clean
General Rust rule audit clean
Rust export completeness audit 0 candidate(s)
KSP workspace Rust rule audit clean
cargo check --workspace OK / sans warning
cargo clippy --workspace --all-targets OK / sans warning
Transport unit 335/335
Transport public API 41/41
release completeness 34/34
Transport doctests 4/4
cargo test --workspace OK
cargo tree -p ksp-onchain-transport-lib exécuté
cargo tree -p ksp-onchain-transport-lib --duplicates exécuté
cargo tree --duplicates exécuté
```
Le graphe Transport conserve uniquement ses dépendances acquises. Les doublons ciblés visibles dans ce sous-graphe (`syn` 2/3 et `webpki-roots` 0.26/1.0) sont transitifs. Les autres duplications du workspace proviennent principalement des stacks Tauri/GTK, JSON Schema et Wallet/Solana crypto ; aucune dérive nouvelle propre à `0.2.8` n'est identifiée.
Verdict hérité : **`pre.010` DONE.**
## Candidate fonctionnelle `0.2.8`
L'état que `pre.011` fige au niveau candidate reste :
```text
HTTP 52 méthodes current + 14 historical
Solana Standard WebSocket 9 familles / 18 subscribe-unsubscribe
Helius standard réutilisé account/logs/program/root/signature/slot/slotsUpdates
Helius extension transactionSubscribe / transactionUnsubscribe
Helius absent block / vote
slotsUpdates unstable
heartbeat Helius WebSocket Ping control frame / 60 s
Config V2 helius_laserstream + provenance/redaction secret
moteur physique un seul WsSession actor partagé
smoke Helius live reporté vers future intégration/orchestration
LaserStream gRPC backend distinct, hors namespace WebSocket
```
Aucun changement runtime n'est nécessaire dans `pre.011`.
## Prompt `0.2.9`
Création de :
```text
prompts/014-V0_2_9_START_PROMPT.md
```
Titre :
```text
0.2.9 — Yellowstone gRPC standard/provider-neutral
```
Le prompt a été construit après relecture de :
```text
docs/rules/PROMPT_STRUCTURE.md
prompts/010-V0_2_5_START_PROMPT.md
prompts/011-V0_2_6_START_PROMPT.md
prompts/012-V0_2_7_START_PROMPT.md
prompts/013-V0_2_8_START_PROMPT.md
```
Le squelette reprend la structure stricte récente de `0.2.7`/`0.2.8`, tout en conservant la profondeur métier/threat-model/sizing des prompts `0.2.5`/`0.2.6`.
Le prompt contient explicitement les rubriques requises par `PROMPT_STRUCTURE.md` :
```text
identité/base exacte
mission/résultat
sources internes ordonnées
sources externes à réauditer
état stable à préserver
frontières architecturales/dependencies
décisions acquises/questions ouvertes
objectifs/livrables/hors périmètre
sécurité/API/lifecycle/resources
pre.001 détaillée + gate de sortie
prévision souple initiale détaillée
version/deltas/commits/archives/tags
validation opérateur
critères de clôture
release suivante
instruction d'ouverture
```
### Gate `0.2.9-pre.001`
Le prompt interdit l'implémentation lourde Yellowstone avant :
- audit du service/proto upstream réellement courant ;
- classification standard/provider-extension de chaque RPC/message ;
- audit de `Subscribe`, unary RPCs, replay/from_slot et extensions deshred ;
- comparaison des stratégies `yellowstone-grpc-client`, `yellowstone-grpc-proto + tonic` ou wire KSP borné ;
- audit licence/MSRV/features/build-dependencies/transitifs ;
- architecture gRPC distincte de HTTP/WS ;
- threat model ;
- sizing et recalibrage du forecast.
Le snapshot upstream du 2026-08-23 est uniquement informatif. Le repository/master observé comporte un workspace AGPL-3.0 et des versions Yellowstone/Tonic/Prost qui ne sont pas nécessairement synchronisées avec les releases/crates stables. Le prompt exige donc l'audit de la licence exacte de chaque crate/proto/source réellement utilisé avant toute dépendance, copie ou génération vendored dans KSP MIT.
### Forecast initial souple `0.2.9`
Le prompt fournit un forecast de départ détaillé :
```text
pre.001 audit/matrice/licences/dependencies/architecture/threat-model/sizing
pre.002 stratégie proto/client + settings/errors/façade provider-neutral
pre.003 connexion/TLS/metadata + lifecycle minimal + unary canaries
pre.004 SubscribeRequest foundation + validations/bounds communs
pre.005 Accounts + Slots
pre.006 Transactions + transaction_status
pre.007 Blocks + block_meta + entry / autres variantes retenues
pre.008 stream bidirectionnel + mutation/Ping/backpressure/shutdown
pre.009 reconnect/resubscribe/from_slot/replay/adversarial
pre.010 Config -> Transport gRPC si retenu par l'audit
pre.011 compliance Yellowstone + non-régressions HTTP/WS
pre.012 live opt-in si sûr + README/USAGE + cargo tree final
pre.013 workspace final + plan/matrice/indexes + prompt 0.2.10
rel.001 publication stable stricte
```
Ce forecast est explicitement recalibrable en `pre.001`, autorise fixes et prereleases supplémentaires, et impose un split avant client lourd si la surface réelle est trop grande pour une release concrète raisonnable.
## Synchronisation documentaire
Les index et la séquence fonctionnelle sont mis à jour pour refléter l'état candidate réel de `0.2.8` et l'existence du prompt `0.2.9` :
```text
docs/000-README.md
docs/plans/000-README.md
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
docs/plans/015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md
docs/validation/000-README.md
docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md
prompts/000-README.md
```
`ROADMAP.md` et `CHANGELOG.md` restent volontairement inchangés : leur synchronisation stable appartient à `rel.001`, conformément au workflow KSP.
## Version
```text
workspace.package.version = 0.2.8-pre.11
livraison = 0.2.8-pre.011
commit attendu = v0.2.8-pre.011
Git tag = aucun
```
## Fichiers de la livraison
Overlay attendu :
```text
Cargo.toml
deltas/0.2.8/pre.011.md
docs/000-README.md
docs/plans/000-README.md
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
docs/plans/015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md
docs/validation/000-README.md
docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md
prompts/000-README.md
prompts/014-V0_2_9_START_PROMPT.md
```
## Gate opérateur
```bash
cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-onchain-transport-lib
cargo test --workspace
```
Comptages Transport attendus, inchangés :
```text
unit 335
public API 41
release completeness 34
doctests 4
```
Les `cargo tree` n'ont pas besoin d'être rejoués pour cette tranche documentaire/versionnée : aucun manifest de dépendances n'est modifié hors la version workspace, et les trois graphes finaux ont déjà été fournis au gate `pre.010`.
Si ce gate est vert, la prochaine tranche est `0.2.8-rel.001`. `pre.012+` reste possible uniquement si un défaut réel est découvert.

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/000-README.md --> <!-- file: docs/plans/000-README.md -->
<!-- version: 57 --> <!-- version: 58 -->
# Plans KSP # Plans KSP
@@ -23,7 +23,7 @@ Un plan décrit le périmètre, les décisions déjà acquises, les questions ou
- [`012-V0_2_5_WALLET_FOUNDATION_PLAN.md`](012-V0_2_5_WALLET_FOUNDATION_PLAN.md) — plan historique clôturé de la release stable `0.2.5 — Wallet foundation`, ouvert par `pre.001`, livré jusquà `pre.010`, renforcé par `pre.010-fix.001``fix.003` pour Dalek 3 et la normalisation Rust/audit structurel, puis publié par `rel.001`; il couvre `.kspwallet` V1, VIEW/OWNER, crypto, persistence, administration, transfer et compliance. - [`012-V0_2_5_WALLET_FOUNDATION_PLAN.md`](012-V0_2_5_WALLET_FOUNDATION_PLAN.md) — plan historique clôturé de la release stable `0.2.5 — Wallet foundation`, ouvert par `pre.001`, livré jusquà `pre.010`, renforcé par `pre.010-fix.001``fix.003` pour Dalek 3 et la normalisation Rust/audit structurel, puis publié par `rel.001`; il couvre `.kspwallet` V1, VIEW/OWNER, crypto, persistence, administration, transfer et compliance.
- [`013-V0_2_6_WALLET_DESK_PLAN.md`](013-V0_2_6_WALLET_DESK_PLAN.md) — plan historique clôturé de la release stable `0.2.6 — Wallet Desk`, ouvert par `pre.001`, étendu en `pre.015``pre.017` au wire binaire `.kspwallet` V2, aux APIs multi-version et à la migration V1 -> V2, puis fermé par `pre.018`/`fix.001` avec le runtime Tauri packagé et le build final vert avant publication `rel.001`. - [`013-V0_2_6_WALLET_DESK_PLAN.md`](013-V0_2_6_WALLET_DESK_PLAN.md) — plan historique clôturé de la release stable `0.2.6 — Wallet Desk`, ouvert par `pre.001`, étendu en `pre.015``pre.017` au wire binaire `.kspwallet` V2, aux APIs multi-version et à la migration V1 -> V2, puis fermé par `pre.018`/`fix.001` avec le runtime Tauri packagé et le build final vert avant publication `rel.001`.
- [`014-V0_2_7_ONCHAIN_WEBSOCKET_PLAN.md`](014-V0_2_7_ONCHAIN_WEBSOCKET_PLAN.md) — plan historique clôturé de la release stable `0.2.7 — WebSocket Solana standard`, ouvert par `pre.001`, exécuté jusquà `pre.014`, corrigé documentairement par `pre.014-fix.001` puis publié par `rel.001`; il conserve linventaire officiel 18 méthodes, le modèle session/subscription, le threat model, les preuves de compliance/smoke/dépendances et la préparation de `0.2.8`. - [`014-V0_2_7_ONCHAIN_WEBSOCKET_PLAN.md`](014-V0_2_7_ONCHAIN_WEBSOCKET_PLAN.md) — plan historique clôturé de la release stable `0.2.7 — WebSocket Solana standard`, ouvert par `pre.001`, exécuté jusquà `pre.014`, corrigé documentairement par `pre.014-fix.001` puis publié par `rel.001`; il conserve linventaire officiel 18 méthodes, le modèle session/subscription, le threat model, les preuves de compliance/smoke/dépendances et la préparation de `0.2.8`.
- [`015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md`](015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md) — plan actif de `0.2.8 — Helius LaserStream WebSocket`, ouvert par `pre.001`; il conserve laudit Helius du 23 août 2026, la matrice provider, le choix `HeliusLaserStream`, la stratégie transaction/heartbeat/Config/secrets et le forecast souple recalibré. - [`015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md`](015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md) — plan candidat de `0.2.8 — Helius LaserStream WebSocket`, ouvert par `pre.001` et fermé techniquement/documentairement jusquà `pre.011`; il conserve la surface finale Helius `7 standard + transaction`, heartbeat/Config/secrets, lhistorique des fixes heartbeat, la stratégie live architecture-safe, les graphes Cargo finaux et la préparation du prompt `0.2.9`.
Le `pre.001` de chaque release fonctionnelle peut introduire son propre plan détaillé lorsque la release s'ouvre. 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 --> <!-- file: docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md -->
<!-- version: 83 --> <!-- version: 84 -->
# Séquence des releases fonctionnelles KSP # Séquence des releases fonctionnelles KSP
@@ -465,11 +465,11 @@ La candidate atteint `pre.014` après matérialisation des 9 familles standard,
### `0.2.8` — Helius LaserStream WebSocket ### `0.2.8` — Helius LaserStream WebSocket
Mission active : étendre le moteur WebSocket standard avec la surface Helius LaserStream WebSocket actuelle sans copier le client/session actor. Le gate `pre.001` est conservé dans [`015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md`](015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md) et la matrice active dans [`../validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md`](../validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md). Mission candidate : étendre le moteur WebSocket standard avec la surface Helius LaserStream WebSocket actuelle sans copier le client/session actor. Le gate et l'historique complet sont conservés dans [`015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md`](015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md) et la matrice candidate dans [`../validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md`](../validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md).
L'audit Helius du 23 août 2026 retient `helius_laserstream` comme nouveau protocol kind : les six familles standard `account/logs/program/root/signature/slot` réutilisent les wrappers publiés, tandis que `block/slotsUpdates/vote` sont rejetées avant I/O sur Helius selon l'index provider exhaustif. `transactionSubscribe`/`transactionUnsubscribe` et `tokenAccounts` constituent la nouvelle surface typed principale. `notifyOn`, désormais deprecated et no-op depuis Agave 4.2, n'est pas exposé. Un heartbeat Helius-only est planifié dans l'actor existant pour le timeout d'inactivité provider. Le réaudit final Helius du 23 août 2026 retient `helius_laserstream` comme protocol kind WebSocket : les sept familles standard `account/logs/program/root/signature/slot/slotsUpdates` réutilisent les wrappers publiés, `block/vote` restent absents et `transactionSubscribe`/`transactionUnsubscribe` constitue l'extension provider-specific. `slotsUpdates` conserve son statut unstable, `notifyOn` deprecated/no-op n'est pas exposé et le heartbeat Helius-only envoie un WebSocket Ping control frame toutes les 60 secondes depuis l'actor partagé.
Le forecast souple est recalibré jusqu'à `pre.010` avant `rel.001`; le numéro final reste non contractuel. Aucun SDK Helius, aucune dépendance gRPC et aucun replay historique WebSocket ne sont introduits. `pre.010` ferme README/USAGE, la stratégie smoke live architecture-safe et les graphes Cargo finaux ; `pre.011` prépare la candidate documentaire et [`../../prompts/014-V0_2_9_START_PROMPT.md`](../../prompts/014-V0_2_9_START_PROMPT.md). Aucun SDK Helius, aucune dépendance gRPC et aucun replay historique WebSocket ne sont introduits. La publication stable reste réservée à `rel.001`.
### `0.2.9` — Yellowstone gRPC standard ### `0.2.9` — Yellowstone gRPC standard

View File

@@ -1,9 +1,9 @@
<!-- file: docs/plans/015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md --> <!-- file: docs/plans/015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md -->
<!-- version: 24 --> <!-- version: 25 -->
# Plan `0.2.8` — Helius LaserStream WebSocket # Plan `0.2.8` — Helius LaserStream WebSocket
> **Statut : `0.2.8-pre.009` est validé intégralement par lopérateur : fmt/audit/check/Clippy, 335 unit Transport, 41 API, 33 completeness, 4 doctests et workspace complet verts. `0.2.8-pre.010` synchronise README/USAGE, ferme la stratégie de smoke live sans violer lownership Config/Transport et demande le cargo tree final à lopérateur.** > **Statut : `0.2.8-pre.010` est validé intégralement par lopérateur : fmt/audit/check/Clippy, 335 unit Transport, 41 API, 34 completeness, 4 doctests, workspace complet et trois audits `cargo tree` exécutés. `0.2.8-pre.011` prépare la candidate documentaire finale, ferme plan/matrice/indexes et crée le prompt autonome `0.2.9`.**
## 1. Objet, base et état courant ## 1. Objet, base et état courant
@@ -41,14 +41,15 @@ pre.007-fix.003 heartbeat Transport fermé
pre.007-fix.004 alignement canari dependency-firewall Tokio dev validé pre.007-fix.004 alignement canari dependency-firewall Tokio dev validé
pre.008 adversarial provider/capabilities/payload/security validé pre.008 adversarial provider/capabilities/payload/security validé
pre.009 compliance provider/current + slotsUpdates Helius validé pre.009 compliance provider/current + slotsUpdates Helius validé
pre.010 documentation/smoke policy/cargo tree final — préparé pre.010 documentation/smoke policy/cargo tree final validé
pre.011 clôture candidate plan/matrice/indexes + prompt 0.2.9 — préparé
workspace.package.version courant = 0.2.8-pre.10 workspace.package.version courant = 0.2.8-pre.11
commit attendu = v0.2.8-pre.010 commit attendu = v0.2.8-pre.011
aucun tag prerelease aucun tag prerelease
``` ```
Le checkpoint opérateur de `pre.003` est intégralement vert : `cargo fmt`, audit Rust, `cargo check --workspace`, `cargo clippy --workspace --all-targets`, tests Transport et `cargo test --workspace`. Les six familles standard Helius sont donc acquises sans dette de gate avant l'ouverture de Config Helius en `pre.004`. Le checkpoint opérateur de `pre.010` est intégralement vert, y compris les trois audits `cargo tree`. La candidate `pre.011` ne rouvre aucune capacité runtime : elle synchronise uniquement la documentation de clôture et le contrat de démarrage `0.2.9`.
## 2. Forecast souple courant ## 2. Forecast souple courant
@@ -82,9 +83,9 @@ pre.007 DONE — heartbeat Helius WebSocket/idle + timers + interaction reconne
pre.008 DONE — provider adversarial lifecycle + capability guards + payload/backpressure + security/redaction pre.008 DONE — provider adversarial lifecycle + capability guards + payload/backpressure + security/redaction
pre.009 DONE — compliance Helius WebSocket + réconciliation documentaire `slotsUpdates` pre.009 DONE — compliance Helius WebSocket + réconciliation documentaire `slotsUpdates`
+ non-régressions Solana standard 18/18 + HTTP 52/14 + Config/API/dependency-firewall canaries + non-régressions Solana standard 18/18 + HTTP 52/14 + Config/API/dependency-firewall canaries
pre.010 PREPARED — stratégie smoke Helius live fermée sans nouveau cross-crate owner + README/USAGE pre.010 DONE — stratégie smoke Helius live fermée sans nouveau cross-crate owner + README/USAGE
+ cargo tree direct/duplicates final à rejouer par lopérateur + cargo tree direct/duplicates final exécutés et inspectés
pre.011 validation workspace finale + fermeture plan/matrice/indexes + prompt 0.2.9 pre.011 PREPARED — validation workspace finale + fermeture plan/matrice/indexes + prompt 0.2.9 autonome
rel.001 publication stable stricte rel.001 publication stable stricte
``` ```
@@ -1523,3 +1524,96 @@ cargo tree --duplicates
`pre.011` reste bloqué jusquau gate complet et à linspection de ces graphes. `pre.011` reste bloqué jusquau gate complet et à linspection de ces graphes.
## 23. Fermeture `pre.010` et préparation `pre.011`
### 23.1 Gate opérateur `0.2.8-pre.10`
Le checkpoint opérateur du 23 août 2026 est intégralement vert :
```text
[x] cargo fmt --all
[x] python3 scripts/audit_rust_workspace_rules.py
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
KSP workspace Rust rule audit: clean
[x] cargo check --workspace
[x] cargo clippy --workspace --all-targets
[x] Transport unit = 335/335
[x] Transport public API = 41/41
[x] release completeness = 34/34
[x] Transport doctests = 4/4
[x] cargo test --workspace
[x] cargo tree -p ksp-onchain-transport-lib
[x] cargo tree -p ksp-onchain-transport-lib --duplicates
[x] cargo tree --duplicates
```
Le graphe Transport direct reste centré sur les dépendances déjà acquises (`futures-util`, `reqwest`, `serde`, `serde_json`, `tokio`, `tokio-tungstenite`, Core et Logging). Aucun SDK Helius/gRPC ni dépendance Config inverse n'apparaît.
Doublons ciblés Transport observés :
```text
syn 2.x / 3.x
webpki-roots 0.26.x / 1.x
```
Ils sont transitifs et non bloquants. Le graphe workspace complet expose d'autres duplications transitives provenant principalement de Tauri/GTK, JSON Schema et des stacks crypto Wallet/Solana ; aucune dérive nouvelle propre à `0.2.8` n'est identifiée.
Verdict : **`pre.010` DONE.**
### 23.2 Clôture documentaire `pre.011`
`pre.011` ne doit ajouter aucune capacité runtime Helius. Sa mission est :
```text
workspace.package.version = 0.2.8-pre.11
fermer le plan et la matrice au niveau candidate
synchroniser les index documentaires devenus obsolètes
créer prompts/014-V0_2_9_START_PROMPT.md
conserver ROADMAP/CHANGELOG pour la publication stable rel.001
rejouer le gate workspace final
```
Le prompt `0.2.9` est construit conformément à `docs/rules/PROMPT_STRUCTURE.md` et comparé aux prompts `0.2.5``0.2.8`. Il conserve notamment :
```text
base stable exacte et archive opérateur autoritaire
ordre de lecture interne obligatoire
sources externes Yellowstone à réauditer
état HTTP/WS/Helius à préserver
frontières Config/Transport/provider-neutral
questions ouvertes dependencies/proto/licence/lifecycle
première mission pre.001 audit/brainstorming/sizing obligatoire
prévision souple initiale détaillée et recalibrable
workflow version/delta/commit/archive/tag
validation Rust/cargo tree/smoke
critères de clôture
instruction d'ouverture interdisant le client lourd avant gate
```
Le réaudit préparatoire Yellowstone du 23 août 2026 confirme que l'upstream évolue rapidement (`Subscribe`, unary RPCs, replay, filtres enrichis et extensions deshred). Le prompt n'en fait aucun pin : il impose à `0.2.9-pre.001` de réauditer release, proto, crates, MSRV, features et licences avant de choisir les dépendances.
Critères `pre.011` :
```text
[ ] workspace.package.version = 0.2.8-pre.11
[ ] aucun code runtime Helius modifié
[ ] aucune nouvelle dépendance
[ ] prompt 0.2.9 autonome présent
[ ] prompt suit les 16 rubriques normatives de PROMPT_STRUCTURE
[ ] forecast 0.2.9 visible, détaillé et explicitement souple
[ ] prompt impose audit licence/dependencies avant Yellowstone/Tonic/Prost
[ ] prompt distingue Yellowstone standard des providers et de deshred/pré-exécution
[ ] docs/000, plans/000, validation/000, prompts/000 et séquence fonctionnelle synchronisés
[ ] ROADMAP non marqué stable avant rel.001
[ ] CHANGELOG non utilisé comme journal de prerelease
[ ] cargo fmt --all
[ ] audit Rust workspace clean
[ ] cargo check --workspace sans warning
[ ] cargo clippy --workspace --all-targets sans warning
[ ] cargo test -p ksp-onchain-transport-lib
[ ] cargo test --workspace
```
Si ce gate est vert, la prochaine livraison est `0.2.8-rel.001`; aucune `pre.012` n'est nécessaire sauf défaut réel.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/000-README.md --> <!-- file: docs/validation/000-README.md -->
<!-- version: 21 --> <!-- version: 22 -->
# Validations KSP # Validations KSP
@@ -19,4 +19,4 @@ Documents :
- [`008-V0_2_5_WALLET_SECURITY_COMPLIANCE.md`](008-V0_2_5_WALLET_SECURITY_COMPLIANCE.md) — matrice finale validée de la release stable `0.2.5`, threat model V1, canaris adversariaux, reproduction externe des vecteurs, audit de frontières, normalisation Rust/audit structurel, graphes Cargo et checkpoint final `pre.010-fix.003` vert. - [`008-V0_2_5_WALLET_SECURITY_COMPLIANCE.md`](008-V0_2_5_WALLET_SECURITY_COMPLIANCE.md) — matrice finale validée de la release stable `0.2.5`, threat model V1, canaris adversariaux, reproduction externe des vecteurs, audit de frontières, normalisation Rust/audit structurel, graphes Cargo et checkpoint final `pre.010-fix.003` vert.
- [`009-V0_2_6_WALLET_DESK_COMPLIANCE.md`](009-V0_2_6_WALLET_DESK_COMPLIANCE.md) — matrice finale validée de la release stable `0.2.6`, couvrant Wallet Desk, les wires V1/V2, la migration explicite, le runtime Tauri packagé, les frontières sécurité/ownership et le gate opérateur `pre.018-fix.001` avec build final Linux vert. - [`009-V0_2_6_WALLET_DESK_COMPLIANCE.md`](009-V0_2_6_WALLET_DESK_COMPLIANCE.md) — matrice finale validée de la release stable `0.2.6`, couvrant Wallet Desk, les wires V1/V2, la migration explicite, le runtime Tauri packagé, les frontières sécurité/ownership et le gate opérateur `pre.018-fix.001` avec build final Linux vert.
- [`010-V0_2_7_ONCHAIN_WEBSOCKET.md`](010-V0_2_7_ONCHAIN_WEBSOCKET.md) — matrice finale validée de la release stable `0.2.7`, ouverte par `pre.001`, fermée techniquement par `pre.014` puis publiée par `rel.001` : inventaire 9 subscribe + 9 unsubscribe, lifecycle borné, statuts unstable, compliance 18/18, non-régression HTTP 52+14, composition Config V2, smoke WebSocket Devnet et audit de dépendances. - [`010-V0_2_7_ONCHAIN_WEBSOCKET.md`](010-V0_2_7_ONCHAIN_WEBSOCKET.md) — matrice finale validée de la release stable `0.2.7`, ouverte par `pre.001`, fermée techniquement par `pre.014` puis publiée par `rel.001` : inventaire 9 subscribe + 9 unsubscribe, lifecycle borné, statuts unstable, compliance 18/18, non-régression HTTP 52+14, composition Config V2, smoke WebSocket Devnet et audit de dépendances.
- [`011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md`](011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md) — matrice active de `0.2.8`, ouverte par `pre.001` : support Helius par famille, `transactionSubscribe`/`transactionUnsubscribe`, `tokenAccounts`, `notifyOn` deprecated/no-op, capability validation, heartbeat provider, secrets et non-régressions Transport/Config. - [`011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md`](011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md) — matrice candidate finale de `0.2.8`, ouverte par `pre.001` et consolidée jusquà `pre.011` : Helius `account/logs/program/root/signature/slot/slotsUpdates + transaction`, `block/vote` absents, heartbeat provider, sécurité/redaction, lifecycle adversarial, non-régressions HTTP/WS, stratégie smoke live et graphes Cargo finaux.

View File

@@ -1,9 +1,9 @@
<!-- file: docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md --> <!-- file: docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md -->
<!-- version: 23 --> <!-- version: 24 -->
# Validation `0.2.8` — Helius LaserStream WebSocket # Validation `0.2.8` — Helius LaserStream WebSocket
> **Statut : `pre.009` est entièrement vert : 335/335 unit Transport, 41/41 API, 33/33 completeness, 4/4 doctests et workspace complet. `pre.010` est préparé pour synchroniser README/USAGE, verrouiller la stratégie de smoke live architecture-safe et rejouer le cargo tree final.** > **Statut : `pre.010` est entièrement vert : 335/335 unit Transport, 41/41 API, 34/34 completeness, 4/4 doctests, workspace complet et audits Cargo tree exécutés. `pre.011` est la candidate documentaire finale : matrice/indexes fermés et prompt `0.2.9` autonome préparé avant `rel.001`.**
## 1. Références ## 1. Références
@@ -32,6 +32,7 @@ pre.007 dependency-firewall fix deltas/0.2.8/pre.007-fix.004.md
pre.008 adversarial/compliance guard deltas/0.2.8/pre.008.md pre.008 adversarial/compliance guard deltas/0.2.8/pre.008.md
pre.009 compliance provider/current deltas/0.2.8/pre.009.md pre.009 compliance provider/current deltas/0.2.8/pre.009.md
pre.010 docs/smoke/tree final deltas/0.2.8/pre.010.md pre.010 docs/smoke/tree final deltas/0.2.8/pre.010.md
pre.011 candidate/prompt deltas/0.2.8/pre.011.md
validation standard WS docs/validation/010-V0_2_7_ONCHAIN_WEBSOCKET.md validation standard WS docs/validation/010-V0_2_7_ONCHAIN_WEBSOCKET.md
HTTP compliance docs/validation/007-V0_2_4_HTTP_FINAL_COMPLIANCE.md HTTP compliance docs/validation/007-V0_2_4_HTTP_FINAL_COMPLIANCE.md
KSP-TRANSPORT-007 docs/validation/005-V0_2_3_KSP_TRANSPORT_007_RETRO_AUDIT.md KSP-TRANSPORT-007 docs/validation/005-V0_2_3_KSP_TRANSPORT_007_RETRO_AUDIT.md
@@ -1057,3 +1058,69 @@ Le smoke live Helius est donc **différé vers la future surface dintégratio
Verdict courant : **`pre.010` PREPARED ; `pre.011` bloqué jusquau gate opérateur et au cargo tree final.** Verdict courant : **`pre.010` PREPARED ; `pre.011` bloqué jusquau gate opérateur et au cargo tree final.**
## 25. Gate `pre.010` fermé et candidate `pre.011`
### 25.1 Preuves opérateur `pre.010`
```text
[x] cargo fmt --all
[x] audit Rust = clean / 0 candidate
[x] cargo check --workspace = vert, sans warning
[x] cargo clippy --workspace --all-targets = vert, sans warning
[x] Transport unit = 335/335
[x] Transport public API = 41/41
[x] release completeness = 34/34
[x] Transport doctests = 4/4
[x] cargo test --workspace = vert
[x] cargo tree Transport direct = exécuté
[x] cargo tree Transport duplicates = exécuté
[x] cargo tree workspace duplicates = exécuté
```
Audit graphe :
```text
Transport direct : aucune dépendance nouvelle Helius/gRPC/Config
Transport duplicates ciblés : syn 2/3 + webpki-roots 0.26/1.0, transitifs
workspace duplicates : transitifs historiques Tauri/GTK/JSON Schema/crypto, non introduits par pre.010
```
Verdict : **`pre.010` DONE.**
### 25.2 Candidate `pre.011`
La clôture candidate doit prouver :
```text
[ ] version Cargo pre.11
[ ] zéro changement runtime provider
[ ] matrice Helius finale cohérente : 7 standard + transaction ; block/vote absents
[ ] Standard WS 18/18 et HTTP 52+14 conservés
[ ] stratégie smoke live différée vers intégration/orchestration conservée
[ ] dependency graph final enregistré comme non bloquant
[ ] prompts/014-V0_2_9_START_PROMPT.md présent
[ ] prompt 0.2.9 conforme PROMPT_STRUCTURE et autonome
[ ] prompt 0.2.9 contient un forecast souple détaillé
[ ] prompt 0.2.9 impose le gate audit/sizing avant client gRPC lourd
[ ] prompt 0.2.9 impose audit licence/MSRV/features/transitifs
[ ] prompt distingue standard Yellowstone, provider adapters et deshred/pré-exécution
[ ] index docs/plans/validation/prompts synchronisés
[ ] workspace complet vert
```
État fonctionnel candidat `0.2.8` :
```text
HTTP 52 current + 14 historical
Solana Standard WebSocket 9 familles / 18 opérations
Helius common account/logs/program/root/signature/slot/slotsUpdates
Helius extension transactionSubscribe/unsubscribe
Helius unsupported block/vote
heartbeat Ping control frame / 60 s / Helius only
Config V2 helius_laserstream + secret provenance/redaction
actor WsSession physique unique partagé
smoke provider live reporté vers future intégration/orchestration
```
Le prompt suivant vise `0.2.9 — Yellowstone gRPC standard/provider-neutral`. La release stable n'est pas encore publiée à `pre.011`; `ROADMAP.md` et `CHANGELOG.md` restent donc à finaliser dans `rel.001`.

View File

@@ -1,5 +1,5 @@
<!-- file: prompts/000-README.md --> <!-- file: prompts/000-README.md -->
<!-- version: 23 --> <!-- version: 24 -->
# Prompts KSP # Prompts KSP
@@ -34,3 +34,4 @@ Le prompt générique `0.1.x` a été affiné pendant `0.0.3` puis remplacé par
- [`011-V0_2_6_START_PROMPT.md`](011-V0_2_6_START_PROMPT.md) — prompt préparé par `0.2.5-pre.010` puis renforcé pendant `pre.010-fix.001``fix.003`, prompt historique consommé pour ouvrir `0.2.6 — Wallet Desk` après le tag stable `v0.2.5`; il impose une première tranche audit/sizing, rappelle les règles Rust/audit structurel, cadre Config composite + Wallet + HTTP `getBalance`, lifecycle VIEW/OWNER, sécurité password/export, validation frontend/Tauri et conserve le TODO `0.2.11` dintégration des prix offchain dans Wallet Desk après validation de la Price Desk spécialisée. - [`011-V0_2_6_START_PROMPT.md`](011-V0_2_6_START_PROMPT.md) — prompt préparé par `0.2.5-pre.010` puis renforcé pendant `pre.010-fix.001``fix.003`, prompt historique consommé pour ouvrir `0.2.6 — Wallet Desk` après le tag stable `v0.2.5`; il impose une première tranche audit/sizing, rappelle les règles Rust/audit structurel, cadre Config composite + Wallet + HTTP `getBalance`, lifecycle VIEW/OWNER, sécurité password/export, validation frontend/Tauri et conserve le TODO `0.2.11` dintégration des prix offchain dans Wallet Desk après validation de la Price Desk spécialisée.
- [`012-V0_2_7_START_PROMPT.md`](012-V0_2_7_START_PROMPT.md) — prompt réaligné par `0.2.6-pre.015` puis renforcé en contrat de reprise autonome par `0.2.6-pre.018-fix.002`; prompt historique consommé pour ouvrir `0.2.7 — WebSocket Solana standard` depuis `v0.2.6`, avec lectures/règles ordonnées, audit officiel et historique, threat-model session/subscription/reconnect/backpressure, matrice de compliance, gate `pre.001` strict et prévision souple de prereleases avant toute implémentation lourde. - [`012-V0_2_7_START_PROMPT.md`](012-V0_2_7_START_PROMPT.md) — prompt réaligné par `0.2.6-pre.015` puis renforcé en contrat de reprise autonome par `0.2.6-pre.018-fix.002`; prompt historique consommé pour ouvrir `0.2.7 — WebSocket Solana standard` depuis `v0.2.6`, avec lectures/règles ordonnées, audit officiel et historique, threat-model session/subscription/reconnect/backpressure, matrice de compliance, gate `pre.001` strict et prévision souple de prereleases avant toute implémentation lourde.
- [`013-V0_2_8_START_PROMPT.md`](013-V0_2_8_START_PROMPT.md) — prompt actif après publication `0.2.7-rel.001` et tag stable `v0.2.7`, préparé par `0.2.7-pre.014` puis renforcé en version 2 par `pre.014-fix.001`; il ouvre `0.2.8 — Helius LaserStream WebSocket` avec relecture des règles et de la surface WebSocket finale, réaudit Helius actuel, gate `pre.001` strict audit/brainstorming/sizing, réutilisation du moteur actor standard sans second client, frontières provider/Config/secrets explicites et forecast souple recalibrable avant toute implémentation lourde. - [`013-V0_2_8_START_PROMPT.md`](013-V0_2_8_START_PROMPT.md) — prompt actif après publication `0.2.7-rel.001` et tag stable `v0.2.7`, préparé par `0.2.7-pre.014` puis renforcé en version 2 par `pre.014-fix.001`; il ouvre `0.2.8 — Helius LaserStream WebSocket` avec relecture des règles et de la surface WebSocket finale, réaudit Helius actuel, gate `pre.001` strict audit/brainstorming/sizing, réutilisation du moteur actor standard sans second client, frontières provider/Config/secrets explicites et forecast souple recalibrable avant toute implémentation lourde.
- [`014-V0_2_9_START_PROMPT.md`](014-V0_2_9_START_PROMPT.md) — prompt préparé par `0.2.8-pre.011` pour ouvrir `0.2.9 — Yellowstone gRPC standard/provider-neutral` uniquement après publication stable `v0.2.8`; il impose la base stable autoritaire, la relecture ordonnée des règles/architectures/compliances Transport, un réaudit Yellowstone actuel (service/proto/releases/crates), un audit dépendances/licences/MSRV avant choix du client/proto, la séparation standard/provider/deshred, un gate `pre.001` strict audit/brainstorming/sizing et une prévision souple détaillée avant toute implémentation gRPC lourde.

File diff suppressed because it is too large Load Diff