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.