diff --git a/Cargo.toml b/Cargo.toml index 92d9166..4214c23 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 553 +# version: 554 [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.8" +version = "0.3.13-pre.8.fix.1" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/crates/ksp-worker-raw-transaction-ingest-lib/src/persistence.rs b/crates/ksp-worker-raw-transaction-ingest-lib/src/persistence.rs index 1d3dc4f..9c7e21f 100644 --- a/crates/ksp-worker-raw-transaction-ingest-lib/src/persistence.rs +++ b/crates/ksp-worker-raw-transaction-ingest-lib/src/persistence.rs @@ -1,5 +1,5 @@ // file: crates/ksp-worker-raw-transaction-ingest-lib/src/persistence.rs -// version: 2 +// version: 3 /// Canonical entity disposition produced by one Worker Store persistence attempt. #[derive(Clone, Copy, Debug, Eq, PartialEq)] @@ -182,7 +182,7 @@ where let entry = convergence.entry(key); let entry = match entry { std::option::Option::Some(value) => value, - std::option::Option::None => return persist_raw_transaction_ingest_acquisition(port, acquisition).await, + std::option::Option::None => return crate::persist_raw_transaction_ingest_acquisition(port, acquisition).await, }; let mut known_hash = entry.lock().await; if let std::option::Option::Some(known_hash_value) = *known_hash { @@ -196,7 +196,7 @@ where std::result::Result::Err(error) => map_store_error(error), }; } - let outcome = persist_raw_transaction_ingest_acquisition(port, acquisition).await; + let outcome = crate::persist_raw_transaction_ingest_acquisition(port, acquisition).await; let outcome = match outcome { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), @@ -259,6 +259,7 @@ fn map_additional_observation_outcome( ksp_store_lib::RawObservationWriteOutcome::NotRecorded => { std::result::Result::Err(crate::runtime_error("persistence.additional_observation_not_recorded")) }, + _ => std::result::Result::Err(crate::runtime_error("persistence.additional_observation_outcome_invalid")), }; } diff --git a/deltas/0.3.13/pre.008-fix.001.md b/deltas/0.3.13/pre.008-fix.001.md new file mode 100644 index 0000000..cd5cc05 --- /dev/null +++ b/deltas/0.3.13/pre.008-fix.001.md @@ -0,0 +1,85 @@ + + + +# Delta 0.3.13-pre.008-fix.001 — correction compilation convergence persistence + +## Base requise + +```text +livraison précédente : 0.3.13-pre.008 +Cargo base : 0.3.13-pre.8 +delta base : deltas/0.3.13/pre.008.md +archive delta base : ksp-general-0.3.13-pre.008.zip +``` + +Le gate opérateur du 10 septembre 2026 sur `pre.008` est vert pour `cargo fmt`, `cargo fmt --check` et les audits Rust/Markdown. `cargo check --workspace` met ensuite en évidence deux défauts de compilation dans `ksp-worker-raw-transaction-ingest-lib` : + +```text +unused import : pub(crate) use self::persistence::persist_raw_transaction_ingest_acquisition +E0004 : match non exhaustif sur RawObservationWriteOutcome #[non_exhaustive] +``` + +Clippy strict reproduit les deux défauts et les tests ne peuvent pas être compilés avant leur correction. + +## Objectif du fix + +Corriger strictement ces deux défauts sans modifier le contrat de convergence `pre.008` : + +```text +re-export crate-root : conservé conformément aux règles KSP +appels internes : via crate::persist_raw_transaction_ingest_acquisition(...) +non-exhaustive enum : wildcard fail-closed vers une erreur runtime stable +``` + +Le wildcard ne transforme aucune variante future en succès implicite. Toute variante `RawObservationWriteOutcome` inconnue est rejetée comme `persistence.additional_observation_outcome_invalid`. + +## Version + +```text +livraison : 0.3.13-pre.008-fix.001 +workspace.package.version : 0.3.13-pre.8.fix.1 +archive : ksp-general-0.3.13-pre.008-fix.001.zip +``` + +`Cargo.toml` passe de la version de fichier `553` à `554`. + +## Fichiers modifiés + +```text +Cargo.toml +crates/ksp-worker-raw-transaction-ingest-lib/src/persistence.rs +``` + +`persistence.rs` passe de la version de fichier `2` à `3`. + +## Fichiers ajoutés + +```text +deltas/0.3.13/pre.008-fix.001.md +``` + +## Fichiers supprimés + +```text +aucun +``` + +## Non-claims + +Ce fix ne modifie aucune dépendance, aucune API publique, aucun cache de convergence, aucune clé de coalescence, aucune sémantique d'hydration, aucune observation/provenance et aucune règle Store de première acquisition ou d'observation supplémentaire. + +## Validation 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`. Les audits statiques KSP et le contrôle exhaustif du delta sont exécutés avant packaging. + +## Gate opérateur requis avant pre.009 + +```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 +```