# Delta `0.3.12-pre.003-fix.002` — correction du canari source sous `#[cfg(test)]` ## Base requise ```text 0.3.12-pre.003-fix.001 workspace.package.version = 0.3.12-pre.3.fix.1 ``` Le gate opérateur reçu pour `pre.003-fix.001` montre : ```text audit Rust : clean audit Markdown : clean (340 tables, 804 fichiers) cargo check --workspace : PASS cargo clippy --workspace --all-targets --all-features -- -D warnings : PASS unit tests Worker : 45 PASS integration dependency_boundary : 4 PASS integration public_api : 8 PASS integration release_completeness : 3 PASS integration hardening : 9 PASS, 1 FAIL ``` L'unique échec est `v0_3_12_pre_003_private_signal_debug_and_shape_do_not_expose_signature_filters_or_payload`, qui rapporte à tort `required private signal field missing: created_at:`. ## Objectif Corriger exclusivement le canari source devenu incompatible avec l'attribut `#[cfg(test)]` introduit par `pre.003-fix.001`, sans modifier le contrat runtime ni avancer `pre.004`. ## Version La correction modifie un test Rust ; conformément aux règles de version du workspace : ```text delivery id = 0.3.12-pre.003-fix.002 workspace.package.version = 0.3.12-pre.3.fix.2 ``` ## Correction Le scanner du test isolait `RawTransactionIngestSourceSignal` avec une terminaison littérale qui supposait que son `impl Debug` suivait immédiatement la structure : ```text }\n\nimpl std::fmt::Debug for RawTransactionIngestSourceSignal ``` Après `pre.003-fix.001`, la forme correcte est : ```text } #[cfg(test)] impl std::fmt::Debug for RawTransactionIngestSourceSignal ``` Le scanner est donc rendu indépendant de cet attribut : après avoir trouvé la déclaration de la structure, il borne désormais le segment sur le début de `impl std::fmt::Debug for RawTransactionIngestSourceSignal` lui-même. Cette forme fonctionne avec les adapters actuellement test-only et restera compatible lorsque `pre.004` remettra ces helpers dans le build productif. ## Décisions prises ```text aucune modification du signal privé aucune modification de runtime_resources.rs aucun allow/expect lint aucune activation Yellowstone/HTTP/Store aucune avance fonctionnelle vers pre.004 correction limitée au canari qui inspecte la source ``` ## Questions ouvertes Aucune. ## Fichiers ajoutés ```text deltas/0.3.12/pre.003-fix.002.md ``` ## Fichiers modifiés ```text Cargo.toml crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs docs/validation/029-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY.md ``` ## Fichiers supprimés Aucun. ## Validations exécutées dans l'environnement d'assemblage ```text 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`, `rustc` et `rustfmt` ne sont pas installés dans cet environnement ; aucun gate Cargo local n'est déclaré PASS. ## Gate opérateur demandé ```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 ``` ## Non-claims Ce fix ne revendique toujours pas : ```text stream Yellowstone ouvert update réseau consommée hydration HTTP Common RAW issu du réseau provenance composite finale persistence réseau Block / BlockMeta / Slot coalescence frontier / from_slot / ReplayInfo ```