208 lines
7.8 KiB
Markdown
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.
|