Files
khadhroony-solana-project/deltas/0.3.6/pre.005-fix.001.md

4.4 KiB

Delta 0.3.6-pre.005-fix.001 — return explicite du curseur Before

Base requise

0.3.6-pre.005 appliquée
workspace.package.version = 0.3.6-pre.5

Le gate opérateur fourni pour pre.005 confirme :

cargo fmt --all                                      PASS
python3 scripts/audit_rust_workspace_rules.py        PASS / clean
python3 scripts/audit_markdown_tables.py ...         PASS / clean (264 tables / 147 fichiers)
cargo check --workspace                              PASS
cargo clippy --workspace --all-targets               FAIL / clippy::implicit_return
cargo test -p ksp-job-backfill-lib                   PASS
  unitaires                                           11 PASS
  dependency_boundary                                  2 PASS
  public_api                                           2 PASS
  release_completeness                                 2 PASS
cargo tree -p ksp-job-backfill-lib --edges normal    exécuté
cargo tree -p ksp-job-backfill-lib -e features       exécuté

Objectif

Corriger exclusivement l'écart Clippy implicit_return dans la closure privée qui construit le curseur initial before du scope BeforeAddress, sans modifier la sémantique de découverte de pre.005.

Cause exacte

Dans crates/ksp-job-backfill-lib/src/discovery.rs, discover_older initialise le curseur optionnel à partir de l'ancre du scope :

crate::BackfillScopeKind::BeforeAddress => request.scope().anchor().map(|value| value.as_str().to_owned()),

Le workspace interdit les retours implicites via -D clippy::implicit-return. La closure de Option::map doit donc rendre son résultat avec un return explicite.

Le correctif est strictement syntaxique :

crate::BackfillScopeKind::BeforeAddress => request.scope().anchor().map(|value| return value.as_str().to_owned()),

La valeur obtenue, l'exclusivité de l'ancre, l'ordre de pagination, la déduplication, les bornes et tous les contrats publics restent identiques.

Version

Le fix modifie un fichier Rust. Conformément au workflow de version :

workspace.package.version = 0.3.6-pre.5.fix.1
delivery = 0.3.6-pre.005-fix.001
commit = v0.3.6-pre.005-fix.001

Aucun tag prerelease.

Fichiers ajoutés

deltas/0.3.6/pre.005-fix.001.md

Fichiers modifiés

Cargo.toml
crates/ksp-job-backfill-lib/src/discovery.rs
docs/plans/027-V0_3_6_JOB_API_BACKFILL_PLAN.md
docs/validation/023-V0_3_6_JOB_API_BACKFILL.md

Fichiers supprimés

Aucun.

Invariants préservés

  • identité transactionnelle/candidate toujours (RawNetworkId, signature) ;
  • provider, endpoint, protocole et rôle Transport restent hors identité ;
  • aucune modification des quatre scopes, de leurs bornes ou du fingerprint ;
  • aucune modification du chemin HttpTransportPool::get_signatures_for_address ;
  • aucune nouvelle dépendance, feature, crate, API publique ou test ;
  • aucune ouverture de RAW, persistance, checkpoint, runtime, README, USAGE, CHANGELOG, ROADMAP ou prompt.

Validations exécutées pour l'assemblage du fix

python3 scripts/audit_rust_workspace_rules.py
-> General Rust rule audit: clean
-> Rust export completeness audit: 0 candidate(s)
-> KSP workspace Rust rule audit: clean

python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas/0.3.6
-> Markdown table audit: clean (264 tables / 148 fichiers)

Le diff par rapport à pre.005 est limité aux quatre fichiers modifiés ci-dessus et au présent delta.

Validations non exécutées

L'environnement d'assemblage ne fournit ni cargo ni rustfmt. Le gate Rust du fix n'est donc pas annoncé comme vert localement.

Aucun smoke réseau ou PostgreSQL n'est pertinent pour ce correctif Clippy.

Gate opérateur demandé

cargo fmt --all
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/0.3.6
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-job-backfill-lib
cargo tree -p ksp-job-backfill-lib --edges normal
cargo tree -p ksp-job-backfill-lib -e features

Résultat attendu : les onze tests unitaires et six canaries d'intégration restent verts, Clippy devient vert et le graphe de dépendances reste inchangé.

Questions ouvertes

Aucune. pre.006 reste interdit tant que ce gate de fix n'est pas intégralement vert.