v0.2.6-pre.008-fix.001
This commit is contained in:
@@ -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
@@ -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",
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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
@@ -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 n’est apporté au picker natif, à `Zeroizing<Vec<u8>>`, aux bornes de lecture, aux adapters Wallet d’import, au no-clobber, aux credentials, aux DTOs ou au frontend.
|
||||
|
||||
### `pre.009` — metadata OWNER
|
||||
|
||||
Objectifs :
|
||||
|
||||
Reference in New Issue
Block a user