7.3 KiB
Delta 0.3.15-rel.001 — publication stable
Base requise
Base directe attendue :
0.3.15-pre.018
workspace.package.version = 0.3.15-pre.18
Le gate opérateur de pre.018, exécuté le 19 septembre 2026 à 08:37–08:38, est propre :
cargo fmt --all -- --check : PASS
General Rust rule audit : clean
Rust export completeness audit : 0 candidate(s)
KSP workspace Rust rule audit : clean
Markdown table audit : clean (318 table(s), 232 file(s))
cargo check --workspace : PASS
Les couloirs de fermeture précédents sont fermés :
pre.015puispre.015-fix.001: correction du backpressure Yellowstone soutenu et du shutdown post-half-close ;pre.016: gate technique/live final, suites ciblées/workspace, graphes Cargo et build Tauri ;pre.017: réconciliation documentaire finale des surfaces0.3.15;pre.018: préparation minimale de publication avecCHANGELOG.md,ROADMAP.mdetprompts/035-V0_3_16_START_PROMPT.md.
Objet
Publier mécaniquement la version stable :
0.3.15
Conformément à VER-LIFECYCLE-012, cette tranche ne corrige ni code, ni test, ni documentation durable, ni architecture, ni configuration, ni dépendance, ni prompt.
Tout défaut nouveau renvoie vers une prerelease appropriée ; rel.001 n'est pas une tranche de rattrapage.
Modification
Cargo.toml
Le header est incrémenté parce que le fichier est réellement modifié :
636 -> 637
La version workspace devient :
0.3.15-pre.18 -> 0.3.15
Aucune autre ligne du Cargo.toml racine n'est modifiée.
Fichiers ajoutés
deltas/0.3.15/rel.001.md
Fichiers modifiés
Cargo.toml
Fichiers supprimés
aucun
Surfaces explicitement inchangées
CHANGELOG.md
ROADMAP.md
README.md
RULES.md
prompts/035-V0_3_16_START_PROMPT.md
crates/**
docs/**
config/**
La surface préparée en pre.018 reste byte-identique hors mécanique Cargo et ajout du présent delta.
Surface stable publiée
0.3.15 stabilise l'application de supervision multi-route ksp-app-raw-transaction-ingest-desk et les adaptations nécessaires de la chaîne RAW live :
- cinq familles de routes live : Yellowstone + HTTP hydration, Standard Logs + HTTP hydration, Standard Block direct lorsque la capability WS Block existe, Helius Transaction + HTTP hydration et HTTP Block Polling ;
- sélection et supervision de plusieurs routes indépendantes d'un même réseau, chacune portée par sa propre instance Worker et partageant le même Store RAW ;
- reconstruction des routes à partir des capabilities réellement composables depuis Config, sans transformer une capability provider en réseau logique distinct ;
- Yellowstone Mainnet utilisant le flux gRPC comme trigger de blocs puis HTTP
getBlockpour l'hydration, sans hydrationgetTransactionpar transaction ; - coordination Yellowstone bornée et concurrente avant HTTP, puis backpressure gRPC asynchrone bornée au lieu d'un
grpc_backpressure_overflowlocal lorsque l'aval est momentanément plus lent ; - fermeture Yellowstone coopérative : un status distant reçu après half-close local explicite ne transforme plus le Stop utilisateur en faute, tandis qu'un status reçu pendant une session active reste une erreur réelle ;
- convergence Store durcie : un entrant dont
logMessagescontient une troncature explicitement prouvée et compatible avec un canonique déjà plus complet est accepté comme observation sans remplacer le canonique ni arrêter le Worker ; - diagnostic cross-provider sûr des conflits de contenu et de l'identité de bloc, sans exposition de signatures, blockhashes, payloads ou lignes de logs arbitraires ;
- supervision Desk avec Start/Stop ciblés, latest-value monitoring, états/health, gaps et compteurs source-neutral, tout en conservant les ressources physiques côté backend ;
- maintien des frontières Worker/Transport/Store/Config et de l'indépendance entre Worker live et Job Backfill historique.
Le gate technique final de pre.016 a validé les suites ciblées Store, Transport, Worker et Desk, puis cargo test --workspace --all-targets --all-features, les graphes Cargo demandés et cargo tauri build de ksp-app-raw-transaction-ingest-desk. Le build Tauri a produit les bundles Linux .deb, .rpm et .AppImage.
Le live Mainnet de fermeture a fait tourner Yellowstone et HTTP Block Polling en parallèle environ dix-neuf minutes sans grpc_backpressure_overflow ni terminal Faulted; les deux routes ont ensuite terminé Stopped/Healthy lors des Stops opérateur.
La compatibilité logMessages reste volontairement asymétrique en 0.3.15 : canonique complet + entrant tronqué compatible est accepté, mais canonique tronqué + entrant complet n'effectue pas encore de promotion durable. Variantes conflictuelles, promotion/résolution réversible, retry Store et politique configurable de reconnexion Transport sont réservés à 0.3.16.
Suite préparée
La session suivante part exclusivement de la base stable :
v0.3.15
et exécute :
prompts/035-V0_3_16_START_PROMPT.md
pour ouvrir :
0.3.16 — RAW resilience / conflict management
Le cadrage préparé réserve notamment :
- variantes RAW durables et historique de résolution ;
- comparaison
Exact,CompatibleLessComplete,CompatibleMoreComplete,Conflict; - promotions canoniques monotones, atomiques et réversibles ;
- quarantaine durable des conflits non résolus sans arrêt du Worker pour une divergence locale conservable ;
- retry/backpressure Store sans perte silencieuse ;
- reconnexion Transport configurable et bornée ;
- nouvelles vues
ksp-app-store-deskpour conflits ouverts, historique, promotion, restauration et fusion assistée ; - audit préalable des sémantiques Solana avant toute généralisation de la notion de complétude à d'autres champs que le cas déjà prouvé de
logMessages.
0.3.17 reste réservé à la mise en multi-route/multi-stratégie de ksp-job-backfill-lib, puis 0.3.18 à l'adaptation correspondante de ksp-app-backfill-desk.
Validations d'assemblage
Sur l'état candidat rel.001, avant packaging :
General Rust rule audit : clean
Rust export completeness audit : 0 candidate(s)
KSP workspace Rust rule audit : clean
Markdown table audit : clean (318 table(s), 233 file(s))
Les contrôles d'archive et la comparaison byte-exact sont exécutés après packaging avant livraison.
Aucun PASS Cargo post-bump stable n'est revendiqué localement faute de toolchain dans l'environnement d'assemblage.
Gate demandé après application
La tranche est purement mécanique. Après application sur un pre.018 dont le gate préalable est vert :
cargo fmt --all -- --check
python3 scripts/audit_rust_workspace_rules.py
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.15
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test -p ksp-onchain-transport-lib --all-targets --all-features
cargo test -p ksp-worker-raw-transaction-ingest-lib --all-targets --all-features
cargo test -p ksp-app-raw-transaction-ingest-desk --all-targets --all-features
Après gate propre :
commit : v0.3.15-rel.001
tag : v0.3.15
Aucun tag de prerelease ou rel.001 n'est requis.