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

3.4 KiB

Delta 0.3.6-pre.002-fix.001 — compilation des tests lifecycle

Base requise

0.3.6-pre.002
workspace.package.version = 0.3.6-pre.2
SHA-256 archive = d49f551ce2c04aeb3b545bfc11f0d66852ca10fd75b65c8614a8b99a3eb6cb0f

Objectif

Corriger strictement l'erreur de compilation découverte par le gate opérateur dans unit_tests/lifecycle.rs, sans modifier l'API publique, le lifecycle, le token d'annulation ni le périmètre fonctionnel de pre.002.

Défaut observé

Le premier test créait une variable locale nommée lifecycle, puis tentait plus bas de rappeler le helper homonyme lifecycle(). Le binding local masquait alors la fonction et provoquait E0618; l'inférence qui suivait produisait également E0282.

cargo check --workspace était vert parce qu'il ne compilait pas les modules #[cfg(test)]. Clippy --all-targets et cargo test -p ksp-job-api ont correctement exposé le défaut.

Correction

Le helper privé de fixture devient new_lifecycle() et ses six appels sont synchronisés. Le nom distinct ne peut plus être masqué par les variables lifecycle représentant les instances testées. Les dix tests unitaires et onze canaries d'intégration restent inchangés en nombre et en intention.

Fichiers ajoutés

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

Fichiers modifiés

Cargo.toml
crates/ksp-job-api/unit_tests/lifecycle.rs
docs/plans/027-V0_3_6_JOB_API_BACKFILL_PLAN.md
docs/validation/023-V0_3_6_JOB_API_BACKFILL.md

Mécanique Cargo :

header version: 395 -> 396
workspace.package.version: 0.3.6-pre.2 -> 0.3.6-pre.2.fix.1

Le bump est obligatoire car le correctif modifie un fichier Rust compilé par les tests.

Fichiers supprimés

Aucun.

Décisions prises

  • conserver la fixture commune et lui donner un nom non ambigu ;
  • ne pas réécrire les tests ni élargir leur périmètre dans ce fix ;
  • conserver exactement la surface publique et la matrice de transitions de pre.002 ;
  • ne pas ouvrir les notifications de pre.003 avant un gate opérateur vert.

Validations exécutées

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 / 143 fichiers)

python3 -m unittest scripts/tests/test_audit_markdown_tables.py
-> 5 tests / OK

La reconstruction de la base et la comparaison différentielle confirment que seuls les cinq fichiers listés appartiennent au correctif.

Validations non exécutées

L'environnement d'assemblage ne fournit ni cargo ni rustfmt. Les commandes Rust restent à rejouer par l'opérateur ; elles ne sont pas annoncées comme réussies dans ce delta.

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-api
cargo tree -p ksp-job-api --edges normal
cargo tree -p ksp-job-api -e features

Questions ouvertes

Aucune question ne bloque pre.003 après un gate opérateur vert.