203 lines
5.4 KiB
Markdown
203 lines
5.4 KiB
Markdown
<!-- file: deltas/0.2.6/pre.002.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# 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.
|