6.6 KiB
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 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 :
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 :
HeliusLaserStreamWsSessionreste le nom de façade visé en0.2.8;helius_laserstreamreste acceptable commekindsousws_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.