6.4 KiB
Delta 0.3.13-pre.003-fix.001 — correction des tests Worker après généralisation source-neutral
Base requise
delivery précédente : 0.3.13-pre.003
Cargo base : 0.3.13-pre.3
delta base : deltas/0.3.13/pre.003.md
archive delta base : ksp-general-0.3.13-pre.003.zip
SHA-256 delta base : 669b875410799b8a2c5806cddad81740bdd4dd78e36c68f6b268a6b0257f18f4
Le gate opérateur de pre.003 confirme que le formatage, les audits et cargo check --workspace sont propres, mais que les cibles de tests Worker ne compilent plus après la généralisation source-neutral de runtime_resources. cargo clippy --workspace --all-targets --all-features -- -D warnings et cargo test -p ksp-worker-raw-transaction-ingest-lib échouent sur sept diagnostics provenant du même fichier de tests.
Objectif
Corriger uniquement les tests devenus obsolètes par rapport au contrat production de pre.003, sans rouvrir l'API ni modifier la logique runtime :
aucun code production modifié
aucune API publique ajoutée ou supprimée
aucune dépendance modifiée
aucune logique réseau/hydration/admission modifiée
aucun avancement vers blockSubscribe pre.004
Version
livraison : 0.3.13-pre.003-fix.001
workspace.package.version : 0.3.13-pre.3.fix.1
archive : ksp-general-0.3.13-pre.003-fix.001.zip
Conformément aux règles de versionnement KSP, le fix modifie un fichier .rs; le workspace.package.version est donc synchronisé avec l'identifiant SemVer technique du correctif.
Diagnostic opérateur
Les sept diagnostics se répartissent en trois causes.
Ancien extracteur mono-Yellowstone supprimé
Le test v0_3_13_pre_002_multi_source_activation_fails_closed_until_supervisor_tranche appelait encore :
RawTransactionIngestRuntimeResources::into_yellowstone_source
Cette méthode a été supprimée en pre.003 lorsque l'aggregate a été rendu source-neutral. La barrière correspondante est désormais :
RawTransactionIngestRuntimeResources::validate_single_source_activation
Le test utilise donc le contrat actuel et continue de vérifier exactement l'erreur :
runtime_resources.multi_source_activation_pending
Les deux erreurs d'inférence E0282 étaient secondaires à l'absence de l'ancienne méthode et disparaissent avec cette correction.
Contexte d'hydration manquant
Deux tests appelaient encore l'ancienne signature de :
build_hydration_provenance
pre.003 a ajouté en premier argument le contexte source-neutral :
&RawTransactionIngestHydrationContext
Les tests construisent maintenant ce contexte via :
source.hydration_context()
puis le transmettent à build_hydration_provenance. Aucun contrat production n'est élargi pour les tests.
Accesseurs volontairement absents de RawTransactionMaterial
Le nouveau test Standard Logs tentait d'appeler :
ingress.material.slot()
ingress.material.signature()
RawTransactionMaterial garde ces champs privés et ne fournit volontairement pas ces accesseurs. Le test ne doit pas provoquer l'ajout d'une API uniquement pour introspection.
Les deux assertions sont donc supprimées à ce niveau. La même preuve reste effectuée après passage dans l'admission centrale et canonicalisation, via :
acquisition.transaction().slot() == 42
acquisition.transaction().reference().signature().as_bytes() == [0; 64]
Cela vérifie en plus le chemin réellement consommé par le Worker.
Fichiers modifiés
Cargo.toml
crates/ksp-worker-raw-transaction-ingest-lib/unit_tests/runtime_resources.rs
Fichiers ajoutés
deltas/0.3.13/pre.003-fix.001.md
Fichiers supprimés
aucun
Versions de fichiers incrémentées
Cargo.toml : 542 -> 543
worker unit_tests/runtime_resources.rs : 13 -> 14
Validation opérateur de la base pre.003
Le log fourni confirme avant fix :
cargo fmt --all : exécuté
cargo fmt --all -- --check : PASS / silencieux
General Rust rule audit : clean
Rust export completeness audit : 0 candidate(s)
KSP workspace Rust rule audit : clean
Markdown table audit : clean (340 tables, 831 files)
cargo check --workspace : PASS
cargo clippy --workspace --all-targets --all-features -- -D warnings : FAIL sur compilation des tests Worker
cargo test -p ksp-worker-raw-transaction-ingest-lib : FAIL sur les mêmes 7 diagnostics
Diagnostics observés :
E0599 : into_yellowstone_source supprimé
E0282 : 2 erreurs d'inférence secondaires
E0061 : 2 appels build_hydration_provenance sans hydration context
E0599 : RawTransactionMaterial::slot absent
E0599 : RawTransactionMaterial::signature absent
Validations dans l'environnement d'assemblage
Le toolchain Rust n'est pas disponible dans l'environnement d'assemblage. Les validations statiques KSP exécutables localement et le contrôle exhaustif du delta sont réalisés avant packaging.
Les commandes Cargo ne sont pas déclarées PASS localement :
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
Résultats statiques finaux de l'assemblage
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
KSP workspace Rust rule audit: clean
Markdown table audit: clean (340 tables, 832 files)
Normative rule definitions: 489
Unique normative IDs: 489
Duplicates: 0
Gate opérateur avant pre.004
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
pre.004 ne doit démarrer qu'après retour vert de ce gate.
Décisions
- Le fix conserve l'encapsulation de
RawTransactionMaterial; aucun getter n'est ajouté pour satisfaire un test. - Le fix conserve l'aggregate source-neutral introduit en
pre.003; l'ancien extracteur mono-Yellowstone n'est pas restauré. - Le fix conserve le contexte d'hydration source-neutral et adapte les tests à sa signature actuelle.
- Aucun changement fonctionnel de
pre.003n'est introduit.
Questions ouvertes
aucune