v0.3.9-pre.002-fix.002

This commit is contained in:
2026-09-04 14:29:24 +02:00
parent 156d237460
commit 84647c12ea
6 changed files with 141 additions and 19 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/030-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT_PLAN.md -->
<!-- version: 5 -->
<!-- version: 6 -->
# Plan v0.3.9 — Worker API générique + audit RAW Transaction
@@ -563,9 +563,15 @@ La crate dépend uniquement de `ksp-core-lib`, ne possède aucune feature/dev/bu
#### `pre.002-fix.001` — chemins crate-root dans les modules propriétaires
**Statut : réalisé ; correctif de conformité Rust.**
**Statut : réalisé ; gate opérateur en échec de compilation test.**
Correction de la nouvelle crate Worker selon `RUST-IMPORT-009` : tout `impl` d'un type partagé/exporté cible désormais explicitement `crate::Type`, y compris les implémentations de traits `Debug`/`Default`. Le helper de test de séquence emploie également `crate::WorkerSnapshotSequence`. Une canarie dependency-boundary dédiée verrouille ces références sans élargir la surface fonctionnelle de `pre.002`. `workspace.package.version` devient `0.3.9-pre.2.fix.1`.
Correction de la nouvelle crate Worker selon `RUST-IMPORT-009` : tout `impl` d'un type partagé/exporté cible désormais explicitement `crate::Type`, y compris les implémentations de traits `Debug`/`Default`. Le gate opérateur confirme les audits et `cargo check --workspace`, puis Clippy `--all-targets` et `cargo test -p ksp-worker-api` révèlent `E0423` sur le helper de séquence : le re-export `crate::WorkerSnapshotSequence` expose le type mais pas son constructeur tuple à champ privé. `workspace.package.version` reste historiquement `0.3.9-pre.2.fix.1` pour cette livraison.
#### `pre.002-fix.002` — constructeur tuple privé de séquence
**Statut : réalisé ; correctif de compilation test.**
Le champ tuple de `WorkerSnapshotSequence` reste privé. L'`impl crate::WorkerSnapshotSequence` reçoit un constructeur associé strictement privé et `#[cfg(test)]`, `exhausted_for_test()`, qui effectue localement `Self(u64::MAX)`. Le helper privé appelle ensuite `crate::WorkerSnapshotSequence::exhausted_for_test()`. Cette forme maintient simultanément `RUST-IMPORT-009`, l'opacité publique de la séquence et la visibilité Rust correcte du constructeur. La canarie dependency-boundary distingue désormais explicitement target d'`impl` crate-root et construction privée confinée. `workspace.package.version` devient `0.3.9-pre.2.fix.2`.
### `pre.003` — hardening, races, object-safety, impl externe et freeze

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/026-V0_3_9_WORKER_API_RAW_TRANSACTION_AUDIT.md -->
<!-- version: 4 -->
<!-- version: 5 -->
# Validation v0.3.9 — Worker API + audit RAW Transaction
@@ -111,9 +111,19 @@ Les cases cochées de cette sous-section attestent la matérialisation de la sur
- [X] Violation `RUST-IMPORT-009` identifiée sur les targets d'`impl` des types Worker exportés.
- [X] `identity.rs` utilise `impl crate::WorkerId` et `impl crate::WorkerKindCode`, y compris pour `Debug`.
- [X] `lifecycle.rs` utilise la façade crate-root pour les cinq targets d'`impl` visibles.
- [X] `snapshot.rs` utilise la façade crate-root pour les trois targets d'`impl` visibles et le helper de séquence.
- [X] `snapshot.rs` utilise la façade crate-root pour les trois targets d'`impl` visibles.
- [X] `stop.rs` utilise la façade crate-root pour l'impl inhérent, `Default` et `Debug`.
- [X] Canarie dependency-boundary ajoutée contre cette régression.
- [X] Gate opérateur exécuté : audits propres et `cargo check --workspace` PASS.
- [X] Clippy `--all-targets --all-features -- -D warnings` et `cargo test -p ksp-worker-api` bloquent sur `E0423` dans le helper de séquence.
#### `pre.002-fix.002`
- [X] Aucun élargissement de visibilité du champ tuple `WorkerSnapshotSequence`.
- [X] Constructeur associé privé `#[cfg(test)]` ajouté dans `impl crate::WorkerSnapshotSequence`.
- [X] Construction terminale confinée à `Self(u64::MAX)` dans l'impl propriétaire.
- [X] Helper privé appelle `crate::WorkerSnapshotSequence::exhausted_for_test()`.
- [X] Canarie dependency-boundary interdit le retour de `crate::WorkerSnapshotSequence(u64::MAX)`.
- [ ] Gate Cargo du fix exécuté par l'opérateur.
### `pre.003`
@@ -234,10 +244,10 @@ Aucun item ci-dessous nest déclaré exécuté en `pre.001`.
La livraison initiale `pre.001` avait conservé `workspace.package.version = 0.3.8` en suivant lexception du prompt 028. Cette exception est supplantée par la règle normative `VER-ID-009`.
Après `pre.002-fix.001`, létat courant est :
Après `pre.002-fix.002`, létat courant est :
```text
workspace.package.version = 0.3.9-pre.2.fix.1
workspace.package.version = 0.3.9-pre.2.fix.2
```
`pre.002` reste la tranche non-fix `0.3.9-pre.2`. Son correctif de conformité Rust porte `0.3.9-pre.2.fix.1` conformément à `VER-ID-007` et `VER-ID-010`. L'état précédent `0.3.9-pre.1.fix.2` reste documenté dans `pre.001-fix.002`.
`pre.002` reste la tranche non-fix `0.3.9-pre.2`. Les correctifs de conformité/compilation portent successivement `0.3.9-pre.2.fix.1` puis `0.3.9-pre.2.fix.2` conformément à `VER-ID-007` et `VER-ID-010`. L'état précédent `0.3.9-pre.1.fix.2` reste documenté dans `pre.001-fix.002`.