# 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 `.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é `.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 `.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.