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.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/rules/RULES_KSP.md -->
<!-- version: 35 -->
<!-- version: 36 -->
# Règles spécifiques à KSP
@@ -232,7 +232,7 @@
- **KSP-APP-031** — Le niveau de logging spécifique à une application/crate peut être élevé temporairement à `debug` ou `trace` pendant une phase de développement ou correction. Avant la clôture/release de cette application/crate, son niveau de référence est ramené à `info` ou `warn` selon le besoin opératoire ; il nest remonté que lorsquun développement/correctif est explicitement rouvert.
- **KSP-APP-032** — Les interfaces desk KSP nutilisent pas les dialogues bloquants natifs du navigateur (`window.alert`, `window.confirm`, `window.prompt`) pour les interactions applicatives normales. Les confirmations destructives ou privilégiées utilisent un modal Bootstrap intégré à lUI, instrumenté par le bridge Logging ; toute exception doit être explicitement justifiée et documentée.
- **KSP-APP-033** — Un test dune application ou dun manager qui peut modifier un document Config du workspace ne traite jamais les valeurs courantes de ce document comme une fixture immuable. Les tests de valeurs exactes utilisent une fixture isolée ; les tests qui lisent la Config workspace vérifient uniquement des invariants, la validité et la cohérence source → résolution → runtime afin de rester valides après une édition légitime par Config Desk.
- **KSP-APP-034** — Pour une application Tauri KSP, un contrôle frontend standalone (`npm run check` ou équivalent) ne construit pas le bundle de production : il se limite au type-check/lint/tests frontend nécessaires. Le build frontend de production appartient au hook Tauri `beforeBuildCommand`. Dans une séquence de validation, `cargo tauri build -c crates/<app>/tauri.conf.json` est exécuté **en dernière opération**, uniquement après `fmt/check/clippy`, les tests, les contrôles frontend standalone et le parcours fonctionnel `cargo tauri dev`.
- **KSP-APP-034** — Pour une application Tauri KSP, npm n'est jamais invoqué directement pour lancer les scripts applicatifs de développement, contrôle ou build. Conformément à `KSP-APP-025`, les seules commandes npm directes sont celles nécessaires à l'installation ou à la mise à jour des dépendances déclarées dans `package.json` (`npm i -D` lors de l'installation initiale retenue par le gabarit, ou `npm update` lors d'une mise à jour). Le cycle applicatif passe par `cargo tauri dev -c crates/<app>/tauri.conf.json` et `cargo tauri build -c crates/<app>/tauri.conf.json`; Tauri déclenche lui-même les scripts configurés via `beforeDevCommand` et `beforeBuildCommand`. Dans une séquence de validation finale, `cargo tauri build -c crates/<app>/tauri.conf.json` est exécuté **en toute dernière opération**, après `fmt/check/clippy`, les tests et le parcours fonctionnel `cargo tauri dev`.
## Data plane / control plane