v0.3.12-pre.006-fix.001

This commit is contained in:
2026-09-09 15:00:27 +02:00
parent 901a0515b7
commit 07b9b20eb5
4 changed files with 143 additions and 9 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/029-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY.md -->
<!-- version: 11 -->
<!-- version: 12 -->
# Validation v0.3.12 — Yellowstone + hydration HTTP + continuité de run du Worker RawTransaction
@@ -1306,3 +1306,36 @@ cargo tree --duplicates
```
Dans l'environnement d'assemblage, `cargo`, `rustc` et `rustfmt` ne sont pas installés ; aucun gate Cargo local n'est donc revendiqué.
## 55. Gate opérateur `pre.006` et `pre.006-fix.001`
Le gate opérateur de `pre.006` confirme :
```text
General Rust rule audit : clean
Rust export completeness audit : 0 candidate(s)
KSP workspace Rust rule audit : clean
Markdown table audit : clean (340 tables, 810 fichiers)
cargo check --workspace : PASS
cargo test -p ksp-worker-raw-transaction-ingest-lib : 57 PASS / 1 FAIL
```
Le gate Clippy strict échoue uniquement sur trois `clippy::implicit-return` dans le nouveau chemin productif : la branche neutre du routage Yellowstone et les deux branches de la closure `find_map` qui sélectionne la prochaine hydration non lancée.
Le test rouge est `pre_004_source_hydration_rejects_slot_index_signature_and_network_mismatch_before_admission`. La cause n'est pas le test : depuis `pre.006`, le helper de qualification construit la clé et lance le fetch avant d'atteindre le guard réseau de `finalize_yellowstone_hydration`, ce qui transforme le contexte attendu `hydration.network_mismatch` en `hydration.network_key_mismatch`.
`pre.006-fix.001` restaure l'invariant plus fort : `hydration_key` rejette immédiatement tout `signal.network != source.network` avec `hydration.network_mismatch`, donc avant coalescence et avant tout HTTP. Le guard de finalisation reste en place comme défense secondaire.
Les trois retours implicites sont rendus explicites sans lint neutralisé. La logique de coalescence, les bornes, le fan-out, les provenances et le contrat de stop ne changent pas.
## 56. Gate requis après `pre.006-fix.001`
```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
```