6.6 KiB
Delta 0.2.5-rel.001 — publication stable Wallet foundation
Base requise
Base validée :
v0.2.5-pre.010-fix.003
avec :
workspace.package.version = "0.2.5-pre.10.fix.3"
Le checkpoint opérateur final du 20 août 2026 est vert :
cargo fmt --all OK
python3 scripts/audit_rust_workspace_rules.py
General Rust rule audit clean
Rust export completeness audit 0 candidate(s)
KSP workspace Rust rule audit clean
cargo check --workspace OK
cargo clippy --workspace --all-targets OK
cargo test -p ksp-wallet-lib OK
unit 58 passed / 1 ignored
dependency_boundary 3 passed
public_api 9 passed
doctests 2 passed
cargo test --workspace OK
Le dernier audit Cargo confirme également :
ed25519-dalek 3.0.0
<- ksp-wallet-lib direct
ed25519-dalek 2.2.0
<- solana-keypair 3.1.2
<- ksp-wallet-lib
solana-keypair 3.1.2
<- ksp-wallet-lib comme unique parent KSP direct
solana-address 2.7.0
<- solana-keypair 3.1.2
<- solana-pubkey 4.3.0 via ksp-core-lib
Objectif
Publier la release stable 0.2.5 — Wallet foundation sans ajouter de capacité fonctionnelle après la candidate validée.
rel.001 est strictement publicationnelle :
- passage du workspace à la version Cargo stable
0.2.5; - publication stable de
ksp-wallet-libet du format.kspwalletV1 ; - ajout de l'entrée stable
0.2.5au CHANGELOG ; - clôture
[X]de0.2.5dans le ROADMAP ; - passage du plan
012au statut historique clôturé ; - passage de la matrice
validation/008au verdict final positif ; - passage de
KSPWALLET_V1.mdde candidate à spécification normative V1 stable ; - passage de
ksp-wallet-libau statut Stable dans l'inventaire ; - synchronisation du prompt
0.2.6comme prochaine entrée officielle ; - synchronisation du TODO
0.2.11: après stabilisation de la Price Desk offchain, intégrer la capacité de prix dans Wallet Desk sans dupliquer récupération/normalisation.
Aucun fichier Rust, wire, paramètre cryptographique, dependency ou feature n'est modifié par rel.001.
Version Cargo
workspace.package.version passe de :
0.2.5-pre.10.fix.3
à :
0.2.5
Le header de Cargo.toml passe de version 162 à 163.
Surface stable publiée
0.2.5 stabilise notamment :
ksp-wallet-libcomme propriétaire KSP du Wallet natif ;.kspwalletV1 JSON UTF-8 strict, Base64url sans padding et limite documentaire bornée ;- capabilities VIEW/OWNER cryptographiquement indépendantes ;
- Pubkey/alias/notes protégés lorsque le wallet est verrouillé ;
- Argon2id v19 avec paramètres sérialisés et profil de création
65 536 KiB / 3 / 1; - XChaCha20-Poly1305 pour wrapping et compartments ;
- autorité Ed25519 OWNER distincte de la keypair Solana ;
- compartments
owner_control,metadata,secret; - create/open/inspect mémoire et fichier ;
- persistence create/import no-clobber et replacement administratif capability-bound ;
- signature Solana OWNER sans getter de secret ;
- alias/notes protégés ;
- rotations OWNER/VIEW ;
- révocation forte VIEW avec nouveau
K_metadata; - détection
wallet.state_conflictdes handles stale/mauvaises cibles ; - inspection/import/export Solana CLI JSON et Base58 de keypair complète ;
- spécification autonome
docs/formats/KSPWALLET_V1.mdet vecteurs publics ; - canaris adversariaux et reproduction externe des primitives/vecteurs ;
- normalisation Rust workspace et audit structurel
scripts/audit_rust_workspace_rules.py; - dépendance directe KSP
ed25519-dalek 3.0.0, avec2.2.0transitive conservée parsolana-keypair 3.1.2.
Les frontières restent :
ksp-wallet-lib -> ksp-core-lib
ksp-wallet-lib -> ksp-logging-lib
ksp-wallet-lib -X-> Config/Transport/ExecutionPolicy/Store/Tauri
Pubkey publique via ksp-core-lib
solana-keypair encapsulée dans Wallet
Fichiers ajoutés
deltas/0.2.5/rel.001.md
Fichiers modifiés
Cargo.toml
CHANGELOG.md
ROADMAP.md
crates/ksp-wallet-lib/README.md
docs/000-README.md
docs/architecture/004-COMPONENT_INVENTORY.md
docs/formats/KSPWALLET_V1.md
docs/plans/000-README.md
docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md
docs/plans/012-V0_2_5_WALLET_FOUNDATION_PLAN.md
docs/validation/000-README.md
docs/validation/008-V0_2_5_WALLET_SECURITY_COMPLIANCE.md
prompts/000-README.md
Fichiers supprimés
Aucun.
Décisions de clôture
Aucune nouvelle décision cryptographique ou fonctionnelle Wallet n'est introduite par rel.001.
La publication confirme :
.kspwalletV1 devient le format natif stable de Wallet ;ksp-wallet-libreste autonome de Config et du réseau ;- VIEW/OWNER et la séparation owner-control/metadata/secret restent le contrat V1 ;
- la coexistence Dalek
3.0.0direct /2.2.0transitive Solana est acceptée tant qu'upstream l'impose ; cargo fmt --allreste l'autorité de formatage Rust et l'audit Python contrôle uniquement les conventions structurelles complémentaires ;0.2.6ouvre Wallet Desk par audit/sizing ;0.2.11doit, après validation de la Price Desk spécialisée, réutiliser la capacité de prix offchain dans Wallet Desk sans duplication de la logique propriétaire.
Validation finale après application
Le delta change Cargo.toml et la documentation mais aucun fichier Rust. Avant création du tag stable, exécuter néanmoins le gate complet de publication :
cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-wallet-lib
cargo test --workspace
Les cargo tree ne sont pas requis à nouveau par rel.001 puisque les dependencies/features sont identiques à pre.010-fix.003; leur dernier état est déjà enregistré dans docs/validation/008-V0_2_5_WALLET_SECURITY_COMPLIANCE.md.
Commit et tag stable
Après succès du gate final :
- vérifier le working tree ;
- créer le commit de release :
v0.2.5-rel.001
- créer le tag stable :
v0.2.5
- pousser le commit puis le tag vers le dépôt canonique.
Aucun tag intermédiaire de prerelease/fix/rel n'est nécessaire.
Suite
Après le tag stable v0.2.5, ouvrir :
0.2.6-pre.001
avec :
prompts/011-V0_2_6_START_PROMPT.md
La première tranche reste un audit/brainstorming/sizing avant implémentation lourde de ksp-app-wallet-desk.