v0.3.6-pre.002-fix.001

This commit is contained in:
2026-09-01 10:55:35 +02:00
parent a25d8dd55a
commit cb670952e8
5 changed files with 124 additions and 16 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/027-V0_3_6_JOB_API_BACKFILL_PLAN.md -->
<!-- version: 3 -->
<!-- version: 4 -->
# Plan v0.3.6 — Job API et premier backfill RAW
@@ -392,11 +392,17 @@ Le sizing tabulaire est remplacé par les présentes sous-sections afin que chaq
### `pre.002` — Identité, lifecycle et annulation Job API
**Statut : matérialisé ; audits statiques propres, gate Cargo opérateur à exécuter.**
**Statut : alisé ; corrigé par `pre.002-fix.001`.**
Budget cible : **15-20 min**. Entrée : plan 027 corrigé, gate Markdown fiable et `cargo check --workspace` opérateur vert sur `pre.001-fix.001`. La crate `ksp-job-api` est ajoutée avec `JobId`, `JobKindCode`, `JobCompletion`, `JobState`, `JobLifecycle` et `JobCancellationToken`. Les identités utilisent un alphabet sûr et une borne de 128 octets ; leur valeur est privée et `JobId` est redacted en `Debug`. Le lifecycle possédé n'est pas cloneable, n'autorise que les transitions décidées et conserve les terminaux immuables. Le token partage un `AtomicBool` par `Arc`, rend la première demande observable et reste indépendant de tout runtime.
La tranche ajoute dix tests unitaires et onze canaries d'intégration réparties entre API publique, dépendances, complétude et sécurité. Les audits Rust/Markdown locaux sont propres ; `cargo`, `rustfmt`, Clippy et les tests Rust ne sont pas disponibles dans l'environnement d'assemblage. La sortie exige donc encore le gate opérateur `cargo fmt`, `cargo check`, Clippy et `cargo test -p ksp-job-api`. Aucune notification, séquence, snapshot, crate Backfill, dépendance Logging/Transport/Store ou surface Worker n'est ouverte.
La tranche ajoute dix tests unitaires et onze canaries d'intégration réparties entre API publique, dépendances, complétude et sécurité. Le gate opérateur a confirmé `cargo fmt`, les audits, `cargo check --workspace` et les deux arbres Cargo. Clippy `--all-targets` et `cargo test -p ksp-job-api` ont toutefois révélé que le helper de fixture `lifecycle()` était masqué par une variable locale homonyme dans un test unitaire. Aucune notification, séquence, snapshot, crate Backfill, dépendance Logging/Transport/Store ou surface Worker n'est ouverte.
#### `pre.002-fix.001` — Compilation des tests lifecycle
**Statut : matérialisé ; gate Cargo opérateur à rejouer.**
Le helper de fixture est renommé `new_lifecycle()` et tous ses appels sont synchronisés afin d'éliminer le masquage lexical à l'origine des erreurs Rust `E0618` et `E0282`. Le correctif ne modifie ni l'API publique, ni les transitions, ni le nombre de tests. Comme un fichier Rust est corrigé, la version workspace devient `0.3.6-pre.2.fix.1`.
### `pre.003` — Notifications latest-value génériques

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/023-V0_3_6_JOB_API_BACKFILL.md -->
<!-- version: 3 -->
<!-- version: 4 -->
# Validation v0.3.6 — Job API et premier backfill RAW
@@ -46,6 +46,9 @@ Aucune entrée absolue, traversée, avec séparateur inversé ou lien symbolique
- [X] Contrats et tailles des trois nouveaux fichiers vérifiés.
- [X] Le journal opérateur fourni rapporte `cargo fmt`, audits, `cargo check`, `cargo clippy` et suites Interface ou Program verts sur v0.3.5.
- [X] Gate opérateur de `pre.001-fix.001` : 5 tests Python, audit Markdown 264/141, audit Rust et `cargo check --workspace` verts.
- [X] Gate opérateur de `pre.002` : `cargo fmt`, audits Rust/Markdown, `cargo check --workspace` et arbres Cargo normal/features verts.
- [X] Échec de `pre.002` constaté dans la preuve opérateur : Clippy `--all-targets` et les tests compilent `unit_tests/lifecycle.rs`, où le helper `lifecycle()` est masqué par une variable homonyme (`E0618`, puis `E0282`).
- [X] `pre.002-fix.001` renomme uniquement le helper en `new_lifecycle()` et synchronise ses six appels sans modifier le contrat public ni la matrice de transitions.
- [X] L'environnement courant ne fournit pas l'exécutable `cargo` ; aucune validation Rust locale n'est annoncée comme exécutée.
- [X] Le workspace compte 14 crates et aucune crate Job au point de départ.
@@ -176,8 +179,8 @@ Aucune entrée absolue, traversée, avec séparateur inversé ou lien symbolique
- [ ] Aucun retour de dépendance vers Job depuis les couches basses.
- [ ] Versions et features des nouvelles dépendances auditées avant ajout.
- [ ] `cargo fmt --all -- --check` vert.
- [X] `scripts/audit_rust_workspace_rules.py` vert sur `pre.002` dans l'environnement d'assemblage.
- [X] `scripts/audit_markdown_tables.py` vert sur `pre.002` dans l'environnement d'assemblage.
- [X] `scripts/audit_rust_workspace_rules.py` vert sur `pre.002-fix.001` dans l'environnement d'assemblage.
- [X] `scripts/audit_markdown_tables.py` vert sur `pre.002-fix.001` dans l'environnement d'assemblage.
- [X] Contrats de fichiers de `FILE_CONTRACTS.md` vérifiés sur chaque ajout de `pre.001`.
- [ ] `cargo check --workspace` vert.
- [ ] `cargo clippy --workspace --all-targets --all-features -- -D warnings` vert.