# 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 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 ```