3.2 KiB
Delta 0.3.11-pre.003-fix.001 — propagation d'erreur explicite des settings
Base requise
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 :
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 :
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 :
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
deltas/0.3.11/pre.003-fix.001.md
Fichiers modifiés
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
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é
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.