Files
khadhroony-solana-project/deltas/0.3.15/rel.001.md
2026-09-19 12:40:28 +02:00

188 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- file: deltas/0.3.15/rel.001.md -->
<!-- version: 1 -->
# Delta `0.3.15-rel.001` — publication stable
## Base requise
Base directe attendue :
```text
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 :
```text
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 :
```text
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é :
```text
636 -> 637
```
La version workspace devient :
```text
0.3.15-pre.18 -> 0.3.15
```
Aucune autre ligne du `Cargo.toml` racine n'est modifiée.
## Fichiers ajoutés
```text
deltas/0.3.15/rel.001.md
```
## Fichiers modifiés
```text
Cargo.toml
```
## Fichiers supprimés
```text
aucun
```
## Surfaces explicitement inchangées
```text
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 :
```text
v0.3.15
```
et exécute :
```text
prompts/035-V0_3_16_START_PROMPT.md
```
pour ouvrir :
```text
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 :
```text
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 :
```bash
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 :
```text
commit : v0.3.15-rel.001
tag : v0.3.15
```
Aucun tag de prerelease ou `rel.001` n'est requis.