v0.3.6-pre.002

This commit is contained in:
2026-09-01 10:45:39 +02:00
parent ecfc30a94b
commit a25d8dd55a
17 changed files with 1087 additions and 18 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/023-V0_3_6_JOB_API_BACKFILL.md -->
<!-- version: 2 -->
<!-- version: 3 -->
# Validation v0.3.6 — Job API et premier backfill RAW
@@ -45,6 +45,7 @@ Aucune entrée absolue, traversée, avec séparateur inversé ou lien symbolique
- [X] Le résultat historique `240 tables / 153 fichiers` de `pre.001` est identifié comme faux positif pour les nouveaux tableaux non alignés.
- [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] 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.
@@ -60,16 +61,18 @@ Aucune entrée absolue, traversée, avec séparateur inversé ou lien symbolique
## 5. Contrat `ksp-job-api`
- [ ] `JobId` borné, validé et opaque.
- [ ] `JobKindCode` stable et sans texte humain libre.
- [ ] Transitions `Created`, `Running`, `Cancelling`, `Completed`, `Cancelled` et `Failed` contrôlées.
- [ ] États terminaux immuables et résultat complet ou partiel explicite.
- [ ] `JobCancellationToken` cloneable, idempotent et sans Tokio public.
- [X] `JobId` borné à 128 octets, validé, opaque et redacted en `Debug`.
- [X] `JobKindCode` stable, borné et limité à l'alphabet sûr KSP.
- [X] `JobCompletion` distingue `Complete` et `Partial` sans texte libre.
- [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.
- [ ] Aucun type Transport, Store, Logging, Tokio ou serde dans l'API publique.
- [ ] Canaries externes de construction, observation et annulation vertes.
- [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.
## 6. Notifications multi-listeners
@@ -168,13 +171,13 @@ Aucune entrée absolue, traversée, avec séparateur inversé ou lien symbolique
## 14. Firewalls et qualité Rust
- [ ] `ksp-job-api` ne dépend au plus que de Core.
- [X] `ksp-job-api` dépend exactement de Core et n'a aucune feature, dev-dependency ou build-dependency.
- [ ] `ksp-job-backfill-lib` ne dépend pas de Config, App, Wallet, Program, Interface ou backend Store.
- [ ] 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.
- [ ] `scripts/audit_rust_workspace_rules.py` vert.
- [ ] `scripts/audit_markdown_tables.py` 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] 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.