v0.2.8-pre.001-fix.002
This commit is contained in:
174
deltas/0.2.8/pre.001-fix.002.md
Normal file
174
deltas/0.2.8/pre.001-fix.002.md
Normal file
@@ -0,0 +1,174 @@
|
||||
<!-- file: deltas/0.2.8/pre.001-fix.002.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta `0.2.8-pre.001-fix.002` — forecast KSP compact et namespace LaserStream WebSocket
|
||||
|
||||
## 1. Base requise
|
||||
|
||||
Ce correctif s'applique exclusivement après :
|
||||
|
||||
```text
|
||||
0.2.8-pre.001-fix.001
|
||||
workspace.package.version = 0.2.8-pre.1
|
||||
```
|
||||
|
||||
Il reste **documentaire uniquement** : aucun code, Config runtime, schema, manifest ou dépendance n'est modifié.
|
||||
|
||||
```text
|
||||
livraison = 0.2.8-pre.001-fix.002
|
||||
workspace.package.version = 0.2.8-pre.1 # inchangé
|
||||
commit attendu = v0.2.8-pre.001-fix.002
|
||||
aucun tag prerelease
|
||||
```
|
||||
|
||||
## 2. Motifs du fix
|
||||
|
||||
Deux corrections de lisibilité/contrat sont nécessaires avant `pre.002`.
|
||||
|
||||
### 2.1 Forecast
|
||||
|
||||
Le tableau introduit par `pre.001-fix.001` ne correspond pas au format employé par les plans KSP récents :
|
||||
|
||||
```text
|
||||
0.2.5 -> bloc "Prévision souple révisée", fixes regroupés avec la candidate concernée
|
||||
0.2.7 -> bloc "Forecast recalibré", une ligne compacte par prerelease avec état DONE
|
||||
```
|
||||
|
||||
Le forecast `0.2.8` revient donc à cette forme compacte. Les `fix.*` sont rattachés visuellement à leur `pre.NNN` et peuvent porter leur propre changement d'état sans être présentés comme de nouvelles tranches planifiées.
|
||||
|
||||
### 2.2 Nom LaserStream
|
||||
|
||||
`Helius LaserStream` désigne chez Helius plusieurs surfaces produit. `0.2.8` ne couvre que **LaserStream WebSocket** ; le futur LaserStream gRPC reste distinct et hors scope.
|
||||
|
||||
Le code court suivant est conservé :
|
||||
|
||||
```text
|
||||
WsProtocolKind::HeliusLaserStream
|
||||
as_str() = "helius_laserstream"
|
||||
```
|
||||
|
||||
mais uniquement parce qu'il est possédé par un namespace explicitement WebSocket :
|
||||
|
||||
```text
|
||||
WsProtocolKind
|
||||
profiles[].ws_endpoints[].kind
|
||||
HeliusLaserStreamWsSession
|
||||
```
|
||||
|
||||
Dans tout contexte où cet ownership n'est pas visible, la désignation durable est **Helius LaserStream WebSocket**.
|
||||
|
||||
Le futur gRPC devra utiliser son propre backend/type/Config et ne pourra jamais être un alias du contrat WS. Son nom exact n'est pas anticipé dans `0.2.8` et sera choisi pendant son audit normatif.
|
||||
|
||||
## 3. Forecast souple corrigé
|
||||
|
||||
```text
|
||||
pre.001 DONE — audit Helius actuel + matrice + architecture + threat model + dependencies + sizing
|
||||
fix.001 DONE — séparation des façades standard/Helius + moteur unique + gate Cargo fermé
|
||||
fix.002 DONE — forecast normalisé + namespace LaserStream WebSocket/gRPC clarifié
|
||||
|
||||
pre.002 socle protocolaire : WsProtocolKind::HeliusLaserStream + façades standard/Helius
|
||||
+ connexion physique partagée + guards, sans duplication de l'actor
|
||||
pre.003 surface Helius standard supportée : account/logs/program/root/signature/slot
|
||||
+ absence typée de block/slotsUpdates/vote sur Helius + non-régression standard 9/9
|
||||
pre.004 Config V2 helius_laserstream + schema/fixtures + mapping Config -> Transport
|
||||
+ stratégie de secret Helius et redaction URL
|
||||
pre.005 transactionSubscribe request typed + filters/options/tokenAccounts + transactionUnsubscribe
|
||||
+ bounds 50k + maxSupportedTransactionVersion conditionnel
|
||||
pre.006 transactionNotification + actor integration + reconnect/resubscribe/unsubscribe races
|
||||
+ late notifications + backpressure ciblée
|
||||
pre.007 heartbeat Helius WebSocket/idle + timers + interaction reconnect/control frames/shutdown
|
||||
pre.008 provider adversarial lifecycle + capability guards + payload/backpressure + security/redaction
|
||||
pre.009 compliance Helius WebSocket + non-régressions Solana standard 18/18 + HTTP 52/14
|
||||
+ Config/API/dependency-firewall canaries
|
||||
pre.010 smoke Helius WebSocket live opt-in si stratégie sûre + README/USAGE
|
||||
+ cargo tree direct/duplicates final
|
||||
pre.011 validation workspace finale + fermeture plan/matrice/indexes + prompt 0.2.9
|
||||
rel.001 publication stable stricte
|
||||
```
|
||||
|
||||
Règles : budget nominal d'environ 15–20 minutes par nouvelle prerelease ; fixes insérables sans changer artificiellement le forecast ; split dès qu'une tranche masque plusieurs problèmes indépendants ; `pre.011` n'est pas une deadline.
|
||||
|
||||
## 4. Nomenclature durable WebSocket / gRPC
|
||||
|
||||
Règle adoptée :
|
||||
|
||||
```text
|
||||
contexte typé/config WS visible : HeliusLaserStream / helius_laserstream autorisé
|
||||
prose ou metadata ambiguë : "Helius LaserStream WebSocket" obligatoire
|
||||
future surface gRPC : backend/type/Config distincts ; jamais WsProtocolKind/WsEndpointSettings
|
||||
```
|
||||
|
||||
Conséquences :
|
||||
|
||||
- `HeliusLaserStreamWsSession` reste le nom de façade visé en `0.2.8` ;
|
||||
- `helius_laserstream` reste acceptable comme `kind` sous `ws_endpoints[]` ;
|
||||
- aucune dépendance, protobuf, SDK ou Config gRPC n'est introduite ;
|
||||
- le futur audit gRPC choisira son propre discriminateur sans être contraint par le code court WS ;
|
||||
- la documentation doit toujours qualifier explicitement WebSocket ou gRPC lorsqu'un lecteur pourrait confondre les deux.
|
||||
|
||||
## 5. Fichiers ajoutés
|
||||
|
||||
```text
|
||||
deltas/0.2.8/pre.001-fix.002.md
|
||||
```
|
||||
|
||||
## 6. Fichiers modifiés
|
||||
|
||||
```text
|
||||
docs/plans/015-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET_PLAN.md
|
||||
docs/validation/011-V0_2_8_HELIUS_LASERSTREAM_WEBSOCKET.md
|
||||
```
|
||||
|
||||
## 7. Fichiers volontairement inchangés
|
||||
|
||||
```text
|
||||
Cargo.toml
|
||||
ROADMAP.md
|
||||
CHANGELOG.md
|
||||
.env.example
|
||||
config/**
|
||||
crates/**
|
||||
docs/000-README.md
|
||||
docs/plans/000-README.md
|
||||
docs/validation/000-README.md
|
||||
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
|
||||
deltas/0.2.8/pre.001.md
|
||||
deltas/0.2.8/pre.001-fix.001.md
|
||||
prompts/013-V0_2_8_START_PROMPT.md
|
||||
```
|
||||
|
||||
Les deltas déjà publiés restent immutables.
|
||||
|
||||
## 8. Validations
|
||||
|
||||
Preuves opérateur déjà acquises et inchangées :
|
||||
|
||||
```text
|
||||
baseline v0.2.7 fmt/audit/check/clippy/test workspace = OK
|
||||
cargo tree transport = exécuté/inspecté
|
||||
cargo tree transport --duplicates = exécuté/inspecté
|
||||
```
|
||||
|
||||
Validations du fix documentaire :
|
||||
|
||||
```text
|
||||
comparaison forecast avec plans 0.2.5 / 0.2.7 = effectuée
|
||||
cohérence plan / validation / delta = contrôlée
|
||||
audit Rust workspace après overlay = à exécuter si script disponible
|
||||
```
|
||||
|
||||
Aucun gate Cargo supplémentaire n'est créé par ce fix puisque le runtime, le build, la Config et les dépendances restent inchangés.
|
||||
|
||||
## 9. Verdict et prochaine tranche
|
||||
|
||||
```text
|
||||
gate pre.001 = positif
|
||||
Cargo = 0.2.8-pre.1 inchangé
|
||||
architecture = façades séparées, moteur unique
|
||||
forecast = compact, fixes groupés, pre.001 -> pre.011
|
||||
nom WS = HeliusLaserStream / helius_laserstream sous ownership WebSocket
|
||||
futur gRPC = explicitement distinct, hors 0.2.8
|
||||
prochaine tranche = 0.2.8-pre.002
|
||||
```
|
||||
|
||||
`pre.002` peut matérialiser le socle protocolaire/façades. Il ne doit pas commencer Config Helius ni `transactionSubscribe`.
|
||||
Reference in New Issue
Block a user