v0.2.6-pre.008-fix.001
This commit is contained in:
@@ -1,12 +1,12 @@
|
|||||||
# file: Cargo.toml
|
# file: Cargo.toml
|
||||||
# version: 175
|
# version: 176
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
resolver = "3"
|
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"]
|
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]
|
[workspace.package]
|
||||||
version = "0.2.6-pre.8"
|
version = "0.2.6-pre.8.fix.1"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
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",
|
"name": "ksp-app-wallet-desk",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.2.6-pre.8",
|
"version": "0.2.6-pre.8.fix.1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// file: crates/ksp-app-wallet-desk/src/app_state.rs
|
// file: crates/ksp-app-wallet-desk/src/app_state.rs
|
||||||
// version: 9
|
// version: 10
|
||||||
|
|
||||||
//! Shared backend state owned by the Wallet Desk Tauri application.
|
//! 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::Ok(value) => value,
|
||||||
std::result::Result::Err(_) => return std::result::Result::Err(import_source_lock_error()),
|
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);
|
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");
|
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);
|
return std::result::Result::Ok(dto);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// file: crates/ksp-app-wallet-desk/src/wallet_import.rs
|
// 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.
|
//! 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 reader = file.take(read_limit);
|
||||||
let mut bytes = zeroize::Zeroizing::new(std::vec::Vec::with_capacity(maximum_source_bytes.saturating_add(1)));
|
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 {
|
if let std::result::Result::Err(error) = read_result {
|
||||||
return std::result::Result::Err(
|
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),
|
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",
|
"$schema": "https://schema.tauri.app/config/2",
|
||||||
"productName": "KSP Wallet Desk",
|
"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",
|
"identifier": "com.sasedev.ksp-app-wallet-desk",
|
||||||
"build": {
|
"build": {
|
||||||
"beforeDevCommand": "npm run dev",
|
"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 -->
|
<!-- file: docs/plans/013-V0_2_6_WALLET_DESK_PLAN.md -->
|
||||||
<!-- version: 20 -->
|
<!-- version: 21 -->
|
||||||
|
|
||||||
# Plan `0.2.6` — Wallet Desk
|
# 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.
|
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
|
### `pre.009` — metadata OWNER
|
||||||
|
|
||||||
Objectifs :
|
Objectifs :
|
||||||
|
|||||||
Reference in New Issue
Block a user