v0.3.6-pre.008-fix.001

This commit is contained in:
2026-09-01 15:22:54 +02:00
parent 75cbf9df09
commit d89aee9910
5 changed files with 76 additions and 14 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/027-V0_3_6_JOB_API_BACKFILL_PLAN.md -->
<!-- version: 14 -->
<!-- version: 15 -->
# Plan v0.3.6 — Job API et premier backfill RAW
@@ -482,7 +482,7 @@ La tranche matérialise 29 tests unitaires et 8 canaries d'intégration au total
### `pre.008` — Concurrence, frontier et checkpoint
**Statut : matérialisé ; gate opérateur à rejouer.**
**Statut : alisé ; corrigé par `pre.008-fix.001`, gate opérateur du fix à rejouer.**
Budget cible : **15-20 min**. Entrée : résultats Store typés et gate `pre.007` vert. La tranche ajoute `BackfillCheckpoint`, `BackfillExecutionBatch` et `execute_backfill_discovery`. Le checkpoint est opaque, caller-owned et validé contre `JobId` + fingerprint de scope ; aucune table ou persistance durable de Job n'est créée. `BackfillRequest::with_checkpoint` reste additif afin de préserver les constructeurs existants.
@@ -490,6 +490,12 @@ L'exécution utilise un `FuturesUnordered` privé et maintient au plus `hydratio
La reprise suit les quatre sémantiques figées : Latest repart de la vue courante et s'appuie sur l'idempotence Store ; Before reprend via le dernier curseur contigu et cumule le préfixe durable ; After et Explicit rejouent le scope et sautent uniquement le préfixe validé. Si une découverte After finit sur `AfterAnchorNotReached`, aucun progrès nouveau de checkpoint n'est publié ; le checkpoint précédent est conservé s'il existe. La tranche matérialise 39 tests unitaires et 9 canaries d'intégration. L'annulation coopérative, le snapshot latest-value complet et les courses terminales restent fermés jusqu'à `pre.009`.
#### `pre.008-fix.001` — Masquage du helper `request` dans la canarie checkpoint
**Statut : matérialisé ; gate opérateur à rejouer.**
Le gate opérateur de `pre.008` confirme `cargo fmt`, les audits Rust/Markdown et `cargo check --workspace`, puis la compilation des targets de test échoue en `E0618`/`E0282` : dans `pre_008_checkpoint_is_bound_to_job_and_scope_fingerprint`, la variable locale `request` masque le helper homonyme avant la construction du second scope. Le fix renomme uniquement cette liaison locale en `primary_request` et synchronise ses usages ; aucun contrat, test, comportement runtime, checkpoint, dépendance ou feature ne change. Comme un fichier Rust est corrigé, la version workspace devient `0.3.6-pre.8.fix.1`. Les arbres Cargo de `pre.008` ont déjà été inspectés puisque cette tranche ajoutait `futures-util`; ils n'ont pas à être rejoués pour ce fix sans changement de graphe.
### `pre.009` — Annulation et snapshots concrets
**Statut : planifié.**