5.0 KiB
Delta 0.3.14-pre.007-fix.001 — correction large_enum_variant
Base requise
0.3.14-pre.007
workspace.package.version = 0.3.14-pre.7
deltas/0.3.14/pre.007.md présent
Objectif
Corriger strictement la tranche pre.007 après le gate opérateur, sans modifier sa responsabilité fonctionnelle :
faire passer Clippy -D warnings sans allow/expect
conserver exactement la distinction Available/Missing de l'hydration known-reference
conserver le registre global d'hydration unique
ne pas avancer la réconciliation prévue en pre.008
Défaut observé
Le gate opérateur sur 0.3.14-pre.7 a produit :
cargo fmt --all : PASS
cargo fmt --all -- --check : PASS
audit Rust workspace rules : PASS
audit Markdown tables : PASS
cargo check --workspace : PASS
cargo clippy --workspace --all-targets --all-features -- -D warnings : FAIL
cargo test -p ksp-worker-raw-transaction-ingest-lib --all-targets --all-features : PASS
Clippy refuse RawTransactionIngestKnownReferenceHydrationResolution avec clippy::large_enum_variant :
Available(RawTransactionIngress) : au moins 488 octets
Missing { ... } : au moins 105 octets
Les 133 unit tests Worker ainsi que les suites d'intégration exécutées passent ; le défaut est donc un défaut de représentation mémoire détecté par le gate strict, pas un échec fonctionnel observé.
Cause
pre.007 transporte directement RawTransactionIngress dans la variante Available de l'enum privé de résolution known-reference.
RawTransactionIngress est nettement plus volumineux que la variante Missing, ce qui force chaque valeur de l'enum à avoir la taille de la variante la plus grande et déclenche le lint large_enum_variant sous -D warnings.
Correction
La variante disponible devient :
Available(Box<RawTransactionIngress>)
La valeur est boxée uniquement au moment où finalize_hydration fournit un ingress disponible, puis immédiatement déboxée au point de consommation avant admission dans le pipeline commun.
Le unit test pre.007 qui injecte directement cette résolution dans RawTransactionAdmission déboxe également la valeur.
Aucune variante, disposition, obligation, clé de coalescence, requête HTTP, provenance ou décision de runtime ne change.
Fichiers ajoutés
deltas/0.3.14/pre.007-fix.001.md
Fichiers modifiés
Cargo.toml
crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs
crates/ksp-worker-raw-transaction-ingest-lib/unit_tests/runtime_resources.rs
Fichiers supprimés
aucun
Version Cargo
Le fix modifie du code Rust ; conformément à VER-ID-007 et VER-ID-010 :
header Cargo.toml : 574 -> 575
workspace.package.version : 0.3.14-pre.7 -> 0.3.14-pre.7.fix.1
Versions de fichiers :
src/runtime_resources.rs : 33 -> 34
unit_tests/runtime_resources.rs : 27 -> 28
Frontières préservées
aucune nouvelle tâche
aucun nouveau scheduler
aucun nouveau registre d'hydration
aucun nouveau retry Worker
aucune nouvelle requête HTTP
aucune nouvelle dépendance
aucune nouvelle feature
aucun accès Config depuis Worker
aucun accès Job Backfill depuis Worker
aucun backend Store physique depuis Worker
aucune extension de surface publique
aucune intégration anticipée du gap ledger/supervisor de pre.008
Validations exécutées
Dans le sandbox de préparation :
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
scan des usages de RawTransactionIngestKnownReferenceHydrationResolution
comparaison exacte pre.007 -> pre.007-fix.001
contrôle du contenu de l'archive delta
unzip -t de l'archive delta
Validations non exécutées
Le sandbox de préparation ne fournit pas le toolchain Cargo/Rust. Les gates suivants restent à exécuter côté opérateur :
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
fix strict de pre.007
indirection uniquement sur la grosse variante Available
aucun allow/expect Clippy
aucune modification fonctionnelle de l'hydration known-reference
pre.008 reste la première tranche autorisée à intégrer la réconciliation au supervisor/gap ledger
Questions ouvertes
aucune pour ce fix
Gate opérateur après application
cargo fmt --all
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
cargo test -p ksp-worker-raw-transaction-ingest-lib --all-targets --all-features