# Delta `0.3.14-pre.013` — completeness/security cross-layer ## Base requise ```text 0.3.14-pre.012 workspace.package.version = 0.3.14-pre.12 deltas/0.3.14/pre.012.md présent ``` ## Gate de la base Le gate opérateur de `0.3.14-pre.012` est validé avant ouverture de cette tranche : ```text cargo fmt --all : PASS cargo fmt --all -- --check : PASS audit Rust workspace rules : PASS audit Markdown tables : PASS cargo check --workspace : PASS cargo clippy --workspace --all-targets --all-features -- -D warnings : PASS cargo test -p ksp-worker-raw-transaction-ingest-lib --all-targets --all-features : PASS ``` Le gate Worker comprend notamment : ```text 152 unit tests : PASS cross_layer_completeness : 8 PASS dependency_boundary : 20 PASS hardening : 37 PASS public_api : 21 PASS release_completeness : 14 PASS ``` ## Objectif Implémenter strictement la tranche `pre.013` du plan `035` sans nouveau comportement : ```text fermer les canaris Worker / Transport / Common RAW / Store prouver que le pipeline d'acquisition/persistence reste unique prouver la redaction des chemins gap/repair/terminal prouver la non-régression Legacy / V0 / V1 après le hardening 0.3.14 prouver la séparation bidirectionnelle Worker / Job Backfill figer le graphe de dépendances Worker figer l'absence de croissance de surface publique ``` Aucun fichier de production n'est modifié dans cette tranche. ## Pipeline cross-layer unique Le nouveau canari : ```text v0_3_14_pre_013_gap_repair_closure_keeps_one_transport_worker_common_raw_store_pipeline ``` vérifie simultanément : ```text getTransaction observed reste Transport-owned getBlock observed reste Transport-owned ContinuityContracts restent privés au Worker le registre global d'hydration reste unique l'admission centrale reste unique la convergence persistence reste unique Common RAW reste la représentation canonique commune Store API porte RawTransaction + RawTransactionObservation Store facade reste l'unique passage vers persistence/observation ``` Il rejette en plus les bypass directs Worker vers : ```text backend Postgres Config Job Backfill reqwest tokio-tungstenite bas niveau yellowstone-grpc-proto ``` ## Redaction cross-layer Le canari : ```text v0_3_14_pre_013_security_redaction_covers_gap_repair_and_terminal_paths ``` ferme ensemble : ```text redaction Transport Yellowstone redaction des erreurs unary distantes health source-neutral pre.009 fairness privée pre.010 observabilité gap source-neutral pre.011 shutdown terminal borné pre.012 Common RAW Debug redacted Store API Debug redacted Store facade secret canary backend error bridge sans texte externe/secret ``` Le crate root Worker reste exempt de : ```text source_key provider_gap endpoint_gap signature_gap payload_gap ``` ## Legacy / V0 / V1 Le canari : ```text v0_3_14_pre_013_legacy_v0_v1_remains_proven_after_gap_repair_hardening ``` réunit les preuves suivantes : ```text Transport Yellowstone décode les formes courantes dont V1 Standard Block et HTTP Block Polling Worker préservent Legacy/V0/V1 la réconciliation pre.008 ne réécrit pas la représentation RAW le shutdown pre.012 ne modifie pas la qualification du matériau Common RAW garde ses goldens Legacy/V0/V1 Store API reste constructible depuis les types RAW communs ``` Aucune nouvelle logique de version de transaction n'est introduite. ## Séparation Worker / Job Backfill Le canari : ```text v0_3_14_pre_013_worker_and_backfill_remain_independent_producers ``` prouve depuis les manifests : ```text Worker -X-> ksp-job-api Worker -X-> ksp-job-backfill-lib Job Backfill -X-> ksp-worker-api Job Backfill -X-> ksp-worker-raw-transaction-ingest-lib ``` Les deux producteurs peuvent continuer à partager uniquement les façades communes nécessaires : ```text ksp-onchain-transport-lib ksp-raw-transaction-lib ksp-store-lib ``` Aucun checkpoint, scheduler ou orchestration commun n'est ajouté. ## Dépendances et API publique `dependency_boundary` conserve l'inventaire exact Worker : ```text ksp-core-lib ksp-logging-lib ksp-onchain-transport-lib ksp-raw-transaction-lib ksp-store-lib ksp-worker-api sha2 tokio ``` `public_api` fixe à nouveau : ```text 43 pub use publics aucun pub mod aucun ContinuityContracts public aucun GlobalHydrationRegistry public aucun SourceInventory public aucun TrafficClass/FairTurnGate public aucun SourceLossDecision public ``` La surface publique de `pre.011` reste donc la dernière croissance intentionnelle de `0.3.14` avant le gate technique. ## Canaris ajoutés ```text cross_layer_completeness v0_3_14_pre_013_gap_repair_closure_keeps_one_transport_worker_common_raw_store_pipeline v0_3_14_pre_013_security_redaction_covers_gap_repair_and_terminal_paths v0_3_14_pre_013_legacy_v0_v1_remains_proven_after_gap_repair_hardening v0_3_14_pre_013_worker_and_backfill_remain_independent_producers dependency_boundary v0_3_14_pre_013_cross_layer_closure_keeps_dependency_and_producer_boundaries_exact hardening v0_3_14_pre_013_cross_layer_completeness_security_closure_is_exact_and_redacted public_api v0_3_14_pre_013_completeness_closure_adds_no_public_surface release_completeness v0_3_14_pre_013_cross_layer_closure_canaries_are_complete_without_behavior_or_surface_growth ``` ## Invariants préservés ```text aucun code production modifié aucune nouvelle dépendance aucune nouvelle feature aucun changement Config aucun changement Transport runtime aucun changement Common RAW runtime aucun changement Store runtime aucune nouvelle API Worker aucun Worker -> Job Backfill aucun Job Backfill -> Worker aucun second pipeline aucun nouveau provider aucun EARLY/shred ``` ## Fichiers ajoutés ```text deltas/0.3.14/pre.013.md ``` ## Fichiers modifiés ```text Cargo.toml crates/ksp-worker-raw-transaction-ingest-lib/tests/cross_layer_completeness.rs crates/ksp-worker-raw-transaction-ingest-lib/tests/dependency_boundary.rs crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs crates/ksp-worker-raw-transaction-ingest-lib/tests/public_api.rs crates/ksp-worker-raw-transaction-ingest-lib/tests/release_completeness.rs ``` ## Fichiers supprimés ```text aucun ``` ## Version Cargo Conformément au workflow prerelease non-fix : ```text header Cargo.toml : 587 -> 588 workspace.package.version : 0.3.14-pre.12 -> 0.3.14-pre.13 ``` ## Gate local d'assemblage Exécuté dans le sandbox après modification : ```text General Rust rule audit : clean Rust export completeness audit : 0 candidate(s) KSP workspace Rust rule audit : clean Markdown table audit : clean cargo / rustc / rustfmt : NON DISPONIBLES dans le sandbox ``` Aucune commande Cargo n'est déclarée PASS localement. ## Gate opérateur après application ```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 --all-targets --all-features ```