295 lines
7.0 KiB
Markdown
295 lines
7.0 KiB
Markdown
<!-- file: deltas/0.3.14/pre.013.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# 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
|
|
```
|