205 lines
7.0 KiB
Markdown
205 lines
7.0 KiB
Markdown
<!-- file: deltas/0.3.6/pre.012.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta `0.3.6-pre.012` — réconciliation documentaire finale Job/Backfill
|
|
|
|
## 1. Base requise
|
|
|
|
Base directe attendue :
|
|
|
|
```text
|
|
0.3.6-pre.11
|
|
```
|
|
|
|
Le gate technique final de `pre.011` est fermé : format en mode check, audits Rust/Markdown, `cargo check --workspace`, Clippy workspace/all-targets/all-features avec `-D warnings` et tests workspace/all-targets/all-features passent. Le run opérateur agrège `1_404` tests passés, `0` échec et `15` tests explicitement ignorés/opt-in. Les graphes Cargo de `ksp-job-api` et `ksp-job-backfill-lib` ainsi que l'inventaire des doublons workspace ont été exécutés et revus.
|
|
|
|
## 2. Objectif
|
|
|
|
Réconcilier exclusivement la documentation durable avec la surface Job/Backfill effectivement validée, sans rouvrir le comportement Rust ni commencer la publication.
|
|
|
|
La tranche couvre :
|
|
|
|
```text
|
|
README racine
|
|
README/USAGE de ksp-job-api
|
|
README/USAGE de ksp-job-backfill-lib
|
|
index documentaires
|
|
architectures concernées par Jobs/Backfill
|
|
plan 027
|
|
validation 023
|
|
```
|
|
|
|
Elle ne modifie aucun `src/**`, test, manifeste de crate, dépendance, feature, Config, Store, Transport, `CHANGELOG.md`, `ROADMAP.md` ou prompt suivant.
|
|
|
|
## 3. Version
|
|
|
|
Conformément au workflow de prerelease non-fix :
|
|
|
|
```text
|
|
workspace.package.version = 0.3.6-pre.12
|
|
```
|
|
|
|
Aucune autre propriété Cargo n'est modifiée.
|
|
|
|
## 4. Contrat durable `ksp-job-api`
|
|
|
|
Le nouveau README décrit la crate comme API passive et runtime-neutral possédant :
|
|
|
|
```text
|
|
JobId / JobKindCode
|
|
JobState / JobCompletion / JobLifecycle
|
|
JobCancellationToken
|
|
JobNotificationSequence / JobNotification<S>
|
|
JobSnapshotSource / JobSnapshotFuture
|
|
```
|
|
|
|
Le nouveau USAGE fournit des exemples de consommation via la façade crate-root pour l'identité, le lifecycle, l'annulation et le contrat latest-value. Il ne contient aucune note de prerelease, preuve de gate ou historique de version.
|
|
|
|
La frontière de dépendance reste explicite : dépendance normale uniquement vers `ksp-core-lib`, aucune dépendance Transport/Store/Tokio ou domaine métier.
|
|
|
|
## 5. Contrat durable `ksp-job-backfill-lib`
|
|
|
|
Le README et le USAGE décrivent désormais la surface concrète du premier job historique RAW :
|
|
|
|
```text
|
|
4 scopes : LatestAddress / BeforeAddress / AfterAddress / ExplicitSignatures
|
|
identité logique = (RawNetworkId, Signature)
|
|
fingerprint sémantique indépendant du JobId et de la source Transport
|
|
hydratation getTransaction observée
|
|
RAW transaction format v1 déterministe
|
|
persistance atomique via ksp-store-lib en mode Normal
|
|
concurrence d'hydratation bornée
|
|
frontier contiguë
|
|
checkpoint caller-owned
|
|
runtime concret + handle + snapshots latest-value
|
|
annulation coopérative avec drainage des persistances Store déjà soumises
|
|
```
|
|
|
|
La documentation distingue explicitement un checkpoint retourné au caller d'une persistance crash-safe automatique : la crate ne possède pas de stockage durable de checkpoint.
|
|
|
|
Le Store reste consommé uniquement par `ksp-store-lib` avec `default-features = false`; aucun backend physique ou `ksp-store-api` n'est exposé aux consommateurs Backfill.
|
|
|
|
## 6. Architecture et inventaires
|
|
|
|
Les documents durables suivants sont réconciliés avec le vertical désormais prouvé :
|
|
|
|
```text
|
|
docs/architecture/002-LAYERS_AND_DEPENDENCIES.md
|
|
docs/architecture/003-COMPONENT_CONTRACTS.md
|
|
docs/architecture/004-COMPONENT_INVENTORY.md
|
|
docs/architecture/005-DEPENDENCY_GRAPH.md
|
|
docs/architecture/009-ACQUISITION_WORKERS_AND_JOBS.md
|
|
docs/architecture/010-APPS_SERVICES_SCENARIOS_AND_CONTROL.md
|
|
```
|
|
|
|
Ils enregistrent notamment :
|
|
|
|
- `ksp-job-api` comme API Job passive et runtime-neutral ;
|
|
- `ksp-job-backfill-lib` comme première implementation concrète bornée, distincte d'un worker live permanent ;
|
|
- les frontières Transport/Store/Job ;
|
|
- la responsabilité caller-owned du checkpoint ;
|
|
- les dépendances runtime privées du Backfill ;
|
|
- l'absence de justification actuelle pour une couche générique de contrôle supplémentaire.
|
|
|
|
`004-COMPONENT_INVENTORY.md` introduit le statut durable `Implémenté` pour une surface techniquement validée mais pas encore publiée stable et l'applique aux deux composants Job de `0.3.6`.
|
|
|
|
## 7. Index et README racine
|
|
|
|
Les index `docs/`, `docs/plans/` et `docs/validation/` référencent désormais les documents actuels jusqu'aux plans `027` et validations `023`.
|
|
|
|
Le README racine décrit la fondation opérationnelle actuelle Store/Job/Backfill sans journaliser les prereleases.
|
|
|
|
## 8. Hors scope préservé
|
|
|
|
```text
|
|
CHANGELOG.md
|
|
ROADMAP.md
|
|
prompt 0.3.7
|
|
src/**
|
|
tests/**
|
|
Cargo.toml de crates
|
|
dépendances/features
|
|
nouveau runtime
|
|
nouveau backend Store
|
|
application Backfill Desk
|
|
worker live
|
|
smoke live PostgreSQL
|
|
```
|
|
|
|
La préparation `CHANGELOG` / `ROADMAP` / prompt reste réservée à `pre.013`.
|
|
|
|
## 9. Fichiers ajoutés
|
|
|
|
```text
|
|
crates/ksp-job-api/README.md
|
|
crates/ksp-job-api/USAGE.md
|
|
crates/ksp-job-backfill-lib/README.md
|
|
crates/ksp-job-backfill-lib/USAGE.md
|
|
deltas/0.3.6/pre.012.md
|
|
```
|
|
|
|
## 10. Fichiers modifiés
|
|
|
|
```text
|
|
Cargo.toml
|
|
README.md
|
|
docs/000-README.md
|
|
docs/architecture/002-LAYERS_AND_DEPENDENCIES.md
|
|
docs/architecture/003-COMPONENT_CONTRACTS.md
|
|
docs/architecture/004-COMPONENT_INVENTORY.md
|
|
docs/architecture/005-DEPENDENCY_GRAPH.md
|
|
docs/architecture/009-ACQUISITION_WORKERS_AND_JOBS.md
|
|
docs/architecture/010-APPS_SERVICES_SCENARIOS_AND_CONTROL.md
|
|
docs/plans/000-README.md
|
|
docs/plans/027-V0_3_6_JOB_API_BACKFILL_PLAN.md
|
|
docs/validation/000-README.md
|
|
docs/validation/023-V0_3_6_JOB_API_BACKFILL.md
|
|
```
|
|
|
|
## 11. Fichiers supprimés
|
|
|
|
Aucun.
|
|
|
|
## 12. Validations de génération
|
|
|
|
Les contrôles statiques applicables sont rejoués sur l'overlay complet :
|
|
|
|
```text
|
|
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
|
|
python3 scripts/tests/test_audit_markdown_tables.py
|
|
contrôle différentiel exact contre pre.011
|
|
contrôle des versions d'en-tête
|
|
contrôle que src/tests/manifests de crates restent byte-identical
|
|
replay exact de l'archive sur pre.011
|
|
```
|
|
|
|
Cargo/rustc/rustfmt ne sont pas disponibles dans l'environnement de génération ; aucun nouveau résultat Cargo post-overlay n'est revendiqué ici. Les preuves techniques larges restent celles du gate `pre.011`.
|
|
|
|
## 13. Gate opérateur après application
|
|
|
|
```bash
|
|
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
|
|
cargo test -p ksp-job-api
|
|
cargo test -p ksp-job-backfill-lib
|
|
```
|
|
|
|
Aucun `cargo tree`, test workspace all-features ou smoke live n'est requis par cette tranche documentaire ; ces preuves sont déjà fermées par `pre.011` et aucun graphe de dépendance n'est modifié.
|
|
|
|
## 14. Questions ouvertes
|
|
|
|
Aucune question de design pour `0.3.6`.
|
|
|
|
## 15. Suite
|
|
|
|
Après gate documentaire vert :
|
|
|
|
```text
|
|
0.3.6-pre.013 — préparation publication minimale + prompt 0.3.7
|
|
0.3.6-rel.001 — stabilisation/tag v0.3.6
|
|
```
|