Files
khadhroony-solana-project/deltas/0.2.7/pre.001-fix.001.md

148 lines
6.5 KiB
Markdown

<!-- file: deltas/0.2.7/pre.001-fix.001.md -->
<!-- version: 1 -->
# 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.