Files
khadhroony-solana-project/deltas/0.3.9/pre.002-fix.001.md

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