# Delta `0.2.6-pre.002` — crate Tauri et shell Wallet Desk ## Base requise ```text 0.2.6-pre.001-fix.002 appliquée workspace.package.version = 0.2.6-pre.1 ``` Les validations opérateur de `pre.001` sont vertes : `cargo fmt --all`, audit structurel Python, `cargo check --workspace` et `cargo clippy --workspace --all-targets`. ## Type de livraison ```text ksp-general-0.2.6-pre.002.zip ``` Cette tranche est technique : création de crate, Rust/Tauri, frontend et configuration de build. Elle incrémente donc `workspace.package.version` vers `0.2.6-pre.2`. ## Objet Matérialiser la première application `ksp-app-wallet-desk` sans commencer les fonctionnalités Wallet métier prévues à partir de `pre.003`/`pre.004`. Le delta fournit : ```text crate Rust mixte lib + bin single-instance launcher normalisation CWD debug workspace bootstrap Config + Logging commun fallback Logging borné splash + main window bridge frontend -> Rust -> ksp-logging-lib DTO TS-RS foundation ports Vite/HMR 1432/1433 Bootstrap Font Awesome DataTables Bootstrap 5 + Select SimpleBar resize-observer-polyfill shell Dashboard/Wallets/Create-Import/Details/Security/Diagnostics DataTable Wallet réelle mais volontairement vide en pre.002 capabilities core:default + tracing:default CSP null comme Config Desk ``` ## Frontières conservées `pre.002` ne dépend pas encore de `ksp-wallet-lib` ni de `ksp-onchain-transport-lib`. La seule composition KSP active dans la nouvelle app est celle nécessaire au gabarit desktop : ```text ksp-app-wallet-desk -> ksp-config-lib -> ksp-core-lib -> ksp-logging-lib -> Tauri ``` Aucune logique `.kspwallet`, aucun inventory filesystem, aucun secret Wallet et aucun RPC ne sont simulés dans le frontend. ## Frontend et npm Le `package.json` reprend la baseline Config Desk : ```text @fltsci/tauri-plugin-tracing ^0.3 @fortawesome/fontawesome-free ^7.3 @tauri-apps/api ^2.11 bootstrap ^5.3 datatables.net-bs5 ^3.0 datatables.net-select-bs5 ^4.0 resize-observer-polyfill ^1.5 simplebar ^6.3 ``` Les outils restent dans `devDependencies`. Aucun script `check` standalone n'est créé. Les scripts `dev` et `build` existent uniquement parce que Tauri les appelle via `beforeDevCommand` et `beforeBuildCommand`. Lors de l'application de ce delta, l'installation initiale des packages se fait depuis la crate avec : ```bash cd crates/ksp-app-wallet-desk npm i -D cd ../.. ``` Le lockfile npm et `node_modules` restent non versionnés. ## Dépendances auditées Au `2026-08-20`, les versions actuelles vérifiées incluent : ```text @tauri-apps/api 2.11.1 @tauri-apps/cli 2.11.4 @fortawesome/fontawesome-free 7.3.1 datatables.net-bs5 3.0.1 datatables.net-select-bs5 4.0.0 resize-observer-polyfill 1.5.1 simplebar 6.3.3 ``` Les ranges du gabarit couvrent ces versions sans changement de génération. ## Shell et logging Le splash reprend les paramètres Config-owned existants : ```text KSP_DESK_SPLASH_MINIMUM_MS KSP_DESK_SPLASH_FADE_MS ``` Le frontend instrumente : ```text chargement main/splash navigation mise à jour DOM des vues initialisation DataTables clics d'actions shell IPC runtime status ordres/animations splash ``` Les targets frontend sont whitelisted (`frontend`, `main`, `splash`) avant réémission via `ksp-logging-lib`. ## Tests ajoutés ```text public API run() contrat Tauri ports/windows/beforeDev/beforeBuild/CSP baseline dependencies et absence de script npm check présence DataTables/Select/SimpleBar/ResizeObserver/Font Awesome capabilities initiales core + tracing seulement absence window.alert/confirm/prompt/localStorage/sessionStorage DTO CommandError sans context arbitraire whitelist frontend logging contrats splash ``` ## Fichiers principaux ajoutés ```text crates/ksp-app-wallet-desk/Cargo.toml crates/ksp-app-wallet-desk/build.rs crates/ksp-app-wallet-desk/capabilities/default.json crates/ksp-app-wallet-desk/package.json crates/ksp-app-wallet-desk/tauri.conf.json crates/ksp-app-wallet-desk/tsconfig.json crates/ksp-app-wallet-desk/vite.config.ts crates/ksp-app-wallet-desk/src/** crates/ksp-app-wallet-desk/frontend/** crates/ksp-app-wallet-desk/tests/** crates/ksp-app-wallet-desk/unit_tests/** ``` Les assets fonts/logo/splash/favicon sont repris du gabarit Config Desk. ## Fichiers modifiés hors crate ```text Cargo.toml ROADMAP.md docs/000-README.md docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md ``` ## Version technique ```text workspace.package.version = 0.2.6-pre.2 commit = v0.2.6-pre.002 ``` Aucun tag stable. ## Validation opérateur requise Après application : ```bash cd crates/ksp-app-wallet-desk npm i -D cd ../.. cargo fmt --all python3 scripts/audit_rust_workspace_rules.py cargo check --workspace cargo clippy --workspace --all-targets cargo test -p ksp-app-wallet-desk cargo tauri dev -c crates/ksp-app-wallet-desk/tauri.conf.json ``` Le parcours `cargo tauri dev` doit vérifier visuellement et dans les logs : splash, ouverture de la fenêtre principale, navigation des six vues, DataTable vide fonctionnelle, icônes Font Awesome, scrolling SimpleBar et bridge frontend Logging. `cargo tauri build -c crates/ksp-app-wallet-desk/tauri.conf.json` **n'est pas exécuté en `pre.002`** : il reste réservé à la toute dernière validation de la release conformément à `KSP-APP-034`. ## Suite `pre.003` ajoute `cfg.std.wallet`, le composite Wallet Desk, `wallets_directory` global, `wallets_subdirectory` par profil et la préparation/création du répertoire effectif.