Files
khadhroony-solana-project/deltas/0.3.6/pre.012.md
2026-09-01 17:42:24 +02:00

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