v0.2.6-pre.002

This commit is contained in:
2026-08-20 16:51:08 +02:00
parent 927b9e4709
commit 1a57cdeef0
50 changed files with 2960 additions and 9 deletions

202
deltas/0.2.6/pre.002.md Normal file
View File

@@ -0,0 +1,202 @@
<!-- 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.