v0.2.6-pre.008-fix.001

This commit is contained in:
2026-08-21 11:50:18 +02:00
parent 1a9edd14e1
commit 4db4087b8a
8 changed files with 34 additions and 13 deletions

View File

@@ -1,12 +1,12 @@
# file: Cargo.toml
# version: 175
# version: 176
[workspace]
resolver = "3"
members = ["crates/ksp-app-config-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-wallet-lib"]
[workspace.package]
version = "0.2.6-pre.8"
version = "0.2.6-pre.8.fix.1"
edition = "2024"
license = "MIT"
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
{
"name": "ksp-app-wallet-desk",
"private": true,
"version": "0.2.6-pre.8",
"version": "0.2.6-pre.8.fix.1",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-app-wallet-desk/src/app_state.rs
// version: 9
// version: 10
//! Shared backend state owned by the Wallet Desk Tauri application.
@@ -239,7 +239,7 @@ impl AppState {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return std::result::Result::Err(import_source_lock_error()),
};
let previous = std::mem::replace(&mut *slot, std::option::Option::Some(staged));
let previous = (*slot).replace(staged);
drop(previous);
ksp_logging_lib::info!(target: crate::TRACING_TARGET, domain = crate::TRACING_DOMAIN_WALLET_IMPORT, transfer_format = dto.format.code(), "Wallet transfer source inspected and staged in Rust-only memory");
return std::result::Result::Ok(dto);

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-app-wallet-desk/src/wallet_import.rs
// version: 1
// version: 2
//! Native-picker transfer import staging with bounded secret material kept only in Rust.
@@ -164,7 +164,7 @@ pub(crate) async fn stage_wallet_import_source(source: std::path::PathBuf, forma
};
let mut reader = file.take(read_limit);
let mut bytes = zeroize::Zeroizing::new(std::vec::Vec::with_capacity(maximum_source_bytes.saturating_add(1)));
let read_result = reader.read_to_end(&mut *bytes).await;
let read_result = reader.read_to_end(&mut bytes).await;
if let std::result::Result::Err(error) = read_result {
return std::result::Result::Err(
ksp_core_lib::Error::new(crate::ERROR_CODE_WALLET_IMPORT_SOURCE_INVALID, "Cannot read the selected Wallet transfer source").with_source(error),

View File

@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "KSP Wallet Desk",
"version": "0.2.6-pre.8",
"version": "0.2.6-pre.8.fix.1",
"identifier": "com.sasedev.ksp-app-wallet-desk",
"build": {
"beforeDevCommand": "npm run dev",

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md -->
<!-- version: 20 -->
<!-- version: 21 -->
# Plan `0.2.6` — Wallet Desk
@@ -1464,6 +1464,27 @@ La source n'est jamais parsée en TypeScript et son chemin n'est jamais sériali
Le plugin Dialog n'est pas exposé au guest JavaScript : aucun package npm `@tauri-apps/plugin-dialog`, aucune permission `dialog:*` et aucun plugin filesystem ne sont ajoutés. Le frontend ne reçoit que `source_name` (basename), `format` et `pubkey`. Les nouveaux passwords OWNER/VIEW transitent uniquement HTML/TypeScript -> Rust pour l'opération demandée, sont déplacés dans les wrappers Wallet, puis purgés côté frontend ; ils ne reviennent jamais dans une réponse.
#### `pre.008-fix.001` — conformité Clippy du staging import
Statut : **préparé après validation opérateur de `0.2.6-pre.008`**.
Le runtime et les tests fonctionnels de `pre.008` sont verts. Le gate `cargo clippy --workspace --all-targets` révèle uniquement deux warnings idiomatiques dans Wallet Desk :
```text
mem_replace_option_with_some -> utiliser Option::replace
explicit_auto_deref -> utiliser &mut bytes
```
Le fix applique strictement ces deux remédiations :
```rust
let previous = (*slot).replace(staged);
let read_result = reader.read_to_end(&mut bytes).await;
```
Aucun changement nest apporté au picker natif, à `Zeroizing<Vec<u8>>`, aux bornes de lecture, aux adapters Wallet dimport, au no-clobber, aux credentials, aux DTOs ou au frontend.
### `pre.009` — metadata OWNER
Objectifs :