v0.3.14-rel.001

This commit is contained in:
2026-09-12 23:46:51 +02:00
parent a7ac30f39b
commit 002d08ba5f
2 changed files with 197 additions and 2 deletions

View File

@@ -1,12 +1,12 @@
# file: Cargo.toml
# version: 592
# version: 593
[workspace]
resolver = "3"
members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-store-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-lib", "crates/ksp-job-api", "crates/ksp-job-backfill-lib", "crates/ksp-logging-lib", "crates/ksp-offchain-transport-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-program-api", "crates/ksp-raw-transaction-lib", "crates/ksp-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib", "crates/ksp-worker-api", "crates/ksp-worker-raw-transaction-ingest-lib"]
[workspace.package]
version = "0.3.14-pre.16"
version = "0.3.14"
edition = "2024"
license = "MIT"
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"

195
deltas/0.3.14/rel.001.md Normal file
View File

@@ -0,0 +1,195 @@
<!-- file: deltas/0.3.14/rel.001.md -->
<!-- version: 1 -->
# Delta `0.3.14-rel.001` — publication stable
## Base requise
Base directe attendue :
```text
0.3.14-pre.016
workspace.package.version = 0.3.14-pre.16
```
Le gate opérateur ciblé de `pre.016`, exécuté le **12 septembre 2026 à 23:25**, 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 (340 table(s), 885 file(s))
cargo check --workspace : PASS
```
Les couloirs de fermeture antérieurs sont déjà fermés :
- `pre.014` : gate technique/live complet, workspace `--all-targets --all-features`, Clippy strict, graphes Cargo et smokes live accessibles ;
- `pre.015` : réconciliation documentaire finale des surfaces `0.3.14` ;
- `pre.016` : préparation minimale de publication avec `CHANGELOG.md`, `ROADMAP.md` et `prompts/034-V0_3_15_START_PROMPT.md`.
## Objet
Publier mécaniquement la version stable :
```text
0.3.14
```
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
592 -> 593
```
La version workspace devient :
```text
0.3.14-pre.16 -> 0.3.14
```
Aucune autre ligne du `Cargo.toml` racine n'est modifiée.
## Fichiers ajoutés
```text
deltas/0.3.14/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/034-V0_3_15_START_PROMPT.md
crates/**
docs/**
config/**
```
La surface préparée en `pre.016` reste byte-identique hors mécanique Cargo et ajout du présent delta.
## Surface stable publiée
`0.3.14` stabilise le hardening gap/repair multi-source de `ksp-worker-raw-transaction-ingest-lib` :
- gaps run-local bornés avec identité, plage, état, raison et méthode de repair observable sans identité provider ;
- distinction explicite entre reconnect, replay attempt, replay delivery, coverage prouvée, repair et unresolved gap ;
- `TargetCoverage` conservateur, sans équivalence cross-family implicite et sans promotion `confirmed` -> `finalized` ;
- coverage redondante structurée avec scopes exacts/superset sûrs et réconciliation uniquement sur preuve complète ;
- bounded HTTP repair discovery, avec fenêtre explicite et absence de preuve inventée pour les slots skipped ;
- known-reference hydration via le registre/semaphore global existant, sans second pipeline ;
- source-loss non terminal uniquement lorsque la continuité et la couverture future sont réellement prouvées ;
- health gap-aware et source-neutral, avec retour à `Healthy` seulement après réconciliation complète ;
- fairness nominal/repair bornée sur les ressources communes, y compris lorsque la capacité globale vaut `1` ;
- observabilité publique des gaps/repair totals et oldest open gap sans URL, secret, signature, payload, provider error ou source key ;
- shutdown/drain source et Worker renforcé avec timeout borné, `abort_all` puis join complet, conservation de la première faute et suppression des publications tardives ;
- canaris cross-layer Transport -> Worker -> Common RAW -> Store fermés, Legacy/V0/V1 non régressés et séparation Worker/Backfill maintenue ;
- aucune dépendance Worker vers Config, Job Backfill ou backend Store physique, aucun client réseau/SDK provider parallèle et aucun second runtime Transport.
Le gate technique `pre.014` a exécuté `cargo test --workspace --all-targets --all-features` avec :
```text
1 931 PASS
0 échec
15 ignored opt-in/operator-only
```
Les smokes live keyless Solana HTTP Devnet et WebSocket Devnet passent `1/1` chacun. Les preuves Yellowstone provider-gated, Helius live et PostgreSQL live restent explicitement non revendiquées lorsqu'elles n'ont pas été provisionnées ; aucune compilation d'un test `ignored` ne les requalifie en PASS.
Le Job Backfill historique paramétré et le Worker Ingest continu restent des producteurs indépendants du même Store. Un Worker ne déclenche pas de campagne Backfill et ne partage pas implicitement ses gaps/`TargetCoverage` avec un autre Worker.
## Suite préparée
La session suivante part exclusivement de la base stable :
```text
v0.3.14
```
et exécute :
```text
prompts/034-V0_3_15_START_PROMPT.md
```
pour ouvrir :
```text
0.3.15 — ksp-app-raw-transaction-ingest-desk
```
Le cadrage préparé impose notamment :
```text
route != source != endpoint
1 route sélectionnée = 1 instance Worker
une route n'est sélectionnable que si toutes ses capabilities obligatoires sont composables depuis Config
la composabilité Config ne vaut pas opérabilité runtime
le Start revalide la configuration et les ressources réelles
plusieurs routes peuvent alimenter le même Store sans partager implicitement leur continuité
```
`0.3.15-pre.001` commence par audit, brainstorming, matrice route/capability et sizing avant toute implémentation lourde du 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 (340 table(s), 886 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.016` 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.14
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test -p ksp-worker-raw-transaction-ingest-lib --all-targets --all-features
cargo tree -p ksp-worker-raw-transaction-ingest-lib --edges normal
cargo tree -p ksp-worker-raw-transaction-ingest-lib -e features
```
Après gate propre :
```text
commit : v0.3.14-rel.001
tag : v0.3.14
```
Aucun tag de prerelease ou `rel.001` n'est requis.