# Delta `0.2.7-pre.001-fix.001` — correction documentaire du gate WebSocket ## Base requise Livraison immédiatement précédente : ```text 0.2.7-pre.001 workspace.package.version = 0.2.7-pre.1 ``` Ce fix est **documentaire uniquement**. Conformément à `VERSION_WORKFLOW.md` et `FILE_CONTRACTS.md`, il ne modifie pas `Cargo.toml` et conserve : ```text workspace.package.version = 0.2.7-pre.1 commit = v0.2.7-pre.001-fix.001 aucun tag prerelease ``` ## Objet Corriger et renforcer le gate `pre.001` avant toute implémentation WebSocket : - partir des versions du plan `014` et de la compliance `010` réalignées par l'opérateur ; - interdire les séparateurs `|` à l'intérieur des cellules de tableaux Markdown, en utilisant `ou`, du texte ou une autre forme non ambiguë ; - remplacer le cross-check Agave `v3.1.8` par la baseline Git actuelle **Agave `v4.2.1`** ; - appliquer au WebSocket la même discipline que la compliance HTTP : documentation Solana, tag Git Agave courant et audit SIMD ; - ajouter un audit SIMD ciblé des changements pouvant affecter le wire, la sémantique ou les bornes de ressources WebSocket ; - préparer `std.transport` V2 à plusieurs familles WebSocket via un discriminateur explicite, sans ajouter de paramètres Helius dans `0.2.7`. ## Baseline Agave corrigée Le tag Git audité est : ```text anza-xyz/agave v4.2.1 ``` Le cross-check `v4.2.1` confirme : ```text 9 subscribe + 9 unsubscribe = 18 opérations standard actuelles aucune famille PubSub standard supplémentaire détectée accountSubscribe.minContextSlot toujours ignoré côté handler PubSub programSubscribe.withContext conservé a vote.timestamp optionnel côté RpcVote 7 variantes SlotUpdate actuelles inchangées ``` La documentation Solana reste l'autorité pour la **surface publique annoncée**. Le tag Agave courant sert de contrôle d'implémentation, même si une page documentaire contient encore un lien vers une révision source plus ancienne. ## Audit SIMD ajouté Le plan et la compliance suivent désormais explicitement les SIMDs pertinents : | SIMD | Statut | Décision KSP principale | |-----------------------------------------------|-----------|-------------------------------------------------------------------------------------------------------------------| | `0118` Partitioned Epoch Rewards Distribution | Activated | réutiliser les DTOs bloc/rewards lossless déjà acquis par HTTP | | `0291` Commission Rate in Basis Points | Review | ne pas dériver localement une représentation de commission depuis une autre | | `0296` Larger Transaction Size | Review | proposition jusqu'à 4096 octets ; aucune limite WS dérivée en dur de l'ancienne taille transaction de 1232 octets | | `0298` Bank Hash in Block Footer | Idea | aucun `bankHash` spéculatif | | `0301` parent bank hash | PR fermé | aucun `parentBankHash` spéculatif ; PR non mergée | | `0307` Add Block Footer | Review | aucun `footer` spéculatif ; réaudit lorsque l'upstream l'expose | | `0326` Alpenglow | Review | ne pas figer les sémantiques TowerBFT des flux unstable | | `0337` Alpenglow Fast Leader Handover Markers | Review | surveiller l'impact futur sur shape/taille des blocs | | `0384` Alpenglow migration | Review | ne pas supposer une séquence exhaustive de notifications commitment/optimistic confirmation | | `0385` Transaction V1 | Review | conserver versions transaction et `maxSupportedTransactionVersion` génériques | Aucun de ces SIMDs n'ajoute, dans la baseline Agave `v4.2.1`, une dixième famille WebSocket standard. ## Préparation multi-familles WebSocket Le shape Config V2 planifié devient explicitement extensible : ```text profiles[].ws_endpoints[].kind ``` Pour `0.2.7` : ```text kind = solana_standard supporté autre kind rejet explicite ``` Le type Transport correspondant est planifié `#[non_exhaustive]`. Une release ultérieure pourra ainsi ajouter notamment une famille **Helius Enhanced WebSocket** sans refondre `profiles[].ws_endpoints[]` et sans contaminer `WsSessionSettings` ou les wrappers Solana standard avec des options provider-specific. Ce fix ne décide pas encore si Helius Enhanced WebSocket et LaserStream WebSocket partageront exactement la même famille de settings ou le même moteur ; ce point reste soumis à l'audit provider-specific prévu après `0.2.7`. ## Markdown Correction appliquée dans la matrice lifecycle : ```text avant : Never PIPE ActiveSubscriptions après : Never ou ActiveSubscriptions ``` Les caractères `|` restent uniquement les délimiteurs structurels nécessaires aux tableaux Markdown ; ils ne sont pas utilisés comme séparateurs sémantiques dans une cellule. ## Fichiers modifiés ```text docs/plans/014-V0_2_7_ONCHAIN_WEBSOCKET_PLAN.md docs/validation/010-V0_2_7_ONCHAIN_WEBSOCKET.md ``` ## Fichier ajouté ```text deltas/0.2.7/pre.001-fix.001.md ``` ## Fichiers volontairement inchangés ```text Cargo.toml deltas/0.2.7/pre.001.md docs/000-README.md docs/plans/000-README.md docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md docs/validation/000-README.md CHANGELOG.md ROADMAP.md config/** crates/** ``` Les index ne changent pas : ils référencent déjà les documents `014` et `010`. ## Validation documentaire du fix À vérifier avant commit : ```text aucun pipe sémantique dans une cellule de tableau Markdown nombre de colonnes cohérent pour chaque table modifiée 18 opérations WebSocket toujours présentes dans la compliance Agave v4.2.1 utilisé comme baseline Git SIMDs ciblés documentés avec leur statut courant Cargo.toml absent du delta fix ``` Ce fix ne change aucun code, build, runtime, configuration effective ou migration ; les gates Cargo ne sont donc pas redéclarés comme exécutés par ce delta documentaire.