diff --git a/Cargo.toml b/Cargo.toml index c0180ab..0d2cac8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 436 +# version: 437 [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.12" +version = "0.3.7-pre.12.fix.1" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/crates/ksp-app-backfill-desk/src/dto_common.rs b/crates/ksp-app-backfill-desk/src/dto_common.rs index e3a9a90..0781e47 100644 --- a/crates/ksp-app-backfill-desk/src/dto_common.rs +++ b/crates/ksp-app-backfill-desk/src/dto_common.rs @@ -1,5 +1,5 @@ // file: crates/ksp-app-backfill-desk/src/dto_common.rs -// version: 6 +// version: 7 //! Common Tauri DTOs shared by the Backfill Desk shell. @@ -44,11 +44,11 @@ pub(crate) struct ProgramIdAutocompleteOptionDto { /// Projects the canonical KSP Program ID registry to the safe autocomplete dataset. #[must_use] -pub(crate) fn program_id_autocomplete_options() -> std::vec::Vec { +pub(crate) fn program_id_autocomplete_options() -> std::vec::Vec { let entries = ksp_core_lib::entries(); let mut options = std::vec::Vec::with_capacity(entries.len()); for entry in entries { - options.push(ProgramIdAutocompleteOptionDto { + options.push(crate::ProgramIdAutocompleteOptionDto { code: entry.code().to_owned(), domain: entry.domain().to_owned(), family: entry.family().to_owned(), @@ -76,7 +76,7 @@ pub(crate) struct BackfillDeskOptionsDto { /// Whether the Transport and Store readiness gates jointly permit later Backfill composition. pub(crate) composition_ready: bool, /// Canonical KSP Program IDs exposed as a frontend autocomplete dataset; never an allow-list. - pub(crate) program_id_options: std::vec::Vec, + pub(crate) program_id_options: std::vec::Vec, /// Distinct enabled HTTP cluster labels selected by the active Transport profile. pub(crate) configured_networks: std::vec::Vec, /// Whether the selected Store network exactly matches the one coherent Transport network. diff --git a/deltas/0.3.7/pre.012-fix.001.md b/deltas/0.3.7/pre.012-fix.001.md new file mode 100644 index 0000000..6987091 --- /dev/null +++ b/deltas/0.3.7/pre.012-fix.001.md @@ -0,0 +1,76 @@ + + + +# Delta `0.3.7-pre.012-fix.001` — accès crate-root du DTO autocomplete + +## 1. Base requise + +```text +0.3.7-pre.012 +workspace.package.version = 0.3.7-pre.12 +``` + +## 2. Objectif + +Corriger uniquement le warning `unused_imports` révélé par le gate `pre.012`, en appliquant la discipline crate-root KSP au nouveau `ProgramIdAutocompleteOptionDto` sans modifier le comportement de l'autocomplete. + +## 3. Cause + +`ProgramIdAutocompleteOptionDto` est `pub(crate)` et réexporté au crate-root, mais les usages introduits dans son module de déclaration employaient le nom nu `ProgramIdAutocompleteOptionDto`. Le réexport apparaissait donc inutilisé à la compilation, et ces usages violaient `RUST-IMPORT-009` / `RUST-API-004` : un item partagé `pub` ou `pub(crate)` doit être consommé via `crate::Item`, y compris depuis son module propriétaire. + +## 4. Correction + +Le réexport suivant reste inchangé dans `src/lib.rs` : + +```text +pub(crate) use self::dto_common::ProgramIdAutocompleteOptionDto; +``` + +Dans `src/dto_common.rs`, les trois usages crate-wide deviennent : + +```text +std::vec::Vec +crate::ProgramIdAutocompleteOptionDto { ... } +std::vec::Vec +``` + +Aucune visibilité n'est modifiée. Le DTO reste `pub(crate)` parce qu'il appartient au contrat crate-wide et aux options exposées par la Desk. + +## 5. Version + +```text +workspace.package.version = 0.3.7-pre.12.fix.1 +label = 0.3.7-pre.012-fix.001 +``` + +## 6. Fichiers modifiés + +```text +Cargo.toml +crates/ksp-app-backfill-desk/src/dto_common.rs +docs/validation/024-V0_3_7_BACKFILL_DESK.md +``` + +## 7. Fichier ajouté + +```text +deltas/0.3.7/pre.012-fix.001.md +``` + +## 8. Fichiers supprimés + +Aucun. + +## 9. Gate après application + +```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 +``` + +Aucun `cargo tree` requis : aucune dépendance ni feature Cargo n'est modifiée. diff --git a/docs/validation/024-V0_3_7_BACKFILL_DESK.md b/docs/validation/024-V0_3_7_BACKFILL_DESK.md index b0758d5..a588e2e 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 @@ -540,3 +540,20 @@ Le smoke Tauri `pre.011` confirme également le Resume réel : après un timeout - [X] Le monitoring affiche un résumé terminal explicite et les erreurs Cancel/Resume sont rendues via la projection d'erreur sûre. - [X] Aucune dépendance/feature Cargo, aucun Store/Transport/Job runtime et aucun `std.store.json` modifié. - [ ] Gate opérateur `cargo fmt` + audits + check/clippy/tests Backfill à rejouer avant `pre.013`. + +## Correctif `pre.012-fix.001` — accès crate-root du DTO autocomplete + +Le gate opérateur de `pre.012` est fonctionnel mais signale un warning `unused_imports` sur le réexport crate-root de `ProgramIdAutocompleteOptionDto`. Le réexport n'est pas superflu : `ProgramIdAutocompleteOptionDto` est `pub(crate)` et partagé dans la crate. Conformément à `RUST-IMPORT-009`, `RUST-IMPORT-012` et `RUST-API-004`, il doit rester réexporté par `lib.rs` et être consommé via `crate::ProgramIdAutocompleteOptionDto`, y compris depuis `dto_common.rs`, son module de déclaration. + +Le correctif conserve donc le réexport et normalise uniquement les trois usages introduits en `pre.012` : type de retour de `program_id_autocomplete_options`, construction du DTO et type du champ `BackfillDeskOptionsDto.program_id_options`. Aucun contrat IPC, dataset, frontend, Store, Transport, Job, dépendance ou feature ne change. + +### Gate du fix + +- [X] réexport `pub(crate) use self::dto_common::ProgramIdAutocompleteOptionDto;` conservé au crate-root ; +- [X] usages intra-module du DTO partagés via `crate::ProgramIdAutocompleteOptionDto` ; +- [X] aucun élargissement/rétrécissement de visibilité ; +- [X] aucune modification du contrat TS-RS ou du dataset Program ID ; +- [X] version Cargo synchronisée en `0.3.7-pre.12.fix.1` ; +- [X] audits statiques Rust/Markdown rejoués dans l'environnement d'assemblage ; +- [ ] replay opérateur `cargo fmt/check/clippy/test` du fix à exécuter ; aucun `cargo tree` requis car dépendances/features inchangées. +