v0.3.6-pre.003

This commit is contained in:
2026-09-01 11:58:38 +02:00
parent cb670952e8
commit f92c22d55a
12 changed files with 604 additions and 48 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/023-V0_3_6_JOB_API_BACKFILL.md -->
<!-- version: 4 -->
<!-- version: 5 -->
# Validation v0.3.6 — Job API et premier backfill RAW
@@ -49,7 +49,8 @@ Aucune entrée absolue, traversée, avec séparateur inversé ou lien symbolique
- [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] Gate opérateur de `pre.002-fix.001` : `cargo fmt`, audits Rust/Markdown, `cargo check`, Clippy, dix unitaires + onze canaries `ksp-job-api`, toutes les suites workspace, `cargo test --workspace` et arbres Cargo Job API verts.
- [X] L'environnement courant ne fournit pas l'exécutable `cargo` ; aucune validation Rust locale de `pre.003` n'est annoncée comme exécutée.
- [X] Le workspace compte 14 crates et aucune crate Job au point de départ.
## 4. Autorités et cohérence documentaire
@@ -70,15 +71,17 @@ Aucune entrée absolue, traversée, avec séparateur inversé ou lien symbolique
- [X] Transitions `Created`, `Running`, `Cancelling`, `Completed`, `Cancelled` et `Failed` contrôlées.
- [X] États terminaux immuables et lifecycle producteur non cloneable.
- [X] `JobCancellationToken` cloneable, idempotent, `Send + Sync` et sans Tokio public.
- [ ] `JobNotificationSequence` strictement monotone avec overflow traité sans panic.
- [ ] `JobNotification<S>` contient un snapshot complet, sûr et borné.
- [ ] `JobSnapshotSource` permet lecture courante et attente de changement sans callback producteur.
- [X] Aucun type Transport, Store, Logging, Tokio, serde, Worker ou Backfill dans l'API publique de `pre.002`.
- [X] Canaries externes de construction, lifecycle, annulation, firewalls, complétude et sécurité matérialisées.
- [ ] Dix unitaires et onze canaries Rust exécutés avec `cargo test -p ksp-job-api` par l'opérateur.
- [X] `JobNotificationSequence` strictement monotone avec overflow traité sans panic.
- [X] `JobNotification<S>` contient identité, kind, séquence, état et snapshot complet ; son `Debug` masque le snapshot et le contrat impose au snapshot concret de rester sûr et borné.
- [X] `JobSnapshotSource` permet lecture courante et attente abstraite d'une valeur plus récente sans callback producteur ni type Tokio public.
- [X] Aucun type Transport, Store, Logging, Tokio, serde, Worker ou Backfill dans l'API publique de `pre.003`; le futur abstrait utilise uniquement `std`.
- [X] Canaries externes de construction, lifecycle, annulation, notifications latest-value, firewalls, complétude et sécurité matérialisées.
- [X] Dix unitaires et onze canaries de `pre.002-fix.001` exécutés avec `cargo test -p ksp-job-api` par l'opérateur.
## 6. Notifications multi-listeners
`pre.003` fige le contrat public et ses canaries de resynchronisation. Les cases portant sur le stockage/réveil concret restent volontairement ouvertes jusqu'au producer `ksp-job-backfill-lib` ; un fake de test n'est pas traité comme preuve runtime de production.
- [ ] Stockage O(1) de la dernière valeur, sans historique non borné.
- [ ] Un listener lent ne bloque jamais le producteur.
- [ ] Plusieurs listeners progressent indépendamment.
@@ -179,8 +182,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-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] `scripts/audit_rust_workspace_rules.py` vert sur `pre.003` dans l'environnement d'assemblage.
- [X] `scripts/audit_markdown_tables.py` vert sur `pre.003` dans l'environnement d'assemblage (264 tables / 144 fichiers).
- [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.