From 927b9e4709a3eb490022f7e7723093b8648c3d72 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Thu, 20 Aug 2026 15:23:32 +0200 Subject: [PATCH] v0.2.6-pre.001-fix.002 --- deltas/0.2.6/pre.001-fix.002.md | 150 ++++++++++++++++++++++ docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md | 61 ++++++--- docs/rules/RULES_KSP.md | 4 +- 3 files changed, 195 insertions(+), 20 deletions(-) create mode 100644 deltas/0.2.6/pre.001-fix.002.md diff --git a/deltas/0.2.6/pre.001-fix.002.md b/deltas/0.2.6/pre.001-fix.002.md new file mode 100644 index 0000000..c74a397 --- /dev/null +++ b/deltas/0.2.6/pre.001-fix.002.md @@ -0,0 +1,150 @@ + + + +# 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//tauri.conf.json +cycle build : cargo tauri build -c crates//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. diff --git a/docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md b/docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md index 9feec9c..a39c2a1 100644 --- a/docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md +++ b/docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md @@ -1,5 +1,5 @@ - + # 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. diff --git a/docs/rules/RULES_KSP.md b/docs/rules/RULES_KSP.md index f4f6357..673372a 100644 --- a/docs/rules/RULES_KSP.md +++ b/docs/rules/RULES_KSP.md @@ -1,5 +1,5 @@ - + # 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 n’est remonté que lorsqu’un développement/correctif est explicitement rouvert. - **KSP-APP-032** — Les interfaces desk KSP n’utilisent 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é à l’UI, instrumenté par le bridge Logging ; toute exception doit être explicitement justifiée et documentée. - **KSP-APP-033** — Un test d’une application ou d’un 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//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//tauri.conf.json` et `cargo tauri build -c crates//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//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