83 lines
5.8 KiB
Markdown
83 lines
5.8 KiB
Markdown
<!-- file: ks-wallet/CHANGELOG.md -->
|
||
<!-- version: 10 -->
|
||
|
||
# CHANGELOG — ks-wallet
|
||
|
||
## `0.5.2-pre.002`
|
||
|
||
- ajoute `WalletManager` pour la découverte non récursive des `.kswallet` dans le répertoire configuré et le lookup par alias ;
|
||
- ajoute `WalletManager::inspect_file()` pour inspecter explicitement un `.kswallet` situé hors du store sans modifier la configuration ni l'enregistrer automatiquement ;
|
||
- ajoute `WalletFileHandle`, handle opaque dont le chemin local reste privé et absent de `Debug` ;
|
||
- introduit le préambule d'identification natif minimal `KSWALLET` + version `u16` little-endian `1`, sans définir encore le payload, KDF ou AEAD ;
|
||
- ajoute `WalletIdentity` et `WalletPersistence`, et transforme `WalletSummary` en alias de compatibilité vers l'identité non sensible ;
|
||
- retire le chemin de stockage de `WalletSummary` et du `Debug` de `TemporaryWallet` ;
|
||
- conserve les wallets temporaires et la frontière `solana_signer::Signer` existante ;
|
||
- externalise la caractérisation du legacy dans `tests/legacy_characterization.rs` avec fixture synthétique, erreurs, permissions, symlink et refus d'écrasement ;
|
||
- ajoute `tests/public_api.rs` pour figer la façade crate-root multi-wallet et l'absence de chemin dans le `Debug` du handle ;
|
||
- ne crée encore aucun `.kswallet` réel et n'introduit aucun mot de passe ou chiffrement persistant.
|
||
|
||
## `0.5.2-pre.001`
|
||
|
||
- caractérise précisément le format legacy `<alias>.json`, ses permissions Unix, ses erreurs, sa publication directe dans le chemin final et ses limites d’atomicité/TOCTOU ;
|
||
- inventorie les consommateurs `ks-wallet`, les usages directs de `solana_keypair` / `solana_signer`, les variables/configurations wallet et les workflows CLI qui dépendent encore du keypair Solana brut ;
|
||
- définit le contrat fonctionnel `0.5.2` autour de la gestion multi-wallet par alias, des wallets temporaires/jetables, du mot de passe modifiable, de la signature sans exposition du secret et de l’import/export explicite ;
|
||
- retient comme cible un conteneur natif binaire versionné `<alias>.kswallet`, sans fixer prématurément KDF/AEAD ou layout binaire ;
|
||
- impose un mot de passe valide pour tout export contenant ou permettant de reconstruire le secret ;
|
||
- définit la migration legacy comme import vers un nouveau `.kswallet` avec conservation de la pubkey, écriture atomique et rollback, sans réécriture destructive du `.json` ;
|
||
- corrige README/USAGE/TODO afin d’aligner les objectifs sur ce contrat simplifié ;
|
||
- ne modifie aucune API runtime, aucun fichier wallet et n’introduit encore aucun nouveau format persistant.
|
||
|
||
### `pre.001-delta-fix-001`
|
||
|
||
- corrige la version Cargo de `0.5.2-pre.001` vers le SemVer valide `0.5.2-pre.1` ;
|
||
- simplifie profondément le plan initial, retire l’exclusion erronée de l’export privé contrôlé et supprime l’hypothèse d’un alias principal universel par profil ;
|
||
- formalise l’extension native `.kswallet`, le wallet temporaire et l’obligation de password pour tout export secret.
|
||
|
||
### `pre.001-delta-fix-002`
|
||
|
||
- précise que `ks-wallet` découvrira les wallets persistants par scan borné des `<alias>.kswallet` dans son répertoire résolu, sans faire confiance au seul nom de fichier ;
|
||
- distingue explicitement changement de password et rotation de keypair : le password rechiffre la même keypair, tandis qu’un nouveau secret Ed25519 implique une nouvelle pubkey ;
|
||
- rend obligatoires l’import **et** l’export du format keypair JSON standard utilisé par les binaires Solana ;
|
||
- ajoute une matrice de compatibilité à établir pour Phantom, Solflare, Backpack, Trust Wallet, Coinbase/Base et les autres wallets Solana techniquement documentés ;
|
||
- borne `0.5.2` à un adaptateur wallet tiers d’exemple en plus du format Solana CLI obligatoire, avec report des autres adaptateurs faisables au TODO pour une version ultérieure non déterminée ;
|
||
- interdit de synthétiser une recovery phrase supposée restaurer une keypair arbitraire lorsque la mnemonic/seed d’origine n’est pas disponible.
|
||
|
||
## `0.5.1-pre.002`
|
||
|
||
- renomme `kb-wallet` en `ks-wallet` et `kb_wallet` en `ks_wallet` ;
|
||
- aligne le target racine de tracing et les consommateurs sans modifier le format persistant des wallets, réservé à `0.5.2`.
|
||
|
||
## `0.5.0-pre.002`
|
||
|
||
- caractérise le format persistant `0.4.8` comme format legacy à importer plutôt qu’à modifier in-place ;
|
||
- prépare pour `0.5.2` un conteneur versionné, une migration atomique/rollback et la séparation identité/secret/verrouillage/signature ;
|
||
- renforce le TODO sur l’absence de propagation de secrets vers configuration, logs, erreurs, diagnostics ou Tauri.
|
||
|
||
## `0.4.8-pre.013`
|
||
|
||
- `pre.013-delta-fix-021` ajoute `TemporaryWallet::as_sync_signer()` afin de préserver le marqueur `Sync` du `solana_keypair::Keypair` lorsque le signataire traverse un futur async qui doit être `Send` ;
|
||
- conserve `as_signer()` inchangé pour les consommateurs historiques et n’expose toujours aucun octet secret.
|
||
|
||
## 0.4.6
|
||
|
||
- alignement de la crate sur la version fonctionnelle bot3 `0.4.6` ;
|
||
- clôture des tâches de migration applicables et report explicite des évolutions ultérieures dans le TODO.
|
||
|
||
## 0.1.0-pre.072
|
||
|
||
- reclassement du TODO selon les blocants avant `0.4.6`, les travaux `0.4.7`, les versions ultérieures et les dépendances conditionnelles.
|
||
|
||
## 0.1.0-pre.071
|
||
|
||
- réécriture du README avec indication explicite du statut d’ébauche ;
|
||
- ajout du TODO détaillant les fonctionnalités prévues pour `0.5.x` ;
|
||
- ajout du guide d’utilisation et de plusieurs exemples publics ;
|
||
- clarification de la frontière entre signer, politique et exécution.
|
||
|
||
## 0.1.0-pre.062
|
||
|
||
- migration et renommage du wallet temporaire vers `ks-wallet` ;
|
||
- conservation des alias validés, keypairs temporaires et stockage local ;
|
||
- ajout des contrôles de permissions, type de fichier et effacement des buffers secrets ;
|
||
- adaptation aux normes Rust 2024 et Khadhroony bot3.
|