7.7 KiB
Delta 0.2.7-rel.001 — publication stable WebSocket Solana standard
1. Base requise
Base directe attendue :
0.2.7-pre.014-fix.001
workspace.package.version = 0.2.7-pre.14
Le fix pre.014-fix.001 est strictement documentaire et a uniquement renforcé prompts/013-V0_2_8_START_PROMPT.md; il n'a modifié ni runtime, ni Config exécutable, ni dépendance.
Commit attendu pour cette livraison :
v0.2.7-rel.001
Tag stable attendu après validation :
v0.2.7
2. Objectif
Publier 0.2.7 — WebSocket Solana standard sans ajouter de capacité fonctionnelle après la candidate.
rel.001 :
- passe
workspace.package.versionde0.2.7-pre.14à0.2.7; - clôt
ROADMAP.md, le plan014et la matricevalidation/010; - ajoute l'entrée stable
0.2.7auCHANGELOG.md; - passe
Standard WSàStabledans l'inventaire composants ; - synchronise les index/documentation de séquence vers le statut publié ;
- conserve
prompts/013-V0_2_8_START_PROMPT.mdversion 2 comme contrat actif pour0.2.8.
Aucun fichier Rust, aucune API publique, aucun schema/config runtime, aucune dépendance et aucune feature ne changent dans cette livraison.
3. Preuve candidate finale acquise
Le checkpoint opérateur fourni le 23 août 2026 après application de 0.2.7-pre.014-fix.001 est vert :
cargo fmt --all OK
python3 scripts/audit_rust_workspace_rules.py OK
General Rust rule audit clean
Rust export completeness audit 0 candidate(s)
KSP workspace Rust rule audit clean
cargo check --workspace OK
cargo clippy --workspace --all-targets OK
cargo test -p ksp-onchain-transport-lib OK
unit 309 passed
public API 36 passed
release completeness 24 passed
Transport HTTP Devnet smoke 1 ignored par défaut
Transport WebSocket Devnet smoke 1 ignored par défaut
cargo test --workspace OK
Les suites workspace Config/Core/Logging/Wallet/Desks passent également. Les tests live, benchmark ou diagnostic explicitement operator-only restent ignorés par défaut conformément à leur contrat.
Le smoke WebSocket Devnet avait été exécuté explicitement avec succès à pre.013 :
WsSession::connect
-> slotSubscribe
-> slotNotification
-> unsubscribe par handle
-> close explicite
pre.014 et pre.014-fix.001 n'ont modifié ni le runtime WebSocket ni le graphe de dépendances ; cette preuve live et l'audit cargo tree de pre.013 restent donc valides.
4. Surface stable publiée
HTTP hérité
52/52 méthodes HTTP courantes typées
14/14 méthodes historiques Deprecated/Removed conservées
KSP-TRANSPORT-007 appliqué à la surface typed
write submissions : aucun resend après dispatch ambigu
WebSocket Solana standard
Les neuf familles publiées sont :
account
block
logs
program
root
signature
slot
slotsUpdates
vote
soit :
9 subscribe + 9 unsubscribe = 18/18 opérations standard
Partition issue de l'audit normatif courant :
stable : account, logs, program, root, signature, slot
unstable : block, slotsUpdates, vote
Contrats stabilisés :
1 endpoint -> 0..N sessions physiques explicites
1 session -> 0..N subscriptions logiques typées
WsSessionId / WsSubscriptionId locaux et stables
remote subscription id interne et remappable
actor unique propriétaire du socket
pending requests / queues / active subscriptions bornés
reconnect fini + backoff borné
resubscribe déterministe par local id
continuity_gap_count observable, sans promesse lossless
backpressure isolé par subscription
late ACK/notifications nettoyés sans réactivation
signatureSubscribe one-shot après notification terminale
WsSession::close().await borné
control frames Ping/Pong/Close gérés
aucun heartbeat applicatif périodique imposé
Config et frontières
std.transport V2 = HTTP + WebSocket
lecture V1 = HTTP-only backward compatible
WsProtocolKind extensible ; seul solana_standard est publié en 0.2.7
Config -> Transport autorisé
Transport -X-> Config/Wallet/Store/Program/tracing direct
Les URLs WebSocket et credentials restent redacted dans Debug/logs/snapshots ; les remote subscription IDs et payloads arbitraires ne sont pas projetés comme metadata sûre.
5. Fichiers ajoutés
deltas/0.2.7/rel.001.md
6. Fichiers modifiés
Cargo.toml
ROADMAP.md
CHANGELOG.md
docs/000-README.md
docs/architecture/004-COMPONENT_INVENTORY.md
docs/plans/000-README.md
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
docs/plans/014-V0_2_7_ONCHAIN_WEBSOCKET_PLAN.md
docs/validation/000-README.md
docs/validation/010-V0_2_7_ONCHAIN_WEBSOCKET.md
prompts/000-README.md
Volontairement inchangés :
prompts/013-V0_2_8_START_PROMPT.md # version 2 déjà livrée par pre.014-fix.001
crates/ksp-onchain-transport-lib/src/**
crates/ksp-onchain-transport-lib/README.md
crates/ksp-onchain-transport-lib/USAGE.md
config/**
crates/ksp-app-*/package.json
crates/ksp-app-*/tauri.conf.json
Les versions applicatives npm/Tauri des Desks restent 0.2.6 : 0.2.7 ne modifie pas ces applications et leur version propre n'est pas utilisée comme signal de la release Transport.
7. Fichiers supprimés
Aucun.
8. Décisions de clôture
Aucune nouvelle décision de protocole n'est introduite par rel.001. La publication confirme :
- le moteur WebSocket standard appartient à
ksp-onchain-transport-lib, aux côtés du moteur HTTP ; - les neuf familles ciblées et leurs unsubscribe constituent la surface standard publiée
0.2.7; - les trois familles upstream unstable restent exposées avec leur statut, sans les présenter comme garanties provider ;
- reconnect/resubscribe n'implique aucune garantie de continuité historique ou de backfill ;
- plusieurs sessions physiques explicites sont autorisées, sans scheduler/pool automatique imposé ;
- Config V2 adapte vers les settings WebSocket publics sans dépendance inverse ;
- les extensions provider-specific restent hors
0.2.7; 0.2.8ouvre Helius LaserStream WebSocket en réutilisant ce moteur standard, conformément au prompt version 2.
9. Validation finale après application
Le passage du signal Cargo à la version stable doit être revalidé avant commit/tag :
cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-onchain-transport-lib
cargo test --workspace
Les graphes Cargo et le smoke live n'ont pas besoin d'être rejoués si l'overlay appliqué est exactement 0.2.7-rel.001, car cette livraison ne change ni dépendance, ni source Rust, ni Config runtime. En cas de modification additionnelle avant publication, réévaluer les gates concernés.
Comptages Transport attendus :
unit = 309
public API = 36
release completeness = 24
HTTP Devnet smoke = 1 ignored par défaut
WebSocket Devnet smoke = 1 ignored par défaut
10. Commit et tag stable
Après succès du gate :
commit : v0.2.7-rel.001
tag : v0.2.7
Aucun tag intermédiaire de prerelease/fix/rel n'est requis.
11. Suite
Après création du tag stable v0.2.7, ouvrir :
0.2.8-pre.001
avec :
prompts/013-V0_2_8_START_PROMPT.md
La première tranche est un gate strict de relecture/audit Helius actuel, architecture, threat model, dépendances et sizing. Le forecast pre.001 -> pre.011 du prompt est une prévision souple que pre.001 doit recalibrer avant toute implémentation lourde.