diff --git a/Cargo.toml b/Cargo.toml index 90b04cc..e0d8bc0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 550 +# version: 551 [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.6" +version = "0.3.13-pre.6.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/runtime_resources.rs b/crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs index 8c7053c..1d398b9 100644 --- a/crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs +++ b/crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs @@ -1,5 +1,5 @@ // file: crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs -// version: 19 +// version: 20 use sha2::Digest; // rust-rules: trait-import @@ -878,7 +878,7 @@ impl std::fmt::Debug for crate::RawTransactionIngestHeliusTransactionSource { /// /// The caller provides one Transport-owned HTTP pool/role, a Confirmed/Finalized commitment and bounded polling controls. Construction proves that the role /// has same-network routes for `getSlot`, `getBlocksWithLimit` and `getBlock` without network I/O. Runtime starts at the first observed committed slot and -/// never requests an earlier slot, keeping this source live/run-local rather than turning it into historical Backfill. +/// never requests an earlier slot, so this source remains live and run-local. pub struct RawTransactionIngestHttpBlockPollingSource { http_pool: ksp_onchain_transport_lib::HttpTransportPool, polling_role: ksp_onchain_transport_lib::HttpRoleName, 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 94caa89..e3f08ba 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: 15 +// version: 16 //! External public, security, redaction and release-boundary hardening canaries for `pre.010`. @@ -215,8 +215,6 @@ fn pre_010_production_surface_has_no_historical_backfill_or_retriever_contract() "backfill", "Checkpoint", "checkpoint", - "Discovery", - "discovery", "historical", ] { assert!(!source.contains(forbidden), "historical/retriever surface leaked into Worker production source: {forbidden}"); diff --git a/deltas/0.3.13/pre.006-fix.001.md b/deltas/0.3.13/pre.006-fix.001.md new file mode 100644 index 0000000..6f32389 --- /dev/null +++ b/deltas/0.3.13/pre.006-fix.001.md @@ -0,0 +1,111 @@ + + + +# Delta 0.3.13-pre.006-fix.001 — correction du canari historique après live block discovery + +## Base requise + +```text +livraison précédente : 0.3.13-pre.006 +Cargo base : 0.3.13-pre.6 +delta base : deltas/0.3.13/pre.006.md +archive delta base : ksp-general-0.3.13-pre.006.zip +``` + +Le gate opérateur du 10 septembre 2026 sur `pre.006` est vert pour `cargo fmt`, `cargo fmt --check`, les audits Rust/Markdown, `cargo check --workspace`, Clippy strict, les `88` tests unitaires Worker et les `13` tests `dependency_boundary`. Il s'arrête ensuite sur un seul canari de hardening : `pre_010_production_surface_has_no_historical_backfill_or_retriever_contract` détecte la chaîne `Backfill` dans la Rustdoc de la nouvelle source HTTP live block polling. + +La même vérification interdisait également globalement `Discovery`/`discovery`. Cette hypothèse n'est plus valide depuis `pre.006` : la découverte run-local via `getBlocksWithLimit` est une primitive légitime du live polling et ne constitue ni un retriever historique ni un Backfill. + +## Objectif du fix + +Conserver la séparation Worker/Backfill sans interdire la terminologie de live block discovery introduite par le poller HTTP : + +```text +Rustdoc HTTP polling : suppression de la mention Backfill +canari historique : conserve les interdictions retriever/backfill/checkpoint/historical + mais ne classe plus Discovery/discovery comme marqueur historique +``` + +Aucune logique de polling, cadence, Transport, admission, Store, processing frontier, provenance, source identity ou API publique n'est modifiée. + +## Version + +```text +livraison : 0.3.13-pre.006-fix.001 +workspace.package.version : 0.3.13-pre.6.fix.1 +archive : ksp-general-0.3.13-pre.006-fix.001.zip +``` + +`Cargo.toml` passe de la version de fichier `550` à `551`. + +## Fichiers modifiés + +```text +Cargo.toml +crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs +crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs +``` + +Versions de fichiers : + +```text +runtime_resources.rs : 19 -> 20 +hardening.rs : 15 -> 16 +``` + +## Fichiers ajoutés + +```text +deltas/0.3.13/pre.006-fix.001.md +``` + +## Fichiers supprimés + +```text +aucun +``` + +## Non-claims + +Ce fix ne modifie aucune dépendance et n'ajoute aucune source. Il ne change ni la borne de run, ni `getSlot`, ni `getBlocksWithLimit`, ni `getBlock observed`, ni les règles Legacy/V0/V1, ni la sémantique `block:null`. + +## 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.007 + +```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 +``` + +## Résultats statiques finaux de l'assemblage + +```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, 840 files) +Normative rule definitions: 489 +Unique normative IDs: 489 +Duplicates: 0 +``` + +Contrôle ciblé de la surface production Worker : + +```text +ksp-worker-raw-retriever : 0 +raw_transaction_retriever : 0 +RawTransactionRetriever : 0 +Backfill/backfill : 0 +Checkpoint/checkpoint : 0 +historical : 0 +``` + +`Discovery`/`discovery` n'est plus un marqueur interdit global : `pre.006` l'emploie pour la découverte live run-local de slots/blocs par `getBlocksWithLimit`.