v0.2.6-pre.001-fix.002

This commit is contained in:
2026-08-20 15:23:32 +02:00
parent b7d9e7fd1f
commit 927b9e4709
3 changed files with 195 additions and 20 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md -->
<!-- version: 3 -->
<!-- version: 4 -->
# Plan `0.2.6` — Wallet Desk
@@ -19,7 +19,7 @@ La base auditée est la release stable fournie `v0.2.5`, avec `workspace.package
`0.2.6-pre.001` reste une tranche d'audit, conception, inventaire et sizing. Elle ne crée pas encore la crate Tauri ni les fichiers Config runtime. Son rôle est de produire une trajectoire suffisamment détaillée pour que les prereleases suivantes implémentent des objectifs positifs et mesurables sans renégocier les frontières au fil des corrections.
Les validations opérateur du `2026-08-20` ont ensuite confirmé la base `pre.001` : `cargo fmt --all`, `python3 scripts/audit_rust_workspace_rules.py`, `cargo check --workspace` et `cargo clippy --workspace --all-targets` sont verts, sans warning signalé. Le présent plan intègre les corrections documentaires de `pre.001-fix.001` sans modifier la version Cargo, car aucun fichier code/build/runtime/configuration exécutable n'est touché.
Les validations opérateur du `2026-08-20` ont ensuite confirmé la base `pre.001` : `cargo fmt --all`, `python3 scripts/audit_rust_workspace_rules.py`, `cargo check --workspace` et `cargo clippy --workspace --all-targets` sont verts, sans warning signalé. Le présent plan intègre les corrections documentaires de `pre.001-fix.001` puis `pre.001-fix.002` sans modifier la version Cargo, car aucun fichier code/build/runtime/configuration exécutable n'est touché. `pre.001-fix.002` aligne en particulier le workflow frontend sur la règle KSP : npm direct sert uniquement à installer ou mettre à jour les dépendances ; les cycles dev/build passent exclusivement par Cargo/Tauri.
## 2. Sources relues et hiérarchie appliquée
@@ -95,8 +95,9 @@ splash + main window
TS-RS à la frontière DTO applicative
capabilities Tauri explicites
bridge frontend -> Rust -> ksp-logging-lib
npm run check = tsc --noEmit
beforeBuildCommand = build frontend de production par Tauri
npm direct uniquement pour installer/mettre à jour les dépendances de package.json
beforeDevCommand = frontend dev déclenché automatiquement par cargo tauri dev
beforeBuildCommand = build frontend de production déclenché automatiquement par cargo tauri build
```
`SimpleBar` et `resize-observer-polyfill` sont conservés comme éléments du gabarit desktop, même si Wallet Desk ne les consomme pas tous dès le premier écran métier. Ils évitent de recréer un shell divergent du template éprouvé.
@@ -1083,15 +1084,25 @@ Transport error sûr
credential absent erreur/log
```
## 20. Tests frontend
## 20. Validation frontend
Baseline :
Aucun script npm applicatif n'est lancé directement pour valider Wallet Desk. npm est utilisé directement uniquement lors de l'installation initiale ou de la mise à jour des dépendances déclarées dans `package.json` :
```bash
npm run check --prefix crates/ksp-app-wallet-desk
cd crates/ksp-app-wallet-desk
npm i -D
# ou, lors d'une mise à jour des packages déjà déclarés :
npm update
cd ../..
```
Tests ciblés à forte valeur :
Le cycle normal de développement/validation frontend passe par Tauri depuis la racine du workspace :
```bash
cargo tauri dev -c crates/ksp-app-wallet-desk/tauri.conf.json
```
Tauri déclenche alors automatiquement le script configuré dans `beforeDevCommand`. Les contrôles fonctionnels frontend à forte valeur portent notamment sur :
```text
DataTable init/refresh/destroy sans duplication
@@ -1105,7 +1116,7 @@ modal requis avant opérations privilégiées
SimpleBar/resize lifecycle sans fuite d'event listener
```
`npm run check` ne construit pas le bundle de production.
Le build frontend de production n'est jamais lancé directement avec npm. Il est déclenché par Tauri via `beforeBuildCommand` uniquement lors du `cargo tauri build` final.
## 21. Smoke Devnet opt-in
@@ -1221,7 +1232,8 @@ SimpleBar + resize-observer-polyfill
TS-RS foundation
logging frontend/Rust
capabilities initiales
npm run check
installation npm uniquement si package.json vient d'être créé/modifié
parcours cargo tauri dev via beforeDevCommand
```
Le shell peut afficher des données mockées/runtime minimales, mais doit déjà valider navigation, scroll, layout et logging.
@@ -1417,7 +1429,7 @@ dépendances et versions finales réauditées
commandes smoke documentées
prompt de démarrage 0.2.7 préparé
validation Rust workspace finale
npm run check final
parcours fonctionnel cargo tauri dev final
cargo tauri build en toute dernière opération
```
@@ -1451,12 +1463,24 @@ Tests ciblés pendant le développement. Aux checkpoints globaux :
cargo test --workspace
```
Frontend :
Lors de la création initiale de `package.json` ou d'une modification de ses dépendances, npm est utilisé directement uniquement pour installer ou mettre à jour les packages :
```bash
npm run check --prefix crates/ksp-app-wallet-desk
cd crates/ksp-app-wallet-desk
npm i -D
# ou, pour mettre à jour les packages déclarés :
npm update
cd ../..
```
Le parcours normal de développement et de validation fonctionnelle frontend passe par :
```bash
cargo tauri dev -c crates/ksp-app-wallet-desk/tauri.conf.json
```
Tauri exécute automatiquement le `beforeDevCommand` configuré. Aucun script npm applicatif de contrôle, développement ou build n'est lancé directement par l'opérateur.
Candidate finale :
```bash
@@ -1466,11 +1490,11 @@ cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-app-wallet-desk
cargo test --workspace
npm run check --prefix crates/ksp-app-wallet-desk
cargo tauri dev -c crates/ksp-app-wallet-desk/tauri.conf.json
cargo tauri build -c crates/ksp-app-wallet-desk/tauri.conf.json
```
Le build Tauri reste la dernière opération. Le smoke Devnet opt-in est exécuté séparément.
`cargo tauri build -c crates/ksp-app-wallet-desk/tauri.conf.json` reste **la toute dernière opération** de validation. Il déclenche lui-même le build frontend via `beforeBuildCommand`. Le smoke Devnet opt-in est exécuté séparément avant cette dernière opération lorsqu'il appartient au checkpoint final.
## 26. Hors périmètre confirmé
@@ -1520,19 +1544,20 @@ La release stable est clôturable si :
- aucun secret Wallet n'entre dans les documents JSON Config, les logs ou le storage frontend ;
- les secrets Wallet en process env/`.env` restent possédés et résolus par Config ;
- capabilities Tauri sont auditées et la CSP n'est modifiée que si un besoin concret le justifie ;
- tests Rust/frontend et smoke retenu sont documentés/validés ;
- tests Rust, parcours frontend via `cargo tauri dev` et smoke retenu sont documentés/validés ;
- README/USAGE, validation, roadmap et prompt `0.2.7` sont synchronisés ;
- le build Tauri final est vert et exécuté en dernière opération.
## 29. Suite après `pre.001-fix.001`
## 29. Suite après `pre.001-fix.002`
Les validations opérateur de `pre.001` sont vertes. `pre.001-fix.001` est un correctif documentaire : il ne modifie pas `workspace.package.version`, qui reste `0.2.6-pre.1`.
Les validations opérateur de `pre.001` sont vertes. `pre.001-fix.001` puis `pre.001-fix.002` sont des correctifs documentaires : ils ne modifient pas `workspace.package.version`, qui reste `0.2.6-pre.1`. `pre.001-fix.002` corrige la règle et le plan pour supprimer toute validation frontend standalone par script npm et réserver les commandes npm directes à l'installation/mise à jour des dépendances.
La séquence Git attendue conserve l'historique réel :
```text
v0.2.6-pre.001
v0.2.6-pre.001-fix.001
v0.2.6-pre.001-fix.002
```
Après application/commit du fix documentaire, `pre.002` démarre la crate Tauri et le shell complet du gabarit, avec Bootstrap, Font Awesome, DataTables/Select, SimpleBar, resize-observer-polyfill, splash/main et logging bridge.