3.4 KiB
Delta 0.3.9-pre.002-fix.001 — conformité crate-root de ksp-worker-api
Base requise
0.3.9-pre.002
workspace.package.version = 0.3.9-pre.2
Le gate opérateur de pre.002 est vert : format et audits propres, cargo check --workspace PASS, Clippy workspace --all-targets --all-features -- -D warnings PASS, cargo test -p ksp-worker-api PASS avec 17 tests, et les deux cargo tree ciblés confirment la frontière Core-only.
Défaut corrigé
La nouvelle crate respectait les réexports crate-root dans ses signatures inter-types, mais les modules propriétaires implémentaient encore les types partagés par nom local nu, par exemple :
impl WorkerId {
RUST-IMPORT-009 impose qu'un élément pub ou pub(crate) partagé soit appelé via crate::Item, y compris depuis son module de déclaration lorsque le contrat est crate-wide. La forme canonique est donc :
impl crate::WorkerId {
Le même défaut existait pour les autres targets d'impl de identity.rs, lifecycle.rs, snapshot.rs et stop.rs.
Corrections Rust
Les targets sont normalisées sans modifier la surface ni le comportement :
identity.rs
WorkerId
Debug for WorkerId
WorkerKindCode
Debug for WorkerKindCode
lifecycle.rs
WorkerState
WorkerHealth
WorkerActivity
WorkerLifecycle
Debug for WorkerLifecycle
snapshot.rs
WorkerSnapshotSequence
WorkerSnapshot
Debug for WorkerSnapshot
stop.rs
WorkerStopToken
Default for WorkerStopToken
Debug for WorkerStopToken
Le helper exhausted_snapshot_sequence() construit aussi explicitement crate::WorkerSnapshotSequence(u64::MAX).
Une troisième canarie dependency_boundary vérifie les références crate-root attendues dans les quatre modules propriétaires afin d'éviter une régression locale lors de pre.003.
Version
Ce correctif modifie du code Rust :
workspace.package.version = 0.3.9-pre.2.fix.1
Le header du Cargo.toml racine passe de 477 à 478.
Hors scope
Aucun changement de lifecycle, identity bounds, snapshot shape, stop semantics, ErrorCode, dépendance, feature ou API publique. Aucun travail pre.003 n'est anticipé.
L'auditeur Python global n'est pas étendu dans ce fix : une généralisation immédiate ferait remonter la dette historique de crates antérieures et élargirait artificiellement cette correction locale. La canarie Worker ferme le défaut nouveau sans masquer cette distinction.
Fichiers modifiés
Cargo.toml
crates/ksp-worker-api/src/identity.rs
crates/ksp-worker-api/src/lifecycle.rs
crates/ksp-worker-api/src/snapshot.rs
crates/ksp-worker-api/src/stop.rs
crates/ksp-worker-api/tests/dependency_boundary.rs
docs/plans/030-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT_PLAN.md
docs/validation/026-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT.md
Fichier ajouté
deltas/0.3.9/pre.002-fix.001.md
Fichiers supprimés
Aucun.
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-api
cargo tree -p ksp-worker-api --edges normal
cargo tree -p ksp-worker-api -e features