v0.2.5-pre.010
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md -->
|
||||
<!-- version: 53 -->
|
||||
<!-- version: 54 -->
|
||||
|
||||
# Séquence des releases fonctionnelles KSP
|
||||
|
||||
@@ -418,13 +418,15 @@ La release doit fournir `docs/formats/KSPWALLET_V1.md` comme spécification sép
|
||||
|
||||
`0.2.5-pre.006` ajoute la persistence native sans Config : `create_wallet_file_v1` reçoit un chemin explicite du caller et publie uniquement en no-clobber via un fichier temporaire créé dans le même répertoire, écrit puis `sync_all` avant `persist_noclobber`; `open_wallet_view_file_v1`, `open_wallet_owner_file_v1` et `inspect_locked_wallet_file_v1` effectuent une lecture bornée à la limite V1 avant de déléguer au parser/crypto acquis. Les opérations filesystem bloquantes sont isolées par `spawn_blocking`. Les tests couvrent destination existante, concurrence avec un seul gagnant, fault injection avant publication, cleanup ordinaire des temporaires et rejet d'un fichier surdimensionné. La synchronisation du répertoire parent est best-effort sur Unix et n'est pas transformée en garantie portable de crash-durability. Les ACL/permissions OS restent hors du modèle Wallet.
|
||||
|
||||
`0.2.5-pre.007` complète l'administration native capability-bound : OWNER signe des messages Solana sans getter secret, modifie alias/notes, change son password ou celui de VIEW et peut disable/recreate VIEW avec rekey metadata fort ; VIEW ne peut que tourner son propre credential en rewrappant le même `K_metadata`. Les mutations sont staged puis remplacent le fichier uniquement si la destination courante correspond encore à l'enveloppe authentifiée attendue ; un handle stale ou une mauvaise cible reçoit `wallet.state_conflict`. Ce garde-fou ne prétend pas fournir un CAS filesystem portable ni un anti-rollback externe. La keypair reste encapsulée dans Wallet et aucune nouvelle dépendance tierce n'est ajoutée. `pre.008` ajoute ensuite les adapters `solana_cli_json` et `solana_keypair_base58`, l’inspection sûre limitée à Pubkey+format, l’import no-clobber vers un nouveau `.kspwallet` et l’export OWNER en mémoire/fichier. La source d’import reste inchangée, VIEW n’exporte jamais, aucun `bs58` direct n’est ajouté puisque `solana-keypair 3.1.2` possède déjà le codec Base58 complet. `pre.009` devient le prochain gate security/compliance.
|
||||
`0.2.5-pre.007` complète l'administration native capability-bound : OWNER signe des messages Solana sans getter secret, modifie alias/notes, change son password ou celui de VIEW et peut disable/recreate VIEW avec rekey metadata fort ; VIEW ne peut que tourner son propre credential en rewrappant le même `K_metadata`. Les mutations sont staged puis remplacent le fichier uniquement si la destination courante correspond encore à l'enveloppe authentifiée attendue ; un handle stale ou une mauvaise cible reçoit `wallet.state_conflict`. Ce garde-fou ne prétend pas fournir un CAS filesystem portable ni un anti-rollback externe. La keypair reste encapsulée dans Wallet et aucune nouvelle dépendance tierce n'est ajoutée. `pre.008` ajoute ensuite les adapters `solana_cli_json` et `solana_keypair_base58`, l’inspection sûre limitée à Pubkey+format, l’import no-clobber vers un nouveau `.kspwallet` et l’export OWNER en mémoire/fichier. La source d’import reste inchangée, VIEW n’exporte jamais, aucun `bs58` direct n’est ajouté puisque `solana-keypair 3.1.2` possède déjà le codec Base58 complet. `pre.009` ferme ensuite le gate adversarial/security/interoperability/compliance : canaris de tampering et non-oracle, reproduction indépendante des vecteurs, audit des frontières et graphes Cargo. Le checkpoint opérateur est vert. `pre.010` finalise README/USAGE, la spec, les graphes, la matrice de clôture et le prompt `0.2.6` sans changement de code ni de version Cargo technique. `rel.001` est la prochaine étape et reste strictement publicationnelle.
|
||||
|
||||
## `0.2.6` — Wallet Desk
|
||||
|
||||
Mission : valider Config composite + `.kspwallet` + transport HTTP dans une application Tauri mince.
|
||||
|
||||
Le solde d'un wallet constitue un premier cas de validation réseau obligatoire.
|
||||
Le solde d'un wallet constitue un premier cas de validation réseau obligatoire. L'application garde les handles VIEW/OWNER côté Rust, ne persiste aucun password dans Config/frontend et délègue toute crypto/signature/administration à `ksp-wallet-lib`.
|
||||
|
||||
Le prompt [`../../prompts/011-V0_2_6_START_PROMPT.md`](../../prompts/011-V0_2_6_START_PROMPT.md), préparé par `0.2.5-pre.010`, impose un `pre.001` d'audit/sizing couvrant Config `std.wallet`/composite, inventory/path safety, lifecycle VIEW/OWNER, balance `getBalance`, bridge Tauri/TS-RS, sécurité password/export, logging et validation finale Tauri.
|
||||
|
||||
## `0.2.7` — WebSocket Solana standard
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/012-V0_2_5_WALLET_FOUNDATION_PLAN.md -->
|
||||
<!-- version: 12 -->
|
||||
<!-- version: 13 -->
|
||||
|
||||
# Plan `0.2.5` — Wallet foundation
|
||||
|
||||
@@ -1085,6 +1085,22 @@ Toutes les mutations persistent un état staged puis ne mettent à jour le handl
|
||||
|
||||
La rotation simple VIEW rewrappe le même `K_metadata` et n'est pas une révocation forte. `disable_view`/`recreate_view` génèrent au contraire un nouveau `K_metadata`, rechiffrent les metadata et réécrivent `owner_control`; elles constituent la révocation forte des futures metadata de l'état courant. Dans tous les cas, `format_version` et la keypair Solana restent inchangés.
|
||||
|
||||
### 19.10 État acquis après `pre.010`
|
||||
|
||||
La tranche de clôture est documentaire et ne modifie ni Rust, ni Cargo, ni wire :
|
||||
|
||||
```text
|
||||
README Wallet final
|
||||
USAGE Wallet final
|
||||
KSPWALLET_V1.md synchronisée en candidate V1
|
||||
matrice validation 008 enrichie des preuves opérateur pre.009
|
||||
graphe de dépendances Wallet finalisé
|
||||
prompt 0.2.6 Wallet Desk préparé
|
||||
liens Markdown locaux audités
|
||||
```
|
||||
|
||||
`workspace.package.version` reste `0.2.5-pre.9` pendant `pre.010` conformément à la règle KSP de version technique ; `rel.001` effectuera le passage à `0.2.5`.
|
||||
|
||||
## 20. Sizing
|
||||
|
||||
| Domaine | Taille | Risque principal |
|
||||
@@ -1117,16 +1133,16 @@ pre.005 owner-control + metadata/secret compartments + create/open VIEW/OWNER +
|
||||
pre.006 persistence async/atomic/no-clobber + interrupted-write + fault/concurrency tests
|
||||
pre.007 signature Solana + alias/notes + rotations passwords + disable/recreate VIEW avec rekey metadata
|
||||
pre.008 import/export adapters + Solana CLI JSON + generic keypair Base58 + inspect
|
||||
pre.009 audit security/interoperability/compliance + adversarial vectors/tests + cargo trees
|
||||
pre.010 spec finale + README/USAGE + graphes/docs + candidate de clôture + prompt 0.2.6
|
||||
rel.001 publication strictement publicationnelle
|
||||
pre.009 audit security/interoperability/compliance + adversarial vectors/tests + cargo trees acquis
|
||||
pre.010 spec finale + README/USAGE + graphes/docs + candidate de clôture + prompt 0.2.6 acquis
|
||||
rel.001 publication strictement publicationnelle prochaine
|
||||
```
|
||||
|
||||
Une `fix` ou tranche supplémentaire est préférable à la suppression d'une garantie sécurité si un des gates révèle une incompatibilité.
|
||||
|
||||
## 22. Dépendances par tranche
|
||||
|
||||
État réellement acquis au terme de `pre.009` :
|
||||
État réellement acquis au terme de `pre.010` (aucune dépendance ajoutée par la tranche documentaire finale) :
|
||||
|
||||
```text
|
||||
pre.002 zeroize ^1.9
|
||||
@@ -1141,6 +1157,7 @@ pre.006 tempfile ^3.27
|
||||
pre.007 aucune nouvelle dépendance tierce
|
||||
pre.008 aucune nouvelle dépendance tierce
|
||||
pre.009 aucune nouvelle dépendance tierce
|
||||
pre.010 aucune nouvelle dépendance tierce (documentation uniquement)
|
||||
```
|
||||
|
||||
Toutes les dépendances tierces communes restent centralisées sous `[workspace.dependencies]`; le membre Wallet active uniquement les features nécessaires. `ed25519-dalek ^2.2` est volontairement aligné avec la contrainte `^2.1.1` de `solana-keypair 3.1.2` afin de permettre une seule génération Dalek et d'activer `zeroize` sur la `SigningKey` partagée par résolution Cargo.
|
||||
@@ -1179,7 +1196,7 @@ Solana RPC clients
|
||||
Config/Store/Tauri
|
||||
```
|
||||
|
||||
Le fait que `bs58` ne soit pas requis sera révalidé lorsque les adapters sont codés : `solana-keypair` fournit déjà la conversion Base58 du keypair complet.
|
||||
L'absence de dépendance `bs58` directe est désormais acquise : `pre.008` utilise le codec Base58 de keypair complète déjà fourni par `solana-keypair`, et `pre.009` confirme le graphe Cargo sans ajout correspondant.
|
||||
|
||||
## 23. Sources externes réauditées
|
||||
|
||||
@@ -1232,6 +1249,8 @@ cargo tree et diagnostics secrets sont audités
|
||||
README/USAGE/spec/vecteurs sont cohérents
|
||||
```
|
||||
|
||||
À `pre.010`, ces critères sont satisfaits par la candidate documentée et par le checkpoint opérateur `pre.009` vert. La publication stable reste conditionnée à la validation du delta documentaire puis au workflow `rel.001`.
|
||||
|
||||
## 25. Hors périmètre confirmé
|
||||
|
||||
```text
|
||||
@@ -1258,4 +1277,4 @@ Une future `format_version >= 2` pourra réétudier des facteurs/ancrages extern
|
||||
|
||||
## 26. Suite immédiate
|
||||
|
||||
`0.2.5-pre.003` fige le codec JSON strict, les limites structurelles, `slot_id` 16 octets, le descripteur VIEW, les DTOs d’enveloppe/key slots, les TLV transcript/AAD et la première spécification `docs/formats/KSPWALLET_V1.md`. `pre.004` ajoute Argon2id/XChaCha20-Poly1305/CSPRNG OS et le wrapping de content keys. Le benchmark opérateur permet à `pre.005` de retenir le profil initial `64 MiB / 3 / 1`, de figer les payloads `owner_control`/metadata/secret, d'introduire l'autorité Ed25519 OWNER distincte de la keypair Solana et de publier un vecteur complet. `pre.006` ajoute la persistence no-clobber et les ouvertures fichier. `pre.007` ajoute signature Solana, administration metadata, rotations OWNER/VIEW, révocation forte VIEW et remplacement administratif contrôlé. `pre.008` ajoute les adapters import/export Solana CLI JSON et keypair Base58 complet, l'inspection sûre, l'import vers un nouveau `.kspwallet` no-clobber et l'export OWNER explicite sans `bs58` direct. `pre.009` ajoute maintenant les canaris adversariaux, formalise les règles Wallet durables, reproduit les vecteurs hors Rust/KSP et audite le graphe Cargo/les duplications transitoires. **La suite immédiate est `pre.010` : documentation finale, README/USAGE Wallet, candidate de clôture et prompt `0.2.6`.**
|
||||
`0.2.5-pre.003` fige le codec JSON strict, les limites structurelles, `slot_id` 16 octets, le descripteur VIEW, les DTOs d’enveloppe/key slots, les TLV transcript/AAD et la première spécification `docs/formats/KSPWALLET_V1.md`. `pre.004` ajoute Argon2id/XChaCha20-Poly1305/CSPRNG OS et le wrapping de content keys. Le benchmark opérateur permet à `pre.005` de retenir le profil initial `64 MiB / 3 / 1`, de figer les payloads `owner_control`/metadata/secret, d'introduire l'autorité Ed25519 OWNER distincte de la keypair Solana et de publier un vecteur complet. `pre.006` ajoute la persistence no-clobber et les ouvertures fichier. `pre.007` ajoute signature Solana, administration metadata, rotations OWNER/VIEW, révocation forte VIEW et remplacement administratif contrôlé. `pre.008` ajoute les adapters import/export Solana CLI JSON et keypair Base58 complet, l'inspection sûre, l'import vers un nouveau `.kspwallet` no-clobber et l'export OWNER explicite sans `bs58` direct. `pre.009` ajoute les canaris adversariaux, formalise les règles Wallet durables, reproduit les vecteurs hors Rust/KSP et audite le graphe Cargo/les duplications transitoires. `pre.010` finalise README/USAGE, spec, graphes, matrice de validation et prompt `0.2.6` sans changement de code ni de Cargo version. **La suite immédiate est `0.2.5-rel.001`, strictement publicationnelle.**
|
||||
|
||||
Reference in New Issue
Block a user