v0.2.6-pre.001-fix.001

This commit is contained in:
2026-08-20 14:49:09 +02:00
parent 136ea6d76e
commit b7d9e7fd1f
2 changed files with 1118 additions and 532 deletions

View File

@@ -0,0 +1,185 @@
<!-- file: deltas/0.2.6/pre.001-fix.001.md -->
<!-- version: 1 -->
# Delta `0.2.6-pre.001-fix.001` — correction du plan Wallet Desk
## Base requise
```text
0.2.6-pre.001 appliquée
workspace.package.version = 0.2.6-pre.1
```
Ce correctif part de la livraison `pre.001` réellement appliquée par l'opérateur. Il ne remplace ni ne réécrit `deltas/0.2.6/pre.001.md`.
## Type de livraison
```text
ksp-doc-0.2.6-pre.001-fix.001.zip
```
La livraison est documentaire : elle modifie uniquement le plan `0.2.6` et ajoute le présent delta.
## Objet
Corriger et compléter le sizing `0.2.6` après revue opérateur, sans ouvrir une nouvelle prerelease et sans modification code/build/runtime/configuration exécutable.
## Corrections apportées
### Gabarit Wallet Desk
Le plan retient explicitement le gabarit validé de `ksp-app-config-desk` :
```text
Bootstrap
Font Awesome
DataTables Bootstrap 5
DataTables Select Bootstrap 5
SimpleBar
resize-observer-polyfill
```
DataTables porte l'inventaire des `.kspwallet` et Font Awesome peut représenter les états verrouillé/déverrouillé avec un équivalent textuel/accessible.
### Config Wallet
Le modèle planifié devient :
```text
wallets_directory global
profiles[].wallets_subdirectory optionnel et relatif
```
Les sous-répertoires de profil permettent d'isoler notamment les wallets de tests, temporaires et futurs scénarios sans dupliquer la racine globale.
Le répertoire effectif absent doit être créé automatiquement par Wallet Desk après résolution Config : succès/prêt journalisé en `debug`, échec de création journalisé en `error` et surfacé comme erreur runtime.
### Passwords Config / `.env`
Les variables :
```text
KSP_SECRET_WALLET_PASS_01
KSP_SECRET_WALLET_PASS_<FILENAME>
KSP_SECRET_WALLET_PASS_<FILENAME_ALIAS>
```
sont possédées/résolues exclusivement par Config côté Rust.
Le suffixe concerne un numéro, un filename/stem normalisé ou un **alias de filename/opérateur**. Il ne correspond jamais à l'alias interne protégé `WalletInfo.alias` du `.kspwallet` et aucune ouverture préalable du wallet n'est effectuée pour découvrir cet alias.
### Sens de circulation des passwords Tauri
La règle est explicitée :
```text
password saisi dans HTML/TypeScript
-> request Tauri IPC frontend -> Rust
-> OwnerPassword / ViewPassword
-> opération Wallet
-> purge/drop
```
Les passwords nécessaires aux opérations `unlock`, create/import, rotation/changement et recreate VIEW peuvent donc être envoyés du frontend vers Rust dans des request DTOs dédiés.
Interdictions conservées :
```text
Rust -X-> frontend password
Rust -X-> frontend keypair/secret bytes
response DTO -X-> password
logs/Debug/storage frontend -X-> password
```
Les passwords provenant de `KSP_SECRET_WALLET_PASS_*` ne transitent pas par le frontend : Config les fournit directement côté Rust.
### CSP
Le plan ne transforme plus la CSP en chantier obligatoire. Wallet Desk conserve par défaut le comportement du gabarit Config Desk (`csp = null`) et ne réouvre ce sujet que si une surface WebView concrète le nécessite.
### Forecast souple
Le plan distingue désormais clairement la prévision souple des prereleases des critères de validation. Le forecast est détaillé par objectifs/livrables positifs et prévoit explicitement une dernière tranche documentaire :
```text
pre.014 README/USAGE + docs/validation + dépendances + prompt 0.2.7
+ validations finales + cargo tauri build en dernière opération
```
Le numéro reste prévisionnel ; des prereleases/fixes supplémentaires peuvent être insérés si nécessaire.
## Fichiers ajoutés
```text
deltas/0.2.6/pre.001-fix.001.md
```
## Fichiers modifiés
```text
docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md
```
## Fichiers supprimés
```text
aucun
```
## Version technique
Conformément à `VER-ID-008`, ce correctif est strictement documentaire :
```text
workspace.package.version = 0.2.6-pre.1 (inchangé)
commit = v0.2.6-pre.001-fix.001
```
Aucun `Cargo.toml` n'est livré dans ce delta.
## Validations opérateur de la base `pre.001`
L'opérateur a exécuté le `2026-08-20` :
```bash
cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo check --workspace
cargo clippy --workspace --all-targets
```
Résultats communiqués :
```text
General Rust rule audit: clean
Rust export completeness audit: 0 candidate(s)
KSP workspace Rust rule audit: clean
cargo check --workspace: vert
cargo clippy --workspace --all-targets: vert, aucun warning signalé
```
Ces validations établissent l'état de base `pre.001`. Le présent fix ne modifie aucun fichier Rust, Cargo, frontend, runtime ou Config exécutable.
## Validations exécutées sur ce correctif
- contrôle que le plan porte `version: 2`, à partir de la version `1` livrée dans `pre.001` ;
- contrôle de l'absence de `Cargo.toml` et de tout fichier code/runtime dans l'archive ;
- contrôle que l'archive contient uniquement le plan modifié et le nouveau delta ;
- contrôle des occurrences résiduelles concernant alias interne/alias de filename et sens IPC des passwords.
## Validations non exécutées
Aucune validation Cargo supplémentaire n'est revendiquée pour ce fix documentaire ; aucun fichier consommé par le build ou le runtime n'est modifié.
## Décisions prises
- un secret `KSP_SECRET_WALLET_PASS_*` est indexé par numéro/filename/alias de filename opérateur, jamais par l'alias interne du wallet ;
- les passwords saisis peuvent traverser l'IPC uniquement dans le sens frontend -> Rust et uniquement pour l'opération demandée ;
- aucun password n'est renvoyé Rust -> frontend ;
- Config reste l'unique propriétaire des secrets provenant de process env/`.env` ;
- `workspace.package.version` reste `0.2.6-pre.1` ;
- la prochaine tranche technique reste `pre.002` après enregistrement de ce fix.
## Questions ouvertes
Aucune question bloquante pour l'ouverture de `pre.002`.

File diff suppressed because it is too large Load Diff