# 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_ KSP_SECRET_WALLET_PASS_ ``` 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`.