179 lines
5.4 KiB
Markdown
179 lines
5.4 KiB
Markdown
<!-- file: deltas/0.3.16/pre.001.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta `0.3.16-pre.001` — gate d'audit, architecture et sizing
|
|
|
|
## Base requise
|
|
|
|
```text
|
|
v0.3.15
|
|
commit 7328be6997399c513306f2f4c8cdf00bd8b22367
|
|
workspace.package.version = 0.3.15
|
|
```
|
|
|
|
Ne pas appliquer sur une `0.3.15-pre.*`.
|
|
|
|
## Objet
|
|
|
|
Exécuter le gate obligatoire de lecture/audit/brainstorming/sizing défini par `prompts/035-V0_3_16_START_PROMPT.md` avant toute migration ou implémentation lourde de la résilience RAW.
|
|
|
|
Cette tranche :
|
|
|
|
- réaudite la fermeture stable `0.3.15` ;
|
|
- réaudite les règles KSP applicables ;
|
|
- inventorie les contrats Store/Worker/Transport/Config/Store Desk actuels ;
|
|
- réaudite les sémantiques Solana RPC et PostgreSQL pertinentes ;
|
|
- compare plusieurs modèles physiques ;
|
|
- choisit le modèle conceptuel et les ownerships ;
|
|
- définit les invariants de concurrence/rétention/résolution ;
|
|
- recalibre le découpage des prereleases ;
|
|
- ne crée aucune migration SQL finale et ne modifie aucun Rust.
|
|
|
|
## Version workspace
|
|
|
|
`Cargo.toml` :
|
|
|
|
```text
|
|
header version : 637 -> 638
|
|
workspace : 0.3.15 -> 0.3.16-pre.1
|
|
```
|
|
|
|
Aucune autre modification sémantique du `Cargo.toml` racine n'est prévue.
|
|
|
|
## Fichiers ajoutés
|
|
|
|
```text
|
|
docs/plans/038-V0_3_16_RAW_RESILIENCE_CONFLICT_PLAN.md
|
|
docs/validation/033-V0_3_16_RAW_RESILIENCE_CONFLICT.md
|
|
deltas/0.3.16/pre.001.md
|
|
```
|
|
|
|
## Fichiers modifiés
|
|
|
|
```text
|
|
Cargo.toml
|
|
```
|
|
|
|
## Fichiers supprimés
|
|
|
|
```text
|
|
aucun
|
|
```
|
|
|
|
## Décisions principales
|
|
|
|
### Variantes
|
|
|
|
Modèle retenu : ledger de variantes V003 à identifiant surrogate, sélecteur canonique sidecar et conservation de `ksp_raw_transactions` comme projection canonique compatible V001.
|
|
|
|
`content_hash` est un préfiltre/intégrité ; il n'est pas une preuve d'égalité à lui seul lorsque les bytes sont disponibles.
|
|
|
|
### Observations
|
|
|
|
Toute observation créée sous V003 devra pointer vers la variante réellement reçue.
|
|
|
|
Les observations historiques dont le payload entrant n'a pas été conservé sont qualifiées legacy/unknown et ne sont jamais faussement rattachées à une variante native reconstruite.
|
|
|
|
### Comparaison
|
|
|
|
Relations internes retenues :
|
|
|
|
```text
|
|
Exact
|
|
CompatibleLessComplete
|
|
CompatibleMoreComplete
|
|
Conflict
|
|
Incomparable
|
|
```
|
|
|
|
Seule la troncature `logMessages` strictement prouvée autorise une dominance automatique en première implémentation.
|
|
|
|
### Rétention
|
|
|
|
Les variantes nécessaires au canonique courant, aux conflits ouverts, au rollback ou à la lignée synthétique peuvent être archivées mais restent protégées contre une purge irréversible tant que l'invariant dépend de leurs bytes.
|
|
|
|
### Store retry
|
|
|
|
Le backend Store classe les fautes `Transient/Terminal` de manière backend-neutral ; le Worker orchestre retry, backpressure, health et exhaustion.
|
|
|
|
### Transport reconnect
|
|
|
|
La reconnexion reste propriété de `ksp-onchain-transport-lib` et étend les mécanismes existants. Elle reste distincte du retry Store et ne prouve jamais la coverage.
|
|
|
|
### Store Desk
|
|
|
|
Inspection et résolution passent exclusivement par `ksp-store-lib`. Les actions futures sont typées et protégées par revision attendue.
|
|
|
|
## Découpage recalibré
|
|
|
|
La release est étendue jusqu'à une prévision souple `pre.022` avant `rel.001` afin de ne pas fusionner artificiellement migration, backend, convergence, rétention, Worker, Transport, Desk et gates de fermeture.
|
|
|
|
Le détail est dans le plan `038`.
|
|
|
|
## Hors périmètre
|
|
|
|
Inchangé par rapport au prompt 035 :
|
|
|
|
```text
|
|
Backfill multi-route/multi-stratégie
|
|
Backfill Desk multi-route
|
|
RAW -> STRUCTURAL
|
|
STRUCTURAL persistence
|
|
DECODED / DOMAIN
|
|
majority/provider authority
|
|
free JSON merge
|
|
Internet reconstruction as normal rollback
|
|
second acquisition pipeline
|
|
Worker <-> Backfill dependency
|
|
```
|
|
|
|
## Validations réellement exécutées lors de l'assemblage du delta
|
|
|
|
L'environnement d'assemblage possède uniquement les fichiers du delta, pas le checkout complet `v0.3.15`.
|
|
|
|
Sont exécutés sur l'archive produite :
|
|
|
|
```text
|
|
parse TOML du Cargo.toml delta
|
|
vérification workspace.package.version = 0.3.16-pre.1
|
|
vérification des headers file/version des quatre fichiers
|
|
vérification newline finale
|
|
vérification absence de lockfile/cache/secret dans le ZIP
|
|
vérification inventaire ZIP exact
|
|
```
|
|
|
|
Ne sont pas déclarés PASS ici :
|
|
|
|
```text
|
|
cargo fmt/check/clippy/test workspace
|
|
scripts/audit_rust_workspace_rules.py
|
|
scripts/audit_markdown_tables.py du dépôt complet
|
|
byte-compare de l'archive source v0.3.15
|
|
```
|
|
|
|
L'archive binaire source stable n'était pas matérialisable dans l'environnement d'assemblage. L'arbre/tag canonique et le commit de base ont été vérifiés via le dépôt public.
|
|
|
|
## Gate demandé après application
|
|
|
|
À exécuter par l'opérateur sur le checkout exact `v0.3.15` après application du delta :
|
|
|
|
```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
|
|
cargo check --workspace
|
|
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
|
```
|
|
|
|
Aucun test live/provider/PostgreSQL n'est requis par ce gate documentaire s'il n'est pas explicitement exécuté. Aucun `npm run build` n'est utilisé.
|
|
|
|
## Prochaine tranche
|
|
|
|
Après gate propre :
|
|
|
|
```text
|
|
0.3.16-pre.002
|
|
```
|
|
|
|
Objet prévu : contrats Store API backend-neutral pour variantes, relations de qualité, reason codes et outcomes de persistance, sans migration PostgreSQL anticipée.
|