v0.3.6-pre.011

This commit is contained in:
2026-09-01 17:18:12 +02:00
parent 7f8ce987a5
commit 9506df9487
4 changed files with 156 additions and 20 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/023-V0_3_6_JOB_API_BACKFILL.md -->
<!-- version: 23 -->
<!-- version: 25 -->
# Validation v0.3.6 — Job API et premier backfill RAW
@@ -205,7 +205,7 @@ Aucune entrée absolue, traversée, avec séparateur inversé ou lien symbolique
- [X] `ksp-job-api` dépend exactement de Core et n'a aucune feature, dev-dependency ou build-dependency.
- [X] `ksp-job-backfill-lib` ne dépend pas de Config, App, Wallet, Program, Interface ou backend Store ; `ksp-store-lib` est consommée avec `default-features = false`.
- [ ] Aucun retour de dépendance vers Job depuis les couches basses ; canarie externe `pre.010` matérialisée.
- [X] Aucun retour de dépendance vers Job depuis les couches basses ; canarie externe `pre.010` exécutée avec succès.
- [X] Versions/features auditées : aucune nouvelle version externe ; `sha2`, `futures-util` et `tokio` réutilisent les entrées workspace existantes. `futures-util` reste un détail normal privé depuis `pre.008` et `pre.009` promeut Tokio en dépendance normale privée limitée à `macros` + `sync`; aucun type Tokio n'est exposé.
- [X] `pre.005` matérialise 11 tests unitaires et 6 canaries dintégration ; le gate opérateur les exécute tous avec succès.
- [X] `pre.006` matérialise 19 tests unitaires et 7 canaries dintégration ; le gate opérateur les exécute tous avec succès, avec uniquement le warning Clippy corrigé par `pre.006-fix.001`.
@@ -223,19 +223,47 @@ Aucune entrée absolue, traversée, avec séparateur inversé ou lien symbolique
### Hardening externe `pre.010`
La tranche ajoute 9 canaries externes et une canarie de complétude, portant le total d'intégration attendu à 20 sans modifier les 47 unitaires. Le gate Rust reste à rejouer.
La tranche ajoute 9 canaries externes et une canarie de complétude, portant le total d'intégration à 20 sans modifier les 47 unitaires. Le gate opérateur est intégralement vert : audits Rust/Markdown, `cargo check`, Clippy sans warning, 47 unitaires et 20 canaries d'intégration passent sur `0.3.6-pre.10`.
- [ ] Neuf codes d'erreur publics Backfill stables, uniques et dans le domaine `job_backfill`; canarie externe matérialisée.
- [ ] Signature Base58 hostile et bornes de requête invalides retournent les codes stables attendus ; canarie externe matérialisée.
- [ ] Fingerprint sensible au réseau mais indépendant du JobId et du rôle Transport ; canarie externe matérialisée.
- [ ] `Debug` des signatures/fingerprint/requête/handle ne révèle ni signature brute ni payload snapshot ; canarie externe matérialisée.
- [ ] Handle public créé en état `Created`, annulation acceptée une fois puis idempotemment rejetée ; canarie externe matérialisée.
- [ ] Surface de dépendances exacte et backend-neutral, avec Store façade `default-features = false`; canarie externe matérialisée.
- [ ] Surface source Backfill conforme aux chemins crate-root pour les items partagés et sans `crate::module::Item`; canarie externe matérialisée.
- [ ] Aucun retour des couches Core/Logging/Transport/Store vers Job ; canarie externe matérialisée.
- [ ] Façade publique sans fuite Tokio/Futures/Serde/Store backend/HTTP ; canarie externe matérialisée.
- [X] Neuf codes d'erreur publics Backfill stables, uniques et dans le domaine `job_backfill`; canarie externe `pre.010` verte.
- [X] Signature Base58 hostile et bornes de requête invalides retournent les codes stables attendus ; canarie externe `pre.010` verte.
- [X] Fingerprint sensible au réseau mais indépendant du JobId et du rôle Transport ; canarie externe `pre.010` verte.
- [X] `Debug` des signatures/fingerprint/requête/handle ne révèle ni signature brute ni payload snapshot ; canarie externe `pre.010` verte.
- [X] Handle public créé en état `Created`, annulation acceptée une fois puis idempotemment rejetée ; canarie externe `pre.010` verte.
- [X] Surface de dépendances exacte et backend-neutral, avec Store façade `default-features = false`; canarie externe `pre.010` verte.
- [X] Surface source Backfill conforme aux chemins crate-root pour les items partagés et sans `crate::module::Item`; canarie externe `pre.010` verte.
- [X] Aucun retour des couches Core/Logging/Transport/Store vers Job ; canarie externe `pre.010` verte.
- [X] Façade publique sans fuite Tokio/Futures/Serde/Store backend/HTTP ; canarie externe `pre.010` verte.
## 15. Preuves d'intégration et fermeture
## 15. Gate technique final `pre.011`
`pre.011` n'ajoute aucun code, test fonctionnel, manifeste de crate, dépendance, README/USAGE, CHANGELOG/ROADMAP ni prompt suivant. Il synchronise uniquement `workspace.package.version`, le plan, la validation et son delta afin de rejouer la preuve technique finale sur la surface `pre.010` déjà durcie.
Matrice opérateur attendue :
```text
cargo fmt --all -- --check
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/0.3.6
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-targets --all-features
cargo tree -p ksp-job-api --edges normal
cargo tree -p ksp-job-api -e features
cargo tree -p ksp-job-backfill-lib --edges normal
cargo tree -p ksp-job-backfill-lib -e features
cargo tree --duplicates
```
Les arbres Cargo sont rejoués ici au titre de la clôture technique finale, même si `pre.011` ne modifie aucune dépendance. Un `cargo clean` préalable reste optionnel et peut être utilisé par l'opérateur pour une reconstruction froide ; il n'est pas un prérequis de `cargo tree`.
Le smoke PostgreSQL reste conditionnel à une URI dédiée explicitement disponible. En l'absence d'environnement live fourni, il reste non exécuté et non bloquant ; aucune réussite live n'est inventée.
**Statut : matérialisé ; gate opérateur final à exécuter.**
## 16. Preuves d'intégration et fermeture
- [X] Fake Transport et fake Store déterministes sans backend direct exécutés avec succès au gate `pre.007`; fake processor concurrent `pre.008-fix.001` exécuté avec succès.
- [ ] Vertical découverte, hydratation, conversion, persistance et observation couvert.
@@ -246,7 +274,7 @@ La tranche ajoute 9 canaries externes et une canarie de complétude, portant le
- [ ] Archives de release minimales et vérifiées.
- [ ] Version stable publiée uniquement après tous les critères obligatoires.
## 16. Règle de vérité
## 17. Règle de vérité
Une case n'est cochée que par une preuve effectivement exécutée ou un audit effectivement réalisé. L'absence de `cargo`, de PostgreSQL configuré ou d'accès live est rapportée comme non exécutée ; elle n'est jamais convertie en succès implicite.