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

6.6 KiB
Raw Blame History

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 :

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

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 :

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é :

WsProtocolKind::HeliusLaserStream
as_str() = "helius_laserstream"

mais uniquement parce qu'il est possédé par un namespace explicitement WebSocket :

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é

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 1520 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 :

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

deltas/0.2.8/pre.001-fix.002.md

6. Fichiers modifiés

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

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 :

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 :

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

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.