Files
2026-09-12 20:43:43 +02:00

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