# Delta `0.2.6-pre.010` — rotations credentials OWNER / VIEW ## Objet Cette tranche ajoute les rotations de credentials déjà supportées par `ksp-wallet-lib` à Wallet Desk, sans modifier le format `.kspwallet` ni les secrets Config. ## Changements - ajoute `WalletPasswordRotationRequestDto`, request-only et sans `Debug`/`Clone` ; - ajoute `rotate_owner_password` et `rotate_view_password` au bridge Tauri ; - délègue à `WalletOwner::rotate_owner_password` et `WalletOwner::rotate_view_password` ; - généralise le lifecycle `OwnerOperation` de `pre.009` pour les mutations OWNER privilégiées ; - libère le mutex de session pendant Argon2/persistence ; - conserve la session OWNER et la projection autorisée après succès ; - restaure la session OWNER après une erreur non conflictuelle ; - traite `wallet.state_conflict` par destruction du handle stale, réinspection Locked et réautorisation obligatoire ; - refuse une rotation VIEW quand VIEW est désactivé ; - ajoute double saisie de confirmation côté frontend uniquement ; - vide les champs de rotation après succès, échec, Lock, Deselect ou changement de wallet ; - indique explicitement que les secrets Config ne sont jamais mis à jour automatiquement ; - ajoute les canaris contract/security dédiés. ## Documentation - `docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md` détaille le contrat `pre.010`. - `ROADMAP.md`, `CHANGELOG.md` et `docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md` restent inchangés dans cette tranche. ## Validation opérateur attendue ```bash 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 ``` Puis `cargo tauri dev` pour vérifier les rotations réelles OWNER/VIEW, la conservation de la Pubkey et le comportement des anciens/nouveaux passwords.