Files
khadhroony-solana-project/deltas/0.2.6/pre.013.md
2026-08-21 17:15:40 +02:00

66 lines
3.4 KiB
Markdown

<!-- file: deltas/0.2.6/pre.013.md -->
<!-- version: 1 -->
# Delta `0.2.6-pre.013` — intégration / compliance / sécurité / smoke
## Objet
Consolider les preuves transversales de Wallet Desk avant le polish visuel et la documentation finale : frontières Config/Wallet/Transport, inventory/path adversarial, DTO/IPC secrets, capabilities Tauri, dependency firewall et smoke Devnet de composition réel.
## Changements
- `workspace.package.version` passe à `0.2.6-pre.13` ;
- ajout de `tests/release_compliance.rs` :
- interdiction des bypass `std::env`, `reqwest`, Solana crates et `tracing` direct côté backend ;
- audit frontend sans filesystem/dialog guest, réseau direct, storage/clipboard secret ou noms `KSP_SECRET_WALLET_PASS_*` ;
- audit global des DTO de réponse contre password/key material/ciphertext ;
- capability Tauri limitée à `core:default` + `tracing:default` ;
- firewall du manifest Wallet Desk contre dépendances `solana-*`, `reqwest` et `tracing` directes ;
- renforcement des tests inventory/path :
- inventory non récursif ;
- suffixe `.kspwallet` exact ;
- casse/backup/nested/directory ignorés ;
- traversal, absolute, nested, suffixe invalide et identifiant vide rejetés à la sélection ;
- ajout du smoke `tests/wallet_desk_devnet_smoke.rs`, opt-in/ignored :
- charge le composite Wallet Desk et `ConfigEnvironment` ;
- résout Wallet et Transport en provenance `Composite` ;
- crée un `.kspwallet` réel VIEW+OWNER sous le répertoire Config effectif ;
- inspecte locked puis ouvre VIEW ;
- exécute `getBalance(confirmed)` via `HttpTransportPool` ;
- supprime le wallet canari après la requête ;
- ajout de `tokio/macros` aux features locales Wallet Desk pour le test async opt-in ;
- création de `docs/validation/009-V0_2_6_WALLET_DESK_COMPLIANCE.md` et indexation dans `docs/validation/000-README.md` ;
- correction des index `docs/000-README.md` et `docs/plans/000-README.md` pour refléter la séquence désormais réelle `pre.014` polish puis `pre.015` clôture ;
- `shell_phase`, badge et footer réalignés sur `pre.013-integration-compliance` ;
- `ROADMAP.md`, `CHANGELOG.md` et `docs/plans/002-FUNCTIONAL_RELEASE_SEQUENCE.md` restent inchangés.
## Sécurité / architecture
Le smoke cross-crates vit dans Wallet Desk, surface d'orchestration légitime, et non dans Config ou Transport. Le test ne lit aucune variable KSP directement : `KSP_WALLETS_DIRECTORY` est consommée par `ConfigEnvironment` conformément à l'ownership Config.
Aucun secret supplémentaire ne traverse IPC. Aucune permission Tauri Dialog/FS n'est accordée au frontend. Aucun accès RPC n'est ajouté au frontend.
## Validation opérateur
```bash
cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-app-wallet-desk
cargo test --workspace
cargo tree -p ksp-app-wallet-desk --depth 1
cargo tree -p ksp-app-wallet-desk -d
cargo tree -i ksp-wallet-lib
cargo tree -i ksp-onchain-transport-lib
cargo tree -i tauri-plugin-dialog
KSP_WALLETS_DIRECTORY=var/wallet-desk-pre013-smoke \
cargo test -p ksp-app-wallet-desk \
--test wallet_desk_devnet_smoke \
-- --ignored --nocapture
```
`cargo tauri dev` n'est pas obligatoire pour cette tranche si le runtime `pre.012` déjà communiqué reste la dernière preuve UI, car `pre.013` ne change aucune interaction métier ; il reste acceptable comme contrôle supplémentaire. Aucun `cargo tauri build` avant `pre.015`.