diff --git a/Cargo.toml b/Cargo.toml index cb59462..9d15f7c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 425 +# version: 426 [workspace] resolver = "3" members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-lib", "crates/ksp-job-api", "crates/ksp-job-backfill-lib", "crates/ksp-logging-lib", "crates/ksp-offchain-transport-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-program-api", "crates/ksp-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib"] [workspace.package] -version = "0.3.7-pre.7" +version = "0.3.7-pre.7.fix.1" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/crates/ksp-app-backfill-desk/unit_tests/backfill_request.rs b/crates/ksp-app-backfill-desk/unit_tests/backfill_request.rs index 3c8c08f..b18ff41 100644 --- a/crates/ksp-app-backfill-desk/unit_tests/backfill_request.rs +++ b/crates/ksp-app-backfill-desk/unit_tests/backfill_request.rs @@ -1,5 +1,5 @@ // file: crates/ksp-app-backfill-desk/unit_tests/backfill_request.rs -// version: 1 +// version: 2 fn ready_options() -> crate::BackfillDeskOptionsDto { let limits = crate::backfill_request_limits(); @@ -115,8 +115,8 @@ fn before_and_after_scopes_require_an_exact_anchor_shape() { #[test] fn explicit_signatures_reject_address_context_and_deduplicate_in_job_contract() { - let job_id = job_id(); - let job_id = match job_id { + let request_job_id = job_id(); + let request_job_id = match request_job_id { std::option::Option::Some(value) => value, std::option::Option::None => return, }; @@ -124,7 +124,7 @@ fn explicit_signatures_reject_address_context_and_deduplicate_in_job_contract() input.address = std::option::Option::None; input.min_context_slot = std::option::Option::None; input.explicit_signatures = vec!["1".repeat(64), "1".repeat(64), "2".repeat(64)]; - let mapped = crate::map_backfill_request(input, &ready_options(), job_id); + let mapped = crate::map_backfill_request(input, &ready_options(), request_job_id); assert!(mapped.is_ok()); let mapped = match mapped { std::result::Result::Ok(value) => value, diff --git a/deltas/0.3.7/pre.007-fix.001.md b/deltas/0.3.7/pre.007-fix.001.md new file mode 100644 index 0000000..6a96d45 --- /dev/null +++ b/deltas/0.3.7/pre.007-fix.001.md @@ -0,0 +1,97 @@ + + + +# Delta `0.3.7-pre.007-fix.001` — Shadowing du helper JobId dans un test Backfill Desk + +## 1. Base requise + +```text +0.3.7-pre.007 +workspace.package.version = 0.3.7-pre.7 +``` + +## 2. Objectif + +Corriger l'unique blocage du gate opérateur `pre.007` : le test unitaire `explicit_signatures_reject_address_context_and_deduplicate_in_job_contract` masque la fonction helper `job_id()` par une variable locale du même nom. + +## 3. Cause + +Après construction d'un premier `JobId`, la variable locale `job_id` reste dans la portée du test. L'appel ultérieur `job_id()` est alors résolu sur cette valeur et Rust produit `E0618: expected function, found JobId`. + +## 4. Correction + +- renommer uniquement la variable locale concernée en `request_job_id` ; +- conserver le helper `job_id()` inchangé ; +- ne modifier aucun code de production, DTO, mapping `BackfillRequest`, frontend, runtime Transport/Store ou contrat Job. + +## 5. Version + +Le correctif modifie un fichier Rust compilé. Conformément à `VER-ID-007` et `VER-ID-010` : + +```text +workspace.package.version = 0.3.7-pre.7.fix.1 +label = 0.3.7-pre.007-fix.001 +``` + +## 6. Fichiers ajoutés + +```text +deltas/0.3.7/pre.007-fix.001.md +``` + +## 7. Fichiers modifiés + +```text +Cargo.toml +crates/ksp-app-backfill-desk/unit_tests/backfill_request.rs +docs/validation/024-V0_3_7_BACKFILL_DESK.md +``` + +## 8. Fichiers supprimés + +Aucun. + +## 9. Gate opérateur ayant déclenché le fix + +```text +cargo fmt --all exécuté +python3 scripts/audit_rust_workspace_rules.py PASS +python3 scripts/audit_markdown_tables.py ... deltas/0.3.7 PASS +cargo check --workspace PASS +cargo clippy --workspace --all-targets FAIL — E0618 dans unit_tests/backfill_request.rs +cargo test -p ksp-job-backfill-lib PASS — 47 unitaires + suites d'intégration +cargo test -p ksp-app-backfill-desk FAIL compile — même E0618 +``` + +## 10. Validations exécutées dans l'environnement d'assemblage + +```text +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.7 +``` + +Contrôles ciblés : + +- la variable locale ne masque plus `job_id()` ; +- aucun fichier fonctionnel de `pre.007` hors test/version/validation/delta n'est modifié ; +- le diff reste strictement limité au correctif de compilation du test. + +## 11. Validations non exécutées dans l'environnement d'assemblage + +`cargo` et `rustfmt` ne sont pas disponibles dans l'environnement d'assemblage. Gate opérateur : + +```text +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.7 +cargo check --workspace +cargo clippy --workspace --all-targets +cargo test -p ksp-job-backfill-lib +cargo test -p ksp-app-backfill-desk +cargo tree -p ksp-app-backfill-desk --edges normal +cargo tree -p ksp-app-backfill-desk -e features +``` + +## 12. Questions ouvertes + +Aucune pour ce correctif. diff --git a/docs/validation/024-V0_3_7_BACKFILL_DESK.md b/docs/validation/024-V0_3_7_BACKFILL_DESK.md index 2b4f0ec..6d261df 100644 --- a/docs/validation/024-V0_3_7_BACKFILL_DESK.md +++ b/docs/validation/024-V0_3_7_BACKFILL_DESK.md @@ -1,5 +1,5 @@ - + # Validation v0.3.7 — Backfill Desk @@ -328,3 +328,16 @@ La commande `backfill_validate_request` construit un JobId interne uniquement po - [X] capabilities Tauri inchangées : `core:default + tracing:default` ; - [ ] `cargo fmt/check/clippy/test` de `pre.007` à rejouer par l'opérateur ; `cargo`/`rustfmt` restent absents du sandbox. +## 16. Correctif `pre.007-fix.001` + +Le gate opérateur de `pre.007` confirme que les audits Rust/Markdown et `cargo check --workspace` sont propres et que `ksp-job-backfill-lib` passe intégralement ses suites. Le blocage est limité au test unitaire Backfill Desk `explicit_signatures_reject_address_context_and_deduplicate_in_job_contract` : une variable locale nommée `job_id` masquait le helper `job_id()`, rendant l'appel suivant illégal au compile-time. + +Le correctif renomme uniquement cette variable locale en `request_job_id`. Aucun code de production, DTO, mapping `BackfillRequest`, formulaire frontend, runtime Transport/Store ou contrat Job n'est modifié. + +### Gate du fix + +- [X] shadowing `job_id` supprimé dans le test concerné ; +- [X] aucun fichier fonctionnel de `pre.007` modifié ; +- [X] version Cargo synchronisée en `0.3.7-pre.7.fix.1` conformément à `VER-ID-007` et `VER-ID-010` ; +- [X] audits statiques Rust/Markdown rejoués dans l'environnement d'assemblage ; +- [ ] replay opérateur `cargo fmt/check/clippy/test` du fix à exécuter avant `pre.008`.