# Delta `0.3.6-pre.002-fix.001` — compilation des tests lifecycle ## Base requise ```text 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 ```text deltas/0.3.6/pre.002-fix.001.md ``` ## Fichiers modifiés ```text 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 : ```text 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 ```text 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é ```bash 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.