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

@@ -0,0 +1,150 @@
<!-- file: deltas/0.2.6/pre.001-fix.002.md -->
<!-- version: 1 -->
# Delta `0.2.6-pre.001-fix.002` — workflow npm/Tauri Wallet Desk
## Base requise
```text
0.2.6-pre.001-fix.001 appliquée
workspace.package.version = 0.2.6-pre.1
```
Le plan opérateur `docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md` fourni pour ce correctif est la base documentaire retenue ; son alignement manuel des tableaux est conservé.
## Type de livraison
```text
ksp-doc-0.2.6-pre.001-fix.002.zip
```
Le correctif reste strictement documentaire. Aucun `Cargo.toml`, fichier Rust, `package.json`, configuration Tauri ou fichier runtime n'est modifié.
## Objet
Corriger la règle KSP et le plan Wallet Desk afin d'appliquer le workflow frontend Tauri retenu : npm direct sert uniquement à installer ou mettre à jour les dépendances déclarées ; les scripts de développement et de build sont déclenchés par Tauri via `beforeDevCommand` / `beforeBuildCommand`.
## Correction normative
`KSP-APP-025` indiquait déjà que npm est utilisé directement uniquement pour installer ou mettre à jour les dépendances. `KSP-APP-034` conservait cependant encore une validation frontend standalone par script npm, créant une contradiction normative.
`KSP-APP-034` est corrigée pour imposer :
```text
npm direct : npm i -D ou npm update lorsque package.json est créé/modifié
cycle dev : cargo tauri dev -c crates/<app>/tauri.conf.json
cycle build : cargo tauri build -c crates/<app>/tauri.conf.json
beforeDevCommand / beforeBuildCommand déclenchés automatiquement par Tauri
aucun script npm applicatif de contrôle/dev/build lancé directement dans la validation opérateur
cargo tauri build toujours en toute dernière opération
```
La version de `docs/rules/RULES_KSP.md` passe de `35` à `36`, conformément au contrat de versionnement des règles documentaires.
## Corrections du plan Wallet Desk
Le plan opérateur `version: 3` passe à `version: 4` sans reformater ses tableaux.
Les prescriptions de validation frontend standalone par script npm sont supprimées dans :
```text
gabarit Tauri
validation frontend
pre.002
pre.014
validation continue
candidate finale
critères de sortie
```
La validation frontend est désormais décrite par le parcours :
```text
package.json créé/modifié
-> npm i -D ou npm update si nécessaire
-> retour racine workspace
-> cargo tauri dev -c crates/ksp-app-wallet-desk/tauri.conf.json
-> Tauri exécute beforeDevCommand
```
La validation finale devient :
```text
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 test --workspace
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 dernier `cargo tauri build` déclenche lui-même le build frontend via `beforeBuildCommand` et reste la toute dernière opération.
## Contrôle mécanique futur
Aucun script d'audit n'est modifié dans ce correctif documentaire. La possibilité d'ajouter un contrôle mécanique de cette règle sera évaluée au démarrage technique de `pre.002`, avant de propager le nouveau gabarit dans `ksp-app-wallet-desk`. Si ce contrôle modifie l'outillage consommé par le workflow, il appartiendra à une tranche technique avec le signal de version correspondant.
## Fichiers ajoutés
```text
deltas/0.2.6/pre.001-fix.002.md
```
## Fichiers modifiés
```text
docs/rules/RULES_KSP.md
docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md
```
## Fichiers supprimés
```text
aucun
```
## Version technique
Conformément à `VER-ID-008`, ce correctif documentaire ne modifie pas la version Cargo :
```text
workspace.package.version = 0.2.6-pre.1 (inchangé)
commit = v0.2.6-pre.001-fix.002
```
Aucun `Cargo.toml` n'est livré dans le delta.
## Validations de la base
Les validations opérateur de `pre.001` restent les preuves de la base technique :
```text
cargo fmt --all vert
python3 scripts/audit_rust_workspace_rules.py clean
cargo check --workspace vert
cargo clippy --workspace --all-targets vert
```
Le présent correctif ne revendique aucune nouvelle validation Cargo, puisqu'il ne modifie aucun fichier consommé par Cargo ou le runtime.
## Contrôles documentaires exécutés
- conservation du fichier opérateur aligné comme base du plan ;
- `docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md` passé de `version: 3` à `version: 4` ;
- `docs/rules/RULES_KSP.md` passé de `version: 35` à `version: 36` ;
- suppression des prescriptions de validation frontend standalone par script npm dans le plan actif ;
- maintien des scripts frontend de dev/build uniquement derrière les hooks Tauri, jamais comme commandes opérateur directes ;
- contrôle qu'aucun `Cargo.toml`, fichier Rust, frontend ou runtime n'est présent dans l'archive.
## Décisions prises
- aucune validation frontend standalone par script npm n'appartient au workflow Wallet Desk ;
- npm direct est réservé à l'installation/mise à jour des dépendances de `package.json` ;
- le développement passe par `cargo tauri dev -c ...` ;
- Tauri déclenche les scripts frontend configurés ;
- le build de production passe exclusivement par `cargo tauri build -c ...` ;
- `cargo tauri build` reste la toute dernière opération de validation ;
- `workspace.package.version` reste `0.2.6-pre.1` ;
- la prochaine tranche technique reste `pre.002` après commit du présent fix.

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