3.4 KiB
Delta 0.3.14-pre.009-fix.002 — garde Healthy explicite du snapshot
Base requise
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 :
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 :
source_active == source_total
Le canari protège volontairement la forme explicite sur le snapshot :
snapshot.source_active == snapshot.source_total
Correction
La branche Healthy de health_for_state utilise directement la condition protégée :
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
deltas/0.3.14/pre.009-fix.002.md
Fichiers modifiés
Cargo.toml
crates/ksp-worker-raw-transaction-ingest-lib/src/snapshot.rs
Fichiers supprimés
aucun
Version Cargo
Le correctif modifie du code Rust production ; conformément aux règles de versioning :
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 :
src/snapshot.rs : 7 -> 8
Frontières préservées
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
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 :
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
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
aucune pour ce correctif