Files
khadhroony-solana-project/deltas/0.2.7/rel.001.md
2026-08-23 11:38:52 +02:00

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.version de 0.2.7-pre.14 à 0.2.7 ;
  • clôt ROADMAP.md, le plan 014 et la matrice validation/010 ;
  • ajoute l'entrée stable 0.2.7 au CHANGELOG.md ;
  • passe Standard WS à Stable dans l'inventaire composants ;
  • synchronise les index/documentation de séquence vers le statut publié ;
  • conserve prompts/013-V0_2_8_START_PROMPT.md version 2 comme contrat actif pour 0.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 :

  1. le moteur WebSocket standard appartient à ksp-onchain-transport-lib, aux côtés du moteur HTTP ;
  2. les neuf familles ciblées et leurs unsubscribe constituent la surface standard publiée 0.2.7 ;
  3. les trois familles upstream unstable restent exposées avec leur statut, sans les présenter comme garanties provider ;
  4. reconnect/resubscribe n'implique aucune garantie de continuité historique ou de backfill ;
  5. plusieurs sessions physiques explicites sont autorisées, sans scheduler/pool automatique imposé ;
  6. Config V2 adapte vers les settings WebSocket publics sans dépendance inverse ;
  7. les extensions provider-specific restent hors 0.2.7 ;
  8. 0.2.8 ouvre 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.