v0.3.12-pre.002

This commit is contained in:
2026-09-09 07:12:37 +02:00
parent 08e9a34183
commit 91438e8214
12 changed files with 937 additions and 40 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/029-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Validation v0.3.12 — Yellowstone + hydration HTTP + continuité de run du Worker RawTransaction
@@ -531,3 +531,120 @@ maintien/split décidé
plan + validation + delta créés
audits statiques post-modification verts
```
## 22. Gate opérateur reçu pour `pre.001`
L'opérateur a exécuté après application de `pre.001` :
```text
cargo fmt --all : sans erreur visible
audit Rust : clean
Rust export completeness : 0 candidate
KSP workspace Rust rule audit : clean
audit Markdown : clean (340 tables, 801 fichiers)
cargo check --workspace : PASS visible
cargo clippy --workspace --all-targets --all-features -- -D warnings : PASS visible
```
Aucun `cargo test` ou `cargo tree` n'est présent dans ce journal ; ils ne sont donc pas revendiqués pour ce gate.
Résultat : `pre.001` est accepté comme base technique de `pre.002`.
## 23. Gate `pre.002` — edge Transport + contrats runtime/source
La tranche matérialise exactement :
```text
workspace.package.version = 0.3.12-pre.2
Worker -> ksp-onchain-transport-lib
RawTransactionIngestYellowstoneSource
RawTransactionIngestRuntimeResources
RawTransactionIngestWorker::start_with_runtime_resources(...)
```
Le constructeur `RawTransactionIngestYellowstoneSource::new` effectue uniquement des validations déterministes sans I/O :
```text
YellowstoneSubscribeRequest::validate
au moins une famille transactions / transactions_status / blocks
commitment explicite confirmed ou finalized
rôle HTTP configuré compatible avec le request kind get_transaction
cluster identique entre Yellowstone et toutes les routes HTTP compatibles
```
`RawTransactionIngestRuntimeResources` conserve un seul source Yellowstone à champs privés et vérifie la cohérence avec `RawTransactionIngestSettings.network` avant le démarrage.
`start_with_runtime_resources` préserve également le gate Store/settings existant. En `pre.002`, il ne démarre volontairement encore aucun source live : les ressources sont validées mais ne sont pas activées, puis le démarrage délègue au runtime source-neutral existant. L'activation du stream reste réservée à `pre.006` conformément au plan.
## 24. Canaris déterministes ajoutés en `pre.002`
Les preuves statiques/unitaires ajoutées couvrent :
```text
manifest Worker exact avec un seul nouvel edge Transport
aucun Config / Job / backend Store / tonic / reqwest / yellowstone-grpc-proto direct
source confirmed + transaction + getTransaction route accepté
processed et commitment implicite rejetés
absence de famille d'ingestion rejetée
rôle HTTP sans get_transaction rejeté
mismatch cluster Yellowstone/HTTP rejeté
mismatch réseau Worker/source rejeté
Debug sans URL, token, filter name ou client inner
API publique des deux resource types disponible depuis crate root
start_with_runtime_resources disponible depuis crate root
aucun enqueue/send/inner/client getter public
aucun open_standard_subscribe / next_update / get_transaction_observed dans la tranche
Transport confiné à runtime_resources.rs dans les sources Worker
```
Aucun nouveau code Config, Store backend, Backfill ou provider n'est introduit.
## 25. Validation locale après modification de `pre.002`
Exécuté dans l'environnement d'assemblage :
```text
python3 scripts/audit_rust_workspace_rules.py
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
KSP workspace Rust rule audit: clean
```
L'audit Markdown est rejoué après création du delta final afin d'inclure le nouveau fichier `deltas/0.3.12/pre.002.md`.
`cargo`, `rustc` et `rustfmt` ne sont pas installés dans cet environnement ; aucun gate Cargo local n'est revendiqué.
Gate opérateur demandé après application du delta :
```bash
cargo fmt --all
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
cargo tree -p ksp-worker-raw-transaction-ingest-lib --edges normal
cargo tree -p ksp-worker-raw-transaction-ingest-lib -e features
cargo tree --duplicates
```
## 26. Non-claims `pre.002`
`pre.002` ne prétend pas avoir :
```text
ouvert une session Yellowstone
lu une update Transaction/TransactionStatus/Block
émis un signal Worker privé
appelé getTransaction pour hydration
assemblé une provenance composite
persisté une transaction issue du réseau
coalescé des hydrations
modifié la processing frontier
branché from_slot/replay info
exécuté un smoke live Worker
réconcilié README/USAGE/architecture pour la surface finale 0.3.12
```
La tranche suivante reste `pre.003` : adaptation déterministe `Transaction` + `TransactionStatus` vers le signal Worker privé, sans HTTP ni persistence réseau.