v0.3.8-pre.006-fix.001

This commit is contained in:
2026-09-03 16:28:13 +02:00
parent 3a38914be7
commit 8130e01b70
11 changed files with 139 additions and 29 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/029-V0_3_8_STORE_DESK_PLAN.md -->
<!-- version: 6 -->
<!-- version: 7 -->
# Plan v0.3.8 — Store Desk V1 RAW
@@ -578,6 +578,10 @@ Même vertical slice pour Account : filtre exact `pubkey`, range slot inclusif,
Créer `config/composite.ksp-app-store-desk.json`, enregistrer son `file_id` dans le registre partagé `ksp-config-lib`, propager la quinzième ressource Config aux cinq bundles Desk utilisant `prepare_packaged_runtime()`, puis brancher Store Desk sur `ksp-store-lib::Store` uniquement. Le composite sélectionne Logging `supertrace` et le profil Store homonyme `devnet`/`mainnet`/`testnet`. L'Overview et Diagnostics exposent uniquement backend logique, network, health, migration et compteurs de pool via un DTO IPC backend-neutral ; aucune URI, credential, SQL, handle physique ou byte RAW. La fermeture de la fenêtre principale déclenche une fermeture Store one-shot et bornée avant sortie Tauri. Les DataTables Transactions/Accounts restent locales et `serverSide:false` jusqu'à `pre.007`/`pre.008`.
#### pre.006-fix.001 — conformité crate-root des items visibles Store Desk
Le gate opérateur de `pre.006` est fonctionnellement vert mais signale un warning `unused_imports` sur le réexport crate-root de `StoreRuntime`. Le réexport n'est pas supprimé : conformément à `RUST-IMPORT-009`, `RUST-IMPORT-012` et `RUST-API-004`, les items `pub`/`pub(crate)` partagés restent réexportés via `lib.rs` et sont consommés par `crate::Item`, y compris depuis leur module propriétaire. Le correctif normalise les usages Store Desk concernés (`CommandErrorDto`, `FrontendLogPayloadDto`, `SplashSettings`, `SplashOrderDto`, `StoreStartup`, `StoreRuntime`) et rend privés les deux labels de fenêtre qui n'ont aucune consommation crate-wide au lieu de les promouvoir artificiellement. Aucun comportement Config/Store/Tauri/IPC/frontend n'est modifié.
### pre.007 — RawTransaction DataTables serverSide + détail
Brancher l'unique pager DataTables via `ajax` function/Tauri invoke, mapping offset/limit/totaux, filtres Store explicites, summary rows, retention badges, détail à la demande et instrumentation. Aucun second pager.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/025-V0_3_8_STORE_DESK.md -->
<!-- version: 12 -->
<!-- version: 13 -->
# Validation v0.3.8 — Store Desk V1 RAW
@@ -512,3 +512,29 @@ Le smoke `cargo tauri dev` de Store Desk démarre aussi correctement ; le journa
- [X] aucune migration, query métier d'inspection, détail RAW ou changement de capability Tauri n'est ajouté en `pre.006`.
Le gate Cargo opérateur de `pre.006` reste à exécuter après application du delta.
## 27. Gate opérateur `pre.006` et ouverture de `pre.006-fix.001`
Le gate opérateur de `0.3.8-pre.6` est fonctionnellement vert : audits Rust/Markdown, `cargo check --workspace`, `cargo clippy --workspace --all-targets`, `ksp-config-lib` (128 unitaires + intégrations), `ksp-store-lib`, `--no-default-features`, Store Desk et les quatre autres Desk apps passent. Le smoke `cargo tauri dev` confirme également le composite `mainnet`, Logging `supertrace`, l'ouverture/health Store, les traces frontend et la fermeture Store bornée.
Il subsiste toutefois un warning Rust récurrent :
```text
warning: unused import: `self::store_runtime::StoreRuntime`
--> crates/ksp-app-store-desk/src/lib.rs
```
Le réexport `StoreRuntime` est requis par la règle de façade crate-root et ne doit pas être supprimé. Le défaut est inverse : le module propriétaire utilise encore le nom nu `StoreRuntime` au lieu de `crate::StoreRuntime`. La revue de conformité étendue de Store Desk relève le même motif pour plusieurs items partagés déjà réexportés : `CommandErrorDto`, `FrontendLogPayloadDto`, `SplashSettings`, `SplashOrderDto`, `StoreStartup` et `StoreRuntime`.
`pre.006-fix.001` applique donc `RUST-IMPORT-009`, `RUST-IMPORT-012` et `RUST-API-004` dans la crate Store Desk :
- [X] tous les items `pub`/`pub(crate)` partagés concernés restent réexportés via `lib.rs` ;
- [X] leurs usages dans leur module propriétaire passent par `crate::Item` ;
- [X] `StoreRuntime` et `StoreStartup` utilisent `crate::StoreRuntime` / `crate::StoreStartup` jusque dans les `impl`, signatures et constructions ;
- [X] les champs DTO partagés utilisent `crate::CommandErrorDto` ;
- [X] le bridge frontend prend `crate::FrontendLogPayloadDto` ;
- [X] les `impl` splash utilisent `crate::SplashSettings` et `crate::SplashOrderDto` ;
- [X] `WINDOW_LABEL_MAIN` et `WINDOW_LABEL_SPLASH`, utilisés exclusivement dans leur module, redeviennent privés au lieu d'être `pub(crate)` sans façade crate-root ;
- [X] un canari `dependency_boundary` verrouille ces chemins et la distinction item partagé / helper local privé.
Aucun composite Config, Store runtime, query, SQL, DTO wire, commande Tauri, frontend, DataTables ou comportement de fermeture n'est modifié.