# Delta `0.3.11-pre.003-fix.001` — propagation d'erreur explicite des settings ## Base requise ```text 0.3.11-pre.003 workspace.package.version = 0.3.11-pre.3 ``` ## Défaut opérateur constaté Le gate opérateur du 8 septembre 2026 confirme que `cargo fmt --all`, les audits Rust/Markdown et `cargo check --workspace` passent, mais `cargo clippy --workspace --all-targets --all-features -- -D warnings` rejette deux usages de l'opérateur `?` dans `RawTransactionIngestSettings::new`. Diagnostics : ```text crates/ksp-worker-raw-transaction-ingest-lib/src/settings.rs:42:9 clippy::question_mark_used crates/ksp-worker-raw-transaction-ingest-lib/src/settings.rs:48:9 clippy::question_mark_used ``` La règle normative `RUST-ERR-002` interdit également l'opérateur `?` en code de production. Les tests de la crate communiqués dans le même journal restent verts : 4 tests unitaires, 3 tests dependency-boundary et 3 tests public API, sans échec. ## Objectif Corriger strictement `pre.003` sans modifier son contrat fonctionnel : remplacer les deux propagations `?` par un contrôle de flux explicite retournant exactement la même erreur. Aucun type, borne, default, code d'erreur, dépendance, test, lifecycle ou comportement runtime n'est ajouté. ## Version Le correctif touche un fichier Rust de production. Conformément à `VER-ID-007` et `VER-ID-010` : ```text identifiant de livraison : 0.3.11-pre.003-fix.001 workspace.package.version : 0.3.11-pre.3.fix.1 ``` ## Modification Dans `RawTransactionIngestSettings::new`, les validations de : ```text admission_queue_capacity persistence_concurrency ``` utilisent désormais `if let Result::Err(error)` puis `return Err(error)`. La validation de `shutdown_drain_timeout` était déjà explicite et reste inchangée. ## Fichiers ajoutés ```text deltas/0.3.11/pre.003-fix.001.md ``` ## Fichiers modifiés ```text Cargo.toml crates/ksp-worker-raw-transaction-ingest-lib/src/settings.rs ``` ## 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 scan statique : aucun opérateur `?` restant dans settings.rs scan statique : aucune modification de surface publique/settings hors propagation d'erreur ``` L'environnement d'assemblage ne fournit ni `cargo`, ni `rustc`, ni `rustfmt`. Aucun gate Cargo du fix n'est déclaré PASS localement. ## 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 cargo tree -p ksp-worker-raw-transaction-ingest-lib --edges normal cargo tree -p ksp-worker-raw-transaction-ingest-lib -e features ``` ## Décision `pre.004` reste bloquée jusqu'à validation opérateur verte de ce fix. Aucun périmètre de `pre.003` n'est redéfini. ## Questions ouvertes Aucune.