v0.2.6-pre.009

This commit is contained in:
2026-08-21 12:35:01 +02:00
parent 7d03825ec6
commit 2b7afab663
17 changed files with 970 additions and 41 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/ksp-app-wallet-desk/tests/desktop_security.rs
// version: 8
// version: 9
//! Static desktop security contracts for the Wallet Desk pre.002 shell.
@@ -162,3 +162,24 @@ fn import_picker_path_and_transfer_secret_never_cross_into_frontend() {
assert!(command.contains("WalletImportSourceRequestDto"));
assert!(!command.contains("source_path"));
}
#[test]
fn owner_metadata_values_are_request_only_and_state_conflict_forces_reauthorization() {
let root = app_root();
let metadata = read_text(root.join("src/wallet_metadata.rs").as_path());
let state = read_text(root.join("src/app_state.rs").as_path());
let main = read_text(root.join("frontend/ts/main.ts").as_path());
assert!(!metadata.contains("derive(Clone"));
assert!(!metadata.contains("derive(Debug"));
assert!(state.contains("recover_owner_metadata_state_conflict"));
assert!(state.contains("inspect_locked_wallet_file_v1"));
assert!(state.contains("ERROR_CODE_STATE_CONFLICT"));
assert!(main.contains("isWalletStateConflict"));
assert!(main.contains("select_wallet"));
assert!(main.contains("clearAuthorizedProjection"));
assert!(!main.contains("frontendDebug(\"main\", request.text"));
assert!(!main.contains("frontendTrace(\"main\", request.text"));
assert!(!main.contains("frontendDebug(\"main\", request.alias"));
assert!(!main.contains("window.confirm"));
assert!(main.contains("new Modal(modalElement)"));
}