v0.2.5-rel.001
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
<!-- file: docs/validation/008-V0_2_5_WALLET_SECURITY_COMPLIANCE.md -->
|
||||
<!-- version: 4 -->
|
||||
<!-- version: 5 -->
|
||||
|
||||
# Validation `0.2.5` — Wallet security / interoperability / compliance
|
||||
|
||||
## 1. Objet
|
||||
|
||||
Cette matrice constitue la validation durable de clôture de `0.2.5`. `pre.009` a fermé le premier gate technique security/interoperability/compliance et `pre.010` a ajouté le gate documentaire. `pre.010-fix.001` rouvre volontairement le gate technique pour la mise à niveau `ed25519-dalek 3.0.0` et la normalisation Rust workspace-wide avant toute publication stable. Elle ne remplace ni la spécification [`../formats/KSPWALLET_V1.md`](../formats/KSPWALLET_V1.md), ni le threat model du plan [`../plans/012-V0_2_5_WALLET_FOUNDATION_PLAN.md`](../plans/012-V0_2_5_WALLET_FOUNDATION_PLAN.md), ni les deltas.
|
||||
Cette matrice constitue la validation durable de clôture de la release stable `0.2.5`. `pre.009` a fermé le premier gate technique security/interoperability/compliance, `pre.010` le gate documentaire, puis `pre.010-fix.001`–`fix.003` ont fermé la mise à niveau `ed25519-dalek 3.0.0`, la normalisation Rust workspace-wide et la compatibilité entre rustfmt et l’audit Python avant publication. Elle ne remplace ni la spécification [`../formats/KSPWALLET_V1.md`](../formats/KSPWALLET_V1.md), ni le threat model du plan [`../plans/012-V0_2_5_WALLET_FOUNDATION_PLAN.md`](../plans/012-V0_2_5_WALLET_FOUNDATION_PLAN.md), ni les deltas.
|
||||
|
||||
Le verdict recherché porte sur quatre axes :
|
||||
|
||||
@@ -268,16 +268,23 @@ aucun fichier Rust ni manifest Cargo n'est modifié par pre.010
|
||||
workspace.package.version reste 0.2.5-pre.9 car pre.010 est doc-only
|
||||
```
|
||||
|
||||
## 12. Correctif technique `pre.010-fix.001`
|
||||
## 12. Correctifs de clôture `pre.010-fix.001` à `fix.003`
|
||||
|
||||
Le correctif de clôture apporte deux changements qui exigent une nouvelle validation opérateur :
|
||||
La clôture technique apporte :
|
||||
|
||||
```text
|
||||
ed25519-dalek direct KSP : ^2.2 -> ^3.0
|
||||
normalisation Rust workspace + scripts/audit_rust_workspace_rules.py obligatoire
|
||||
normalisation Rust workspace-wide
|
||||
scripts/audit_rust_workspace_rules.py obligatoire après cargo fmt
|
||||
corrections des chemins crate::/super:: et des réexports crate-root
|
||||
espacement structurel normalisé
|
||||
audit Python rendu compatible avec l'ordre canonique produit par rustfmt
|
||||
prompt 0.2.6 renforcé + TODO 0.2.11 prix offchain dans Wallet Desk
|
||||
```
|
||||
|
||||
Le résultat `pre.009` des sections 6 et 10 reste une preuve historique valide pour l'état `2.2.0`; il ne doit pas être présenté comme le tree final après le fix. `solana-keypair 3.1.2` conserve actuellement sa branche Dalek `2.x`, donc le tree attendu après le fix est :
|
||||
Le wire `.kspwallet` V1, les paramètres Argon2/XChaCha, la sémantique Ed25519, les capabilities VIEW/OWNER et les API Wallet fonctionnelles ne changent pas pendant ces fixes.
|
||||
|
||||
Le tree final attendu et observé contient deux générations Dalek intentionnelles :
|
||||
|
||||
```text
|
||||
ed25519-dalek 3.0.0
|
||||
@@ -292,27 +299,65 @@ solana-address 2.7.0
|
||||
<- solana-pubkey 4.3.0 via ksp-core-lib
|
||||
```
|
||||
|
||||
Gate opérateur post-fix :
|
||||
La génération `2.2.0` n'est pas un doublon direct KSP à corriger artificiellement : elle reste imposée par `solana-keypair 3.1.2`.
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
## 13. Checkpoint opérateur final `pre.010-fix.003`
|
||||
|
||||
Validation communiquée le **20 août 2026** :
|
||||
|
||||
```text
|
||||
cargo fmt --all OK
|
||||
python3 scripts/audit_rust_workspace_rules.py
|
||||
cargo check --workspace
|
||||
cargo clippy --workspace --all-targets
|
||||
cargo test -p ksp-wallet-lib
|
||||
cargo test --workspace
|
||||
cargo tree -p ksp-wallet-lib
|
||||
cargo tree -p ksp-wallet-lib -d
|
||||
cargo tree -i ed25519-dalek@3.0.0
|
||||
cargo tree -i ed25519-dalek@2.2.0
|
||||
cargo tree -i solana-keypair@3.1.2
|
||||
cargo tree -i solana-address@2.7.0
|
||||
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 fix ne modifie ni le wire `.kspwallet` V1, ni les paramètres Argon2/XChaCha, ni la sémantique Ed25519, ni les capabilities VIEW/OWNER. Le verdict final reste **en attente de ce checkpoint opérateur**.
|
||||
Le checkpoint ne rapporte aucun warning Clippy ou compilation. Les tests Config Desk, Config, Core, Logging, Transport et Wallet passent dans le workspace complet ; les smokes réseau opt-in restent volontairement `ignored` dans la suite déterministe.
|
||||
|
||||
## 13. Verdict final candidate `0.2.5`
|
||||
## 14. Audit Cargo final
|
||||
|
||||
Le verdict `pre.009` était positif pour l'état alors audité, mais **la candidate stable n'est plus considérée fermée tant que `pre.010-fix.001` n'a pas passé son gate opérateur**. Le changement de génération Dalek et la normalisation Rust sont intentionnels et ne changent pas le wire V1, mais ils constituent un changement technique réel qui doit être compilé, linté et testé dans l'environnement opérateur.
|
||||
Le dernier audit de dépendances avant release confirme notamment :
|
||||
|
||||
Après validation complète de `pre.010-fix.001`, le verdict peut redevenir positif et seulement alors `0.2.5-rel.001` redevient la prochaine étape publicationnelle.
|
||||
```text
|
||||
ed25519-dalek 3.0.0
|
||||
<- ksp-wallet-lib
|
||||
|
||||
ed25519-dalek 2.2.0
|
||||
<- solana-keypair 3.1.2 <- ksp-wallet-lib
|
||||
|
||||
solana-keypair 3.1.2
|
||||
<- ksp-wallet-lib uniquement comme parent KSP direct
|
||||
|
||||
solana-address 2.7.0
|
||||
<- solana-keypair 3.1.2
|
||||
<- solana-pubkey 4.3.0 via ksp-core-lib
|
||||
```
|
||||
|
||||
Les doublons transitifs RustCrypto/Solana déjà documentés restent acceptés et n'introduisent aucun second owner KSP du secret Solana.
|
||||
|
||||
## 15. Verdict final `0.2.5`
|
||||
|
||||
**Verdict positif.** Tous les gates déterministes et structurels requis avant publication sont verts sur `0.2.5-pre.010-fix.003`.
|
||||
|
||||
`0.2.5-rel.001` est donc strictement publicationnelle :
|
||||
|
||||
```text
|
||||
workspace.package.version -> 0.2.5
|
||||
aucun changement Rust fonctionnel
|
||||
aucun changement du wire .kspwallet V1
|
||||
aucune nouvelle dépendance/feature
|
||||
CHANGELOG/ROADMAP/plans/validation synchronisés
|
||||
commit attendu : v0.2.5-rel.001
|
||||
tag stable attendu : v0.2.5
|
||||
```
|
||||
|
||||
Après validation du delta `rel.001`, la session suivante s'ouvre avec `prompts/011-V0_2_6_START_PROMPT.md` et commence par `0.2.6-pre.001` audit/sizing.
|
||||
|
||||
Reference in New Issue
Block a user