Files
khadhroony-solana-project/deltas/0.2.8/pre.011.md
2026-08-23 20:01:28 +02:00

208 lines
7.8 KiB
Markdown

<!-- 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.