Files
khadhroony-solana-project/deltas/0.2.6/pre.010-fix.001.md

43 lines
2.0 KiB
Markdown

<!-- file: deltas/0.2.6/pre.010-fix.001.md -->
<!-- version: 1 -->
# Delta `0.2.6-pre.010-fix.001` — self-rotation VIEW
## Objet
Compléter `pre.010` pour respecter le contrat de capacité de `ksp-wallet-lib` : un détenteur VIEW déjà autorisé doit pouvoir changer son propre password VIEW, tandis qu'OWNER conserve son pouvoir administratif de rotation VIEW sans ancien password VIEW.
## Changements
- `workspace.package.version` passe à `0.2.6-pre.10.fix.1` ;
- ajout de l'état Rust-only `WalletSession::ViewOperation` pour déplacer un `WalletView` hors mutex pendant Argon2/persistence ;
- `rotate_view_password` accepte désormais une session VIEW ou OWNER :
- VIEW -> `WalletView::rotate_view_password` -> session VIEW conservée ;
- OWNER -> `WalletOwner::rotate_view_password` -> session OWNER conservée ;
- `wallet.state_conflict` côté VIEW détruit le handle stale, réinspecte le fichier et force une nouvelle autorisation VIEW ;
- Lock/balance considèrent `ViewOperation` comme une opération privilégiée en cours ;
- UI : contrôles Rotate VIEW actifs en VIEW comme en OWNER, Rotate OWNER reste strictement OWNER-only ;
- la récupération frontend de conflit de rotation exige la réautorisation de la capacité initiatrice ;
- canaries contract/security étendus aux deux chemins de rotation VIEW ;
- aucun secret Config n'est modifié implicitement.
## Hors changement
- aucun changement du format `.kspwallet` ;
- aucun changement dans `ksp-wallet-lib` ;
- aucune nouvelle dépendance ;
- `ROADMAP.md`, `CHANGELOG.md` et `docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md` restent inchangés.
## Validation opérateur
```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
```
Runtime utile : ouvrir VIEW, Rotate VIEW, Lock, vérifier ancien VIEW refusé / nouveau VIEW accepté ; puis ouvrir OWNER et vérifier que Rotate VIEW et Rotate OWNER restent fonctionnels.