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

100 lines
3.4 KiB
Markdown

<!-- file: deltas/0.3.6/pre.002-fix.001.md -->
<!-- version: 1 -->
# 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.