Files
khadhroony-solana-project/deltas/0.3.14/pre.009-fix.002.md

141 lines
3.4 KiB
Markdown

<!-- file: deltas/0.3.14/pre.009-fix.002.md -->
<!-- version: 1 -->
# Delta `0.3.14-pre.009-fix.002` — garde Healthy explicite du snapshot
## Base requise
```text
0.3.14-pre.009-fix.001
workspace.package.version = 0.3.14-pre.9.fix.1
deltas/0.3.14/pre.009-fix.001.md présent
```
## Objectif
Corriger strictement le dernier canari `pre.009` en échec après `pre.009-fix.001`, sans modifier la politique fonctionnelle de health.
## Défaut observé
Le gate opérateur de `0.3.14-pre.009-fix.001` valide les audits, `cargo check`, Clippy et les `143` unit tests, puis échoue sur un seul canari :
```text
v0_3_14_pre_009_health_policy_is_present_future_coverage_gated_and_source_neutral
required pre.009 health projection guard missing: snapshot.source_active == snapshot.source_total
```
## Cause
`pre.009-fix.001` a conservé exactement l'invariant mais l'a exprimé via les variables locales :
```text
source_active == source_total
```
Le canari protège volontairement la forme explicite sur le snapshot :
```text
snapshot.source_active == snapshot.source_total
```
## Correction
La branche `Healthy` de `health_for_state` utilise directement la condition protégée :
```text
snapshot.source_active == snapshot.source_total
```
Les variables locales `source_active`, `source_total` et `source_failed` restent utilisées par la branche `Degraded`. La condition est strictement équivalente et n'introduit aucun changement runtime.
## Fichiers ajoutés
```text
deltas/0.3.14/pre.009-fix.002.md
```
## Fichiers modifiés
```text
Cargo.toml
crates/ksp-worker-raw-transaction-ingest-lib/src/snapshot.rs
```
## Fichiers supprimés
```text
aucun
```
## Version Cargo
Le correctif modifie du code Rust production ; conformément aux règles de versioning :
```text
header Cargo.toml : 580 -> 581
workspace.package.version : 0.3.14-pre.9.fix.1 -> 0.3.14-pre.9.fix.2
```
Version de fichier :
```text
src/snapshot.rs : 7 -> 8
```
## Frontières préservées
```text
aucune modification de TargetCoverage
aucune modification du gap ledger
aucune modification des coverage epochs
aucune modification du continuity frontier
aucune modification de la classification source-loss
aucun respawn Worker
aucun nouveau scheduler ou task
aucun changement Transport
aucune nouvelle requête HTTP
aucune nouvelle dépendance ou feature
aucun accès Config
aucun Job Backfill
aucun backend Store physique
aucune croissance de surface publique
```
## Validations exécutées
```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
vérification ciblée du canari snapshot.source_active == snapshot.source_total
contrôle du diff exact
contrôle d'inventaire ZIP
unzip -t
réapplication du delta sur la base pre.009-fix.001 et comparaison byte-à-byte
```
## Validations non exécutées
Le toolchain Rust/Cargo n'est pas disponible dans le sandbox de préparation. Le gate opérateur reste requis :
```text
cargo fmt --all
cargo fmt --all -- --check
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test -p ksp-worker-raw-transaction-ingest-lib --all-targets --all-features
```
## Décisions prises
```text
corriger la forme explicite attendue plutôt que relâcher le canari
ne pas ajouter de #[allow(...)]
ne pas modifier la sémantique health validée par les unit tests pre.009
```
## Questions ouvertes
```text
aucune pour ce correctif
```