Files
2026-08-20 12:31:08 +02:00

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-lib et du format .kspwallet V1 ;
  • ajout de l'entrée stable 0.2.5 au CHANGELOG ;
  • clôture [X] de 0.2.5 dans le ROADMAP ;
  • passage du plan 012 au statut historique clôturé ;
  • passage de la matrice validation/008 au verdict final positif ;
  • passage de KSPWALLET_V1.md de candidate à spécification normative V1 stable ;
  • passage de ksp-wallet-lib au statut Stable dans l'inventaire ;
  • synchronisation du prompt 0.2.6 comme 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-lib comme propriétaire KSP du Wallet natif ;
  • .kspwallet V1 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_conflict des handles stale/mauvaises cibles ;
  • inspection/import/export Solana CLI JSON et Base58 de keypair complète ;
  • spécification autonome docs/formats/KSPWALLET_V1.md et 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, avec 2.2.0 transitive conservée par solana-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 :

  1. .kspwallet V1 devient le format natif stable de Wallet ;
  2. ksp-wallet-lib reste autonome de Config et du réseau ;
  3. VIEW/OWNER et la séparation owner-control/metadata/secret restent le contrat V1 ;
  4. la coexistence Dalek 3.0.0 direct / 2.2.0 transitive Solana est acceptée tant qu'upstream l'impose ;
  5. cargo fmt --all reste l'autorité de formatage Rust et l'audit Python contrôle uniquement les conventions structurelles complémentaires ;
  6. 0.2.6 ouvre Wallet Desk par audit/sizing ;
  7. 0.2.11 doit, 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 :

  1. vérifier le working tree ;
  2. créer le commit de release :
v0.2.5-rel.001
  1. créer le tag stable :
v0.2.5
  1. 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.