From 0f8f38ff52a88dfc71244e0f4e67fab50b3d2f69 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Thu, 10 Sep 2026 20:24:12 +0200 Subject: [PATCH] v0.3.13-pre.009-fix.002 --- Cargo.toml | 4 +- .../tests/hardening.rs | 4 +- deltas/0.3.13/pre.009-fix.002.md | 148 ++++++++++++++++++ 3 files changed, 152 insertions(+), 4 deletions(-) create mode 100644 deltas/0.3.13/pre.009-fix.002.md diff --git a/Cargo.toml b/Cargo.toml index 968ddef..5cbe6ff 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 557 +# version: 558 [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.9.fix.1" +version = "0.3.13-pre.9.fix.2" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs b/crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs index 5debefd..7f27bc6 100644 --- a/crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs +++ b/crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs @@ -1,5 +1,5 @@ // file: crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs -// version: 20 +// version: 21 //! External public, security, redaction and release-boundary hardening canaries for `pre.010`. @@ -764,7 +764,7 @@ fn v0_3_13_pre_008_cross_source_convergence_is_bounded_conflict_checked_and_priv "max_entries: usize", "entries.len() >= self.max_entries", "std::sync::Arc::strong_count(entry) == 1", - "known_hash_value != content_hash", + "known_state_value != &canonical_state", "record_observation(observation)", "persistence.additional_observation_not_recorded", ] { diff --git a/deltas/0.3.13/pre.009-fix.002.md b/deltas/0.3.13/pre.009-fix.002.md new file mode 100644 index 0000000..14dd62d --- /dev/null +++ b/deltas/0.3.13/pre.009-fix.002.md @@ -0,0 +1,148 @@ + + + +# Delta 0.3.13-pre.009-fix.002 — alignement du canari de disagreement canonique + +## Base requise + +```text +livraison précédente : 0.3.13-pre.009-fix.001 +Cargo base : 0.3.13-pre.9.fix.1 +delta base : deltas/0.3.13/pre.009-fix.001.md +archive delta base : ksp-general-0.3.13-pre.009-fix.001.zip +``` + +Le gate opérateur du 10 septembre 2026 confirme : + +```text +cargo fmt + --check : PASS +audits Rust : clean / export completeness 0 +Markdown : clean, 340 tables / 846 files +cargo check --workspace : PASS +Clippy strict workspace/all-targets/all-features : PASS +Transport unit : 389/389 PASS +Transport public API : 52/52 PASS +Transport release completeness : 44/44 PASS +Transport doc-tests : 4/4 PASS +Transport smokes live opt-in : 5 ignored comme prévu +Worker unit : 99/99 PASS +Worker cross-layer : 4/4 PASS +Worker dependency-boundary : 16/16 PASS +Worker hardening : 22 PASS / 1 FAIL +``` + +La suite Worker s'arrête sur le canari : + +```text +v0_3_13_pre_008_cross_source_convergence_is_bounded_conflict_checked_and_private +``` + +Il exige encore l'ancienne chaîne d'implémentation : + +```text +known_hash_value != content_hash +``` + +Cette assertion est obsolète depuis `pre.009`, où l'état canonique de convergence compare désormais ensemble `slot`, `block_time`, `format_id`, `format_version` et `content_hash` via `RawTransactionIngestCanonicalState`. + +`public_api`, `release_completeness` et les doc-tests Worker ne sont donc pas déclarés PASS pour ce gate, car l'exécution s'arrête sur `hardening`. + +## Objectif du fix + +Corriger uniquement le canari historique `pre.008` afin qu'il vérifie le conflit canonique actuel sans revenir à une comparaison hash-only : + +```text +ancienne preuve : known_hash_value != content_hash +nouvelle preuve : known_state_value != &canonical_state +``` + +Le canari continue à exiger la borne du cache, l'éviction uniquement des entrées non partagées, le passage par `record_observation` et le fail-closed d'une observation additionnelle impossible. + +Aucune source production n'est modifiée. + +## Immutabilité des deltas + +Les deltas déjà livrés sont immuables. Ce fix n'altère aucun fichier `deltas/` existant, y compris : + +```text +deltas/0.3.13/pre.009.md +deltas/0.3.13/pre.009-fix.001.md +``` + +La correction est tracée uniquement par le nouveau fichier `deltas/0.3.13/pre.009-fix.002.md`. + +La modification de `pre.009.md` qui avait été incluse dans `pre.009-fix.001` reste une exception historique déjà acceptée par l'opérateur ; elle n'est ni répétée ni réécrite dans ce fix. + +## Version + +```text +livraison : 0.3.13-pre.009-fix.002 +workspace.package.version : 0.3.13-pre.9.fix.2 +archive : ksp-general-0.3.13-pre.009-fix.002.zip +``` + +`Cargo.toml` passe de la version de fichier `557` à `558`. + +## Fichiers modifiés + +```text +Cargo.toml +crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs +``` + +`hardening.rs` passe de la version de fichier `20` à `21`. + +## Fichiers ajoutés + +```text +deltas/0.3.13/pre.009-fix.002.md +``` + +## Fichiers supprimés + +```text +aucun +``` + +## Validations exécutées dans l'environnement d'assemblage + +Le toolchain Rust/Cargo/Rustfmt n'est pas disponible dans l'environnement d'assemblage. Les commandes Cargo post-fix restent donc `NON EXÉCUTÉ LOCAL`. + +Sont exécutés avant packaging : + +```text +scripts/audit_rust_workspace_rules.py +audit Markdown complet +scan des définitions normatives +diff exact contre la base pre.009-fix.001 +contrôle d'immutabilité byte-for-byte de tous les deltas existants +contrôle du manifest et du contenu extrait de l'archive +``` + +## Décisions + +- le runtime `pre.009` reste inchangé ; +- le disagreement canonique reste fondé sur l'état canonique complet, pas sur le seul hash ; +- aucun delta historique n'est modifié ; +- aucune dépendance ni feature ne change ; +- aucun `cargo tree` n'est requis pour ce fix. + +## Questions ouvertes + +```text +aucune +``` + +## Gate opérateur requis avant pre.010 + +```bash +cargo fmt --all +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 +cargo clippy --workspace --all-targets --all-features -- -D warnings +cargo test -p ksp-worker-raw-transaction-ingest-lib +``` + +Le test Transport n'a pas besoin d'être répété pour ce fix, qui ne modifie ni Transport, ni source production, ni dépendance, ni feature.