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