From 716a5e63dab228d1a314e8739e506815d3bdcf64 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Tue, 22 Sep 2026 10:52:21 +0200 Subject: [PATCH] 0.3.16-rel.001 --- Cargo.toml | 4 +- deltas/0.3.16/rel.001.md | 184 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 186 insertions(+), 2 deletions(-) create mode 100644 deltas/0.3.16/rel.001.md diff --git a/Cargo.toml b/Cargo.toml index fe8b228..fb1127a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 650 +# version: 651 [workspace] resolver = "3" members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-raw-transaction-ingest-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.16-pre.10" +version = "0.3.16" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/deltas/0.3.16/rel.001.md b/deltas/0.3.16/rel.001.md new file mode 100644 index 0000000..9b04adc --- /dev/null +++ b/deltas/0.3.16/rel.001.md @@ -0,0 +1,184 @@ + + + +# Delta `0.3.16-rel.001` — publication stable + +## Base requise + +Base directe attendue : + +```text +0.3.16-pre.010 +workspace.package.version = 0.3.16-pre.10 +``` + +Le gate minimal opérateur de `pre.010`, exécuté le **22 septembre 2026 à 09:09–09:11**, est propre : + +```text +cargo fmt --all : PASS +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 (352 table(s), 961 file(s)) +cargo check --workspace : PASS +``` + +Les couloirs de fermeture précédents sont fermés : + +- `pre.008`, corrigée par `pre.008-fix.001` : hardening technique final, concurrence/rollback, non-régressions Store/Backfill/Worker et preuve live PostgreSQL 17 ; +- `pre.009` : réconciliation documentaire finale des surfaces `0.3.16` ; +- `pre.010` : préparation minimale de publication avec `CHANGELOG.md`, `ROADMAP.md` et `prompts/036-V0_3_17_START_PROMPT.md`. + +## Objet + +Publier mécaniquement la version stable : + +```text +0.3.16 +``` + +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 +650 -> 651 +``` + +La version workspace devient : + +```text +0.3.16-pre.10 -> 0.3.16 +``` + +Aucune autre ligne du `Cargo.toml` racine n'est modifiée. + +## Fichiers ajoutés + +```text +deltas/0.3.16/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/036-V0_3_17_START_PROMPT.md +crates/** +docs/** +config/** +``` + +La surface préparée en `pre.010` reste byte-identique hors mécanique Cargo et ajout du présent delta. + +## Surface stable publiée + +`0.3.16` stabilise les fondations RAW multi-variantes et la convergence durable de plusieurs représentations `RawTransaction` pour une même identité `(network, signature)` : + +- migration PostgreSQL V003 additive avec variantes, sélecteur canonique, lien observation-variante et conflict cases minimaux, tout en conservant V000/V001/V002 inchangés ; +- comparateur backend-neutral partagé `Exact / CompatibleLessComplete / CompatibleMoreComplete / Conflict / Incomparable` ; +- dominance fail-closed : seule la troncature `logMessages` explicitement prouvée établit aujourd'hui une relation de complétude ; +- égalité fondée sur les bytes lorsque disponibles, sans faire de `content_hash` une preuve suffisante ; +- décision sérialisée sous verrou de l'identité V001 ; +- promotion atomique d'une variante `CompatibleMoreComplete`, avec conservation de l'ancien canonique et cohérence entre projection V001 et sélecteur ; +- conservation durable des divergences `Conflict`/`Incomparable`, ouverture/réouverture d'un conflict case et enregistrement de l'observation sans mutation du canonique ; +- `QuarantinedConflict` comme succès durable non terminal côté Worker : le Worker reste `Running`, sa health devient `Degraded` et chaque acquisition continue d'atteindre le Store ; +- projection Backfill du conflit durable sans perdre l'idempotence réelle de l'observation ; +- hardening final des races, du rollback transactionnel et de la cohérence selector/projection ; +- preuve live PostgreSQL 17 des scénarios RawTransaction atomiques, concurrents et récupérables. + +La release ne revendique pas encore la résolution opérateur complète, le journal/participants complets, la rétention/pinning des variantes nécessaires à une résolution, le retry Store/backpressure `Blocked`, la reconnexion Transport configurable ni les vues Store Desk de résolution. Ces responsabilités sont reportées conformément au `ROADMAP.md` et au prompt suivant. + +## Suite préparée + +La session suivante part exclusivement de la base stable : + +```text +v0.3.16 +``` + +et exécute : + +```text +prompts/036-V0_3_17_START_PROMPT.md +``` + +pour ouvrir : + +```text +0.3.17 — résilience opérationnelle et cycle de vie complet des variantes RAW +``` + +`0.3.17-pre.001` doit commencer par l'audit/sizing des contrats backend-neutral d'inspection/résolution, du cycle de vie revisionné des conflict cases, des races et invariants, de la rétention/pinning, de la classification Store `Transient / Terminal`, du retry Worker et de la reconnexion Transport configurable avant toute implémentation lourde. + +La trajectoire publiée est : + +```text +0.3.17 résilience opérationnelle + cycle de vie complet des variantes +0.3.18 Store Desk inspection / résolution des conflits +0.3.19 Backfill multi-route / multi-stratégie +0.3.20 adaptation correspondante de 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 +``` + +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.010` 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.16 +cargo check --workspace +cargo clippy --workspace --all-targets --all-features -- -D warnings +cargo test -p ksp-store-api --all-targets --all-features +cargo test -p ksp-store-lib --all-targets --all-features +cargo test -p ksp-store-postgres-lib --all-targets --all-features +cargo test -p ksp-job-backfill-lib --all-targets --all-features +cargo test -p ksp-worker-raw-transaction-ingest-lib --all-targets --all-features +``` + +Après gate propre : + +```text +commit : v0.3.16-rel.001 +tag : v0.3.16 +``` + +Aucun tag de prerelease ou `rel.001` n'est requis.