Files
2026-09-19 12:40:28 +02:00

7.3 KiB
Raw Permalink Blame History

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:3708: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.015 puis pre.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 surfaces 0.3.15 ;
  • pre.018 : préparation minimale de publication avec CHANGELOG.md, ROADMAP.md et prompts/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 getBlock pour l'hydration, sans hydration getTransaction par transaction ;
  • coordination Yellowstone bornée et concurrente avant HTTP, puis backpressure gRPC asynchrone bornée au lieu d'un grpc_backpressure_overflow local 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 logMessages contient 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-desk pour 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.