v0.3.6-pre.005-fix.001
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/027-V0_3_6_JOB_API_BACKFILL_PLAN.md -->
|
||||
<!-- version: 8 -->
|
||||
<!-- version: 9 -->
|
||||
|
||||
# Plan v0.3.6 — Job API et premier backfill RAW
|
||||
|
||||
@@ -434,13 +434,19 @@ Les tests couvrent le succès direct `null`, la surface publique et surtout un r
|
||||
|
||||
### `pre.005` — Fondation Backfill et découverte
|
||||
|
||||
**Statut : matérialisé ; gate opérateur à rejouer.**
|
||||
**Statut : réalisé ; corrigé par `pre.005-fix.001`, gate opérateur du fix à rejouer.**
|
||||
|
||||
Budget cible : **15-20 min**. Entrée : Transport observé stable et gate `pre.004` vert. La tranche crée `ksp-job-backfill-lib` avec dépendances directes Job API, Core, Logging, Onchain Transport, Store façade sans feature backend imposée et SHA-256 déjà centralisé au workspace ; Tokio reste uniquement une dev-dependency pour les tests async de cette tranche.
|
||||
|
||||
La requête impose explicitement `JobId`, `RawNetworkId`, rôle HTTP, engagement `Confirmed|Finalized`, scope, page size `1..=1000`, pages `1..=10000`, candidats `1..=10000`, future concurrence d'hydratation `1..=64` et `min_context_slot` seulement pour les scopes adresse. Les quatre scopes sont matérialisés. Les signatures explicites sont bornées, Base58-shaped et dédupliquées à première occurrence ; le décodage exact vers 64 octets reste volontairement `pre.006`.
|
||||
|
||||
`BackfillCandidateIdentity` est explicitement `(RawNetworkId, BackfillSignature)` ; rôle/provider/endpoint/protocole sont exclus du fingerprint de scope et ne peuvent donc pas devenir une identité transactionnelle. La découverte réelle appelle uniquement `HttpTransportPool::get_signatures_for_address`, sans client, retry, pacing ou endpoint policy dans Job. Latest/Before paginent par `before`, After conserve la fenêtre plus récente la plus proche de l'ancre via `until`, et les limites de pages produisent un résultat partiel observable plutôt qu'une fausse complétion. Les doubles déterministes restent privés aux tests. La tranche matérialise 11 tests unitaires et 6 canaries d’intégration ; leur exécution Cargo reste une preuve opérateur. Sortie attendue après gate : latest, before, after et explicite, déduplication stable, frontières partielles et firewall de dépendances verts.
|
||||
`BackfillCandidateIdentity` est explicitement `(RawNetworkId, BackfillSignature)` ; rôle/provider/endpoint/protocole sont exclus du fingerprint de scope et ne peuvent donc pas devenir une identité transactionnelle. La découverte réelle appelle uniquement `HttpTransportPool::get_signatures_for_address`, sans client, retry, pacing ou endpoint policy dans Job. Latest/Before paginent par `before`, After conserve la fenêtre plus récente la plus proche de l'ancre via `until`, et les limites de pages produisent un résultat partiel observable plutôt qu'une fausse complétion. Les doubles déterministes restent privés aux tests. Le gate opérateur exécute avec succès les 11 tests unitaires et les 6 canaries d’intégration, ainsi que `cargo check`; Clippy `--all-targets` révèle toutefois un unique écart de style `implicit_return` dans une closure privée de `discover_older`, corrigé par `pre.005-fix.001`.
|
||||
|
||||
#### `pre.005-fix.001` — Return explicite dans la closure du curseur Before
|
||||
|
||||
**Statut : matérialisé ; gate opérateur à rejouer.**
|
||||
|
||||
Le gate opérateur de `pre.005` confirme `cargo fmt`, les audits Rust/Markdown, `cargo check --workspace`, les 11 tests unitaires, les 6 canaries d’intégration et les arbres Cargo. `cargo clippy --workspace --all-targets` échoue uniquement sur `clippy::implicit_return` à la construction optionnelle du curseur `before` dans `discover_older`. Le fix remplace l'expression implicite de la closure par `return value.as_str().to_owned()` sans modifier la valeur produite, les branches de scope, la pagination ou le contrat public. Comme un fichier Rust est corrigé, la version workspace devient `0.3.6-pre.5.fix.1`.
|
||||
|
||||
### `pre.006` — Conversion RAW v1 et provenance
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/023-V0_3_6_JOB_API_BACKFILL.md -->
|
||||
<!-- version: 8 -->
|
||||
<!-- version: 9 -->
|
||||
|
||||
# Validation v0.3.6 — Job API et premier backfill RAW
|
||||
|
||||
@@ -57,6 +57,9 @@ Aucune entrée absolue, traversée, avec séparateur inversé ou lien symbolique
|
||||
- [X] Gate opérateur de `pre.003-fix.001` : `cargo fmt`, audits Rust/Markdown, `cargo check`, Clippy, treize unitaires + quatorze canaries `ksp-job-api` et arbres Cargo normal/features verts.
|
||||
- [X] `pre.004` matérialise une voie observée additive de `getTransaction` sans modifier le client, les settings, le routage ni la politique de retry Transport ; gate opérateur vert.
|
||||
- [X] Le workspace comptait 14 crates avant `pre.005`; `ksp-job-backfill-lib` devient la 15e crate membre sans créer d'exécutable ni de Worker.
|
||||
- [X] Gate opérateur de `pre.005` : `cargo fmt`, audits Rust/Markdown et `cargo check --workspace` verts ; les 11 tests unitaires et 6 canaries `ksp-job-backfill-lib` sont verts.
|
||||
- [X] Le même gate révèle un unique échec Clippy `clippy::implicit_return` dans la closure privée qui dérive le curseur `before`; les arbres Cargo normal/features sont néanmoins exécutés et cohérents avec le graphe prévu.
|
||||
- [X] `pre.005-fix.001` ajoute uniquement le `return` explicite exigé dans cette closure et ne modifie ni valeur, ni pagination, ni identité réseau, ni dépendance, ni API publique.
|
||||
|
||||
## 4. Autorités et cohérence documentaire
|
||||
|
||||
@@ -97,7 +100,7 @@ Aucune entrée absolue, traversée, avec séparateur inversé ou lien symbolique
|
||||
|
||||
## 7. Admission et portées
|
||||
|
||||
`pre.005` matérialise les contrats et leurs tests, mais les critères comportementaux ci-dessous restent ouverts jusqu'au gate Cargo opérateur. L'identité candidate est auditée statiquement comme `(RawNetworkId, signature)` ; rôle HTTP, provider, endpoint et protocole ne participent ni à cette identité ni au fingerprint sémantique du scope.
|
||||
`pre.005` matérialise les contrats et leurs tests. Le gate opérateur confirme les 11 unitaires et 6 canaries, tandis que Clippy impose un fix syntaxique sans effet comportemental avant clôture complète. L'identité candidate est `(RawNetworkId, signature)` ; rôle HTTP, provider, endpoint et protocole ne participent ni à cette identité ni au fingerprint sémantique du scope.
|
||||
|
||||
- [ ] `LatestAddress`, `BeforeAddress`, `AfterAddress` et `ExplicitSignatures` couverts.
|
||||
- [ ] Adresse validée par le type Core existant.
|
||||
@@ -190,12 +193,12 @@ Aucune entrée absolue, traversée, avec séparateur inversé ou lien symbolique
|
||||
- [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.
|
||||
- [X] Versions/features auditées : aucune nouvelle version externe ; `sha2` et `tokio` réutilisent les entrées workspace existantes, Tokio étant dev-only en `pre.005`.
|
||||
- [X] `pre.005` matérialise 11 tests unitaires et 6 canaries d’intégration ; leur exécution Cargo reste ouverte jusqu’au gate opérateur.
|
||||
- [X] `pre.005` matérialise 11 tests unitaires et 6 canaries d’intégration ; le gate opérateur les exécute tous avec succès.
|
||||
- [ ] `cargo fmt --all -- --check` vert.
|
||||
- [X] `scripts/audit_rust_workspace_rules.py` vert sur `pre.005` dans l'environnement d'assemblage.
|
||||
- [X] `scripts/audit_markdown_tables.py` vert sur `pre.005` dans l'environnement d'assemblage (264 tables / 147 fichiers, delta inclus).
|
||||
- [X] `scripts/audit_rust_workspace_rules.py` vert sur `pre.005` dans l'environnement d'assemblage et dans le gate opérateur.
|
||||
- [X] `scripts/audit_markdown_tables.py` vert sur `pre.005` dans le gate opérateur (264 tables / 147 fichiers, delta inclus).
|
||||
- [X] Contrats de fichiers de `FILE_CONTRACTS.md` vérifiés sur chaque ajout de `pre.001`.
|
||||
- [ ] `cargo check --workspace` vert.
|
||||
- [X] `cargo check --workspace` vert sur `pre.005`; le fix ne change qu'une closure privée refusée par Clippy.
|
||||
- [ ] `cargo clippy --workspace --all-targets --all-features -- -D warnings` vert.
|
||||
- [ ] `cargo test --workspace --all-targets --all-features` vert.
|
||||
- [ ] `cargo tree -d` examiné et doublons justifiés.
|
||||
|
||||
Reference in New Issue
Block a user