Files
khadhroony-solana-project/deltas/0.3.13/pre.003-fix.001.md

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.003 n'est introduit.

Questions ouvertes

aucune