7.0 KiB
Delta 0.3.14-pre.013 — completeness/security cross-layer
Base requise
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 :
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 :
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 :
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 :
v0_3_14_pre_013_gap_repair_closure_keeps_one_transport_worker_common_raw_store_pipeline
vérifie simultanément :
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 :
backend Postgres
Config
Job Backfill
reqwest
tokio-tungstenite bas niveau
yellowstone-grpc-proto
Redaction cross-layer
Le canari :
v0_3_14_pre_013_security_redaction_covers_gap_repair_and_terminal_paths
ferme ensemble :
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 :
source_key
provider_gap
endpoint_gap
signature_gap
payload_gap
Legacy / V0 / V1
Le canari :
v0_3_14_pre_013_legacy_v0_v1_remains_proven_after_gap_repair_hardening
réunit les preuves suivantes :
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 :
v0_3_14_pre_013_worker_and_backfill_remain_independent_producers
prouve depuis les manifests :
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 :
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 :
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 :
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
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
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
deltas/0.3.14/pre.013.md
Fichiers modifiés
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
aucun
Version Cargo
Conformément au workflow prerelease non-fix :
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 :
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
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