From 9785cda39d790d73a9cd7dfaa976f283d0a3eb1b Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Fri, 11 Sep 2026 00:41:22 +0200 Subject: [PATCH] v0.3.13-rel.001 --- Cargo.toml | 4 +- deltas/0.3.13/rel.001.md | 190 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 192 insertions(+), 2 deletions(-) create mode 100644 deltas/0.3.13/rel.001.md diff --git a/Cargo.toml b/Cargo.toml index c2449ab..e8be44e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 564 +# version: 565 [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.13-pre.15" +version = "0.3.13" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/deltas/0.3.13/rel.001.md b/deltas/0.3.13/rel.001.md new file mode 100644 index 0000000..321b63c --- /dev/null +++ b/deltas/0.3.13/rel.001.md @@ -0,0 +1,190 @@ + + + +# Delta `0.3.13-rel.001` — publication stable + +## Base requise + +Base directe attendue : + +```text +0.3.13-pre.015 +workspace.package.version = 0.3.13-pre.15 +``` + +Les couloirs de fermeture précédents sont fermés : + +- `pre.013` : gate technique déterministe complet, graphes Cargo et qualification explicite des smokes live ; +- smokes keyless post-`pre.013` : Solana HTTP Devnet `1/1 PASS` et WebSocket Devnet `1/1 PASS` ; +- `pre.014` : réconciliation documentaire finale de l'architecture, du plan et de la validation ; +- `pre.015` : préparation minimale de publication avec `CHANGELOG.md`, `ROADMAP.md` et `prompts/033-V0_3_14_START_PROMPT.md`. + +Le gate opérateur reçu avant `pre.015`, exécuté le **10 septembre 2026 à 23:15** sur `0.3.13-pre.014`, est propre pour rustfmt, audits Rust/Markdown, `cargo check --workspace` et Clippy strict. + +L'environnement d'assemblage de `pre.015` ne possède pas Cargo/Rustc. Le gate Cargo de l'état exact `0.3.13-pre.015` reste donc un **prérequis d'application** de ce delta et ne doit pas être déclaré PASS sans exécution opérateur réelle : + +```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 +cargo check --workspace +``` + +Si ce gate révèle un défaut, ne pas appliquer `rel.001` : ouvrir la prerelease/fix appropriée selon la responsabilité concernée. + +## Objet + +Publier mécaniquement la version stable : + +```text +0.3.13 +``` + +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 +564 -> 565 +``` + +La version workspace devient : + +```text +0.3.13-pre.15 -> 0.3.13 +``` + +Aucune autre ligne du `Cargo.toml` racine n'est modifiée. + +## Fichiers ajoutés + +```text +deltas/0.3.13/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/033-V0_3_14_START_PROMPT.md +crates/** +docs/** +config/** +``` + +La surface préparée en `pre.015` reste byte-identique hors mécanique Cargo et ajout du présent delta. + +## Surface stable publiée + +`0.3.13` stabilise la convergence live multi-source de `ksp-worker-raw-transaction-ingest-lib` : + +- composition caller-owned de `1` à `32` sources logiques d'un même réseau, avec identités dupliquées rejetées avant spawn ; +- cinq familles live productives : Yellowstone, Standard Logs, Standard Block, Helius Transaction et HTTP Block Polling ; +- Standard Logs et Helius Transaction convergent avec Yellowstone vers l'hydration globale `getTransaction observed` ; +- Standard Block et HTTP Block Polling utilisent le RAW-direct uniquement pour Legacy/V0/V1 qualifiés, avec `maxSupportedTransactionVersion = 1` ; +- coalescence cross-source de `(network, signature, commitment)` avant hydration et sérialisation bornée de l'acquisition canonique `(network, signature)` ; +- observations/provenances distinctes conservées pour un contenu canonique identique ; divergence convertie en `content_conflict` terminal, sans majorité, overwrite ou `first-provider-wins` ; +- backpressure, quotas et fairness source-neutral bornés entre sources reference-bearing, hydration et persistence ; +- snapshots/health agrégés sans exposition du matériau provider ; reconnexion transitoire `Degraded`, source `Failed` `Unhealthy`, retour à `Healthy` lorsque toutes les sources attendues redeviennent actives ; +- une faute source reste terminale en `0.3.13` faute de preuve d'équivalence de coverage ; le repair/failover non terminal appartient à `0.3.14` ; +- shutdown stop/fault/drain/abort+join durci contre leaders d'hydration abandonnés, Store lent, counters et publications tardives ; +- aucune dépendance Worker vers Config, Job Backfill ou backend Store physique, aucun client réseau/SDK provider parallèle et aucun second actor Transport. + +Le gate technique déterministe de la release a exécuté `cargo test --workspace --all-targets --all-features` avec : + +```text +1 850 PASS +0 échec +15 ignored opt-in/operator-only +``` + +Les smokes keyless Solana HTTP Devnet et WebSocket Devnet passent `1/1` chacun. Les preuves Yellowstone provider-gated, Helius `transactionSubscribe` live, `blockSubscribe` provider dédié, HTTP Block Polling Worker end-to-end et Worker multi-source -> Store end-to-end restent explicitement `NON EXÉCUTÉ` faute de gate provisionné ; aucune fixture ou compilation d'un test ignored ne les requalifie en PASS. + +Le Job Backfill historique paramétré et le Worker Ingest continu restent deux producteurs indépendants du même Store. `0.3.13` n'introduit ni campagne historique automatique, ni checkpoint durable Worker, ni preuve de blockchain completeness. + +## Suite préparée + +La session suivante part exclusivement de la base stable : + +```text +v0.3.13 +``` + +et exécute : + +```text +prompts/033-V0_3_14_START_PROMPT.md +``` + +pour ouvrir : + +```text +0.3.14 — gap repair / hardening multi-source du Worker RawTransaction +``` + +`0.3.14-pre.001` doit commencer par lecture, audit interne/externe, brainstorming, sizing et planification avant toute implémentation de repair. Il doit distinguer reconnect, replay attempt, coverage prouvée, repair et unresolved gap ; le Worker ne doit toujours pas devenir un moteur de campagne historique ni dépendre de `ksp-job-backfill-lib`. + +## 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 tables / 855 files +5/5 tests unitaires du validateur Markdown : PASS +489 définitions de règles / 489 identifiants uniques / 0 doublon +diff exact pre.015 -> rel.001 : Cargo.toml modifié + rel.001.md ajouté, 0 autre changement +Cargo.toml : exactement 2 lignes différentes, header 564 -> 565 et version 0.3.13-pre.15 -> 0.3.13 +``` + +Les contrôles `unzip -t`, archive safety et inventaire minimal du ZIP sont exécutés après packaging avant livraison. + +Aucun PASS Cargo post-bump stable n'est revendiqué localement faute de toolchain. + +## Gate demandé après application + +La tranche est purement mécanique. Après application sur un `pre.015` 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.13 +cargo check --workspace +cargo clippy --workspace --all-targets --all-features -- -D warnings +cargo test -p ksp-worker-raw-transaction-ingest-lib +cargo test -p ksp-onchain-transport-lib +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.13-rel.001 +tag : v0.3.13 +``` + +Aucun tag de prerelease ou `rel.001` n'est requis.