Files
khadhroony-solana-project/deltas/0.3.15/pre.018.md
2026-09-19 12:40:04 +02:00

218 lines
6.6 KiB
Markdown

<!-- file: deltas/0.3.15/pre.018.md -->
<!-- version: 1 -->
# Delta `0.3.15-pre.018` — préparation de publication
## 1. Base requise
```text
0.3.15-pre.017
workspace.package.version = 0.3.15-pre.17
```
Le gate opérateur communiqué le **19 septembre 2026 à 08:05** sur `pre.017` est propre :
```text
cargo fmt --all -- --check : PASS
General Rust rule audit : clean
Rust export completeness audit : 0 candidate(s)
KSP workspace Rust rule audit : clean
Markdown table audit : clean, 318 tables / 230 files
cargo check --workspace : PASS
```
Le gate `pre.016` avait déjà fermé la validation technique/live complète, les graphes Cargo et le build Tauri ; `pre.017` n'a modifié aucun runtime.
## 2. Objectif
`pre.018` est la dernière prerelease de préparation de publication de `0.3.15`.
Conformément à `VER-LIFECYCLE-003` et `PROMPT_STRUCTURE.md`, elle modifie fonctionnellement uniquement :
```text
prompts/035-V0_3_16_START_PROMPT.md
CHANGELOG.md
ROADMAP.md
```
Les seuls fichiers mécaniques supplémentaires sont :
```text
Cargo.toml racine
deltas/0.3.15/pre.018.md
```
Aucun README, USAGE, plan, validation, architecture, code, test, Config, schema, migration, dépendance, feature ou manifest de crate n'est rouvert.
## 3. Version workspace
La prerelease non-fix synchronise Cargo :
```text
0.3.15-pre.17
->
0.3.15-pre.18
```
Le header de `Cargo.toml` passe de `635` à `636`.
## 4. CHANGELOG
`CHANGELOG.md` reçoit l'entrée `0.3.15` synthétisant l'état réellement validé :
```text
Raw Transaction Ingest Desk multi-route capability-driven
1 Worker indépendant par route sélectionnée
Store partagé same-network
cinq familles live
Yellowstone Block gRPC trigger + HTTP getBlock
backpressure Yellowstone bornée sans overflow local terminal
Stop post-half-close coopératif
convergence étroite canonique complet + incoming logMessages tronqué compatible
gate technique final workspace/Clippy/tests/graphes/bundles Linux vert
live Mainnet Yellowstone + HTTP Block Polling ~19 min sans Faulted/overflow
handoff 0.3.16 variants/conflicts/retry/reconnect/Store Desk
```
La limitation de `0.3.15` reste explicite : aucune promotion automatique `TRUNCATED -> FULL`, aucune table durable de variantes/conflits, aucun historique de résolution général, aucun retry Store généralisé et aucune nouvelle politique configurable de reconnexion Transport ne sont revendiqués.
## 5. ROADMAP
L'entrée `0.3.15` passe de `[ ]` à `[X]` et décrit l'état réellement livré, y compris :
```text
Desk multi-route
Yellowstone Mainnet block trigger + getBlock
backpressure/shutdown corrigés
compatibilité logMessages tronqués strictement prouvée
live final Stopped/Healthy
```
Les entrées suivantes restent ouvertes et ordonnées :
```text
0.3.16 RAW resilience / conflict management
0.3.17 Backfill multi-route / multi-stratégie
0.3.18 Backfill Desk adapté
```
## 6. Prompt suivant
Le nouveau prompt :
```text
prompts/035-V0_3_16_START_PROMPT.md
```
ouvre `0.3.16` exclusivement depuis le futur stable/tag :
```text
v0.3.15
```
Il fixe notamment :
```text
divergence de données != panne d'acquisition
provider != autorité canonique
Exact / CompatibleLessComplete / CompatibleMoreComplete / Conflict
qualité comme ordre partiel, pas "longer wins"
variantes RAW durables
ancien canonique toujours récupérable
promotion atomique et historique réversible
conflit durable quarantiné non terminal
Worker Running + health Degraded sur conflit durable correctement persisté
acquisition_complete distinct de canonical_complete
Store retry/backpressure sans perte silencieuse
Transport reconnect configurable distinct du Store retry
Store Desk : conflicts/history/promote/keep/restore/reopen/merge assisté
fusion manuelle = nouvelle variante synthétique avec parents
aucun edge Job <-> Worker
0.3.17 et 0.3.18 restent hors périmètre
```
Le `pre.001` de `0.3.16` est obligatoirement un audit/sizing avant toute migration ou UI lourde. Il doit réauditer les sémantiques officielles `TransactionStatusMeta` et distinguer `absent`, `null`, `[]`, valeur présente, indisponibilité historique et contradiction avant de généraliser la complétude au-delà de `logMessages`.
## 7. Fichiers ajoutés
```text
prompts/035-V0_3_16_START_PROMPT.md
deltas/0.3.15/pre.018.md
```
## 8. Fichiers modifiés
```text
Cargo.toml
CHANGELOG.md
ROADMAP.md
```
## 9. Fichiers supprimés
```text
aucun
```
## 10. Surfaces explicitement inchangées
```text
README.md
RULES.md
docs/**
crates/**
config/**
prompts/001-* à prompts/034-*
deltas/0.3.15/pre.001.md à pre.017.md et leurs fixes
```
Aucun delta publié antérieur n'est modifié.
## 11. Validations exécutées localement
Sur l'état exact `pre.018` avant packaging :
```text
General Rust rule audit : clean
Rust export completeness audit : 0 candidate(s)
KSP workspace Rust rule audit : clean
Markdown table audit : clean, 318 tables / 232 files
prompt 035 : 18 sections numérotées présentes
scope pre.018 : exactement 2 fichiers ajoutés + 3 fichiers modifiés + 0 supprimé
Cargo.toml : hors header, seule workspace.package.version change
aucun README/USAGE/plan/validation/architecture/code/test/config/schema/dependency/feature modifié
```
La reconstruction byte-for-byte et `ZIP testzip` sont exécutés après ce contrôle et consignés dans la livraison.
Le toolchain Cargo/Rustfmt n'est pas disponible dans l'environnement d'assemblage. Aucun PASS Cargo post-bump n'est revendiqué localement ; le PASS Cargo d'entrée provient du gate opérateur `pre.017`.
## 12. Gate opérateur avant `rel.001`
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.15
cargo check --workspace
```
Aucun nouveau live ni build Tauri n'est requis par cette tranche de publication minimale. Un défaut découvert dans un couloir antérieur ne doit pas être absorbé dans `rel.001`.
## 13. Décisions prises
- `0.3.15` est techniquement et documentairement fermé avant publication ;
- `pre.018` ne rouvre aucun comportement ;
- `0.3.16` commence uniquement après `0.3.15-rel.001` validée et le tag stable `v0.3.15` ;
- la résilience `0.3.16` doit conserver les divergences au lieu d'arrêter l'acquisition lorsqu'elles sont durablement représentables ;
- une décision canonique repose sur la qualité prouvée, jamais sur le provider ;
- le Backfill multi-route reste `0.3.17` et le Backfill Desk adapté reste `0.3.18`.
## 14. Questions ouvertes
```text
aucune question bloquante pour la préparation de publication 0.3.15
les choix physiques exacts de schema/variants/conflicts appartiennent à 0.3.16-pre.001
```