From 256149fb2a8008425a32a563b1dd09d1f190981f Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Wed, 11 Dec 2024 21:06:22 +0100 Subject: [PATCH 01/25] mvp --- public/locales/en/common.json | 3 +- public/locales/en/setup-view.json | 1 + src-tauri/Cargo.lock | 560 +++++++++++++++--- src-tauri/Cargo.toml | 3 + src-tauri/src/commands.rs | 8 + src-tauri/src/main.rs | 13 + src-tauri/src/updates_manager.rs | 27 +- src-tauri/src/utils/mod.rs | 1 + src-tauri/src/utils/system_status.rs | 132 +++++ .../AutoUpdateDialog/AutoUpdateDialog.tsx | 20 +- 10 files changed, 692 insertions(+), 76 deletions(-) create mode 100644 src-tauri/src/utils/system_status.rs diff --git a/public/locales/en/common.json b/public/locales/en/common.json index ec8890c57..6d41601fb 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -28,5 +28,6 @@ "utilization": "Utilization", "version": "Version", "versions": "Versions", - "webgl-not-supported": "WebGL not supported. Disabled visual mode." + "webgl-not-supported": "WebGL not supported. Disabled visual mode.", + "close": "Close" } \ No newline at end of file diff --git a/public/locales/en/setup-view.json b/public/locales/en/setup-view.json index c9962c799..908844842 100644 --- a/public/locales/en/setup-view.json +++ b/public/locales/en/setup-view.json @@ -2,6 +2,7 @@ "dont-worry": "Don't worry, next time it won't take as long", "installing-latest-version": "Installing {{version}} version of Tari Universe", "new-tari-version-available": "A new version of Tari Universe is available!", + "could-not-auto-update": "We couldn't auto-update Tari Universe while machine was locked or in sleep mode. Restart app to proceed", "no": "No", "setting-up": "Setting up the Tari truth machine...", "this-might-take-a-few-minutes": "This might take a few minutes", diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 1e988a8d9..37ff89626 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -184,18 +184,40 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "async-broadcast" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d26004fe83b2d1cd3a97609b21e39f9a31535822210fe83205d2ce48866ea61" +dependencies = [ + "event-listener 2.5.3", + "futures-core", + "parking_lot", +] + [[package]] name = "async-broadcast" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" dependencies = [ - "event-listener", + "event-listener 5.3.1", "event-listener-strategy", "futures-core", "pin-project-lite", ] +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener 2.5.3", + "futures-core", +] + [[package]] name = "async-channel" version = "2.3.1" @@ -234,8 +256,8 @@ checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ "async-task", "concurrent-queue", - "fastrand", - "futures-lite", + "fastrand 2.3.0", + "futures-lite 2.5.0", "slab", ] @@ -245,9 +267,29 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" dependencies = [ - "async-lock", + "async-lock 3.4.0", "blocking", - "futures-lite", + "futures-lite 2.5.0", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.27", + "slab", + "socket2 0.4.10", + "waker-fn", ] [[package]] @@ -256,26 +298,35 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ - "async-lock", + "async-lock 3.4.0", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite", + "futures-lite 2.5.0", "parking", - "polling", - "rustix", + "polling 3.7.4", + "rustix 0.38.42", "slab", "tracing", "windows-sys 0.59.0", ] +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener 2.5.3", +] + [[package]] name = "async-lock" version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener", + "event-listener 5.3.1", "event-listener-strategy", "pin-project-lite", ] @@ -286,19 +337,30 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" dependencies = [ - "async-channel", - "async-io", - "async-lock", + "async-channel 2.3.1", + "async-io 2.4.0", + "async-lock 3.4.0", "async-signal", "async-task", "blocking", "cfg-if", - "event-listener", - "futures-lite", - "rustix", + "event-listener 5.3.1", + "futures-lite 2.5.0", + "rustix 0.38.42", "tracing", ] +[[package]] +name = "async-recursion" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7d78656ba01f1b93024b7c3a0467f1608e4be67d725749fdcd7d2c7678fd7a2" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "async-recursion" version = "1.1.1" @@ -316,13 +378,13 @@ version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" dependencies = [ - "async-io", - "async-lock", + "async-io 2.4.0", + "async-lock 3.4.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix", + "rustix 0.38.42", "signal-hook-registry", "slab", "windows-sys 0.59.0", @@ -376,7 +438,7 @@ dependencies = [ "async-compression", "chrono", "crc32fast", - "futures-lite", + "futures-lite 2.5.0", "pin-project 1.1.7", "thiserror 1.0.69", "tokio", @@ -624,10 +686,10 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ - "async-channel", + "async-channel 2.3.1", "async-task", "futures-io", - "futures-lite", + "futures-lite 2.5.0", "piper", ] @@ -1035,6 +1097,22 @@ dependencies = [ "roff", ] +[[package]] +name = "cocoa" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +dependencies = [ + "bitflags 1.3.2", + "block", + "cocoa-foundation 0.1.2", + "core-foundation 0.9.4", + "core-graphics 0.22.3", + "foreign-types 0.3.2", + "libc", + "objc", +] + [[package]] name = "cocoa" version = "0.26.0" @@ -1043,14 +1121,28 @@ checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" dependencies = [ "bitflags 2.6.0", "block", - "cocoa-foundation", + "cocoa-foundation 0.2.0", "core-foundation 0.10.0", - "core-graphics", + "core-graphics 0.24.0", "foreign-types 0.5.0", "libc", "objc", ] +[[package]] +name = "cocoa-foundation" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" +dependencies = [ + "bitflags 1.3.2", + "block", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", + "libc", + "objc", +] + [[package]] name = "cocoa-foundation" version = "0.2.0" @@ -1060,7 +1152,7 @@ dependencies = [ "bitflags 2.6.0", "block", "core-foundation 0.10.0", - "core-graphics-types", + "core-graphics-types 0.2.0", "libc", "objc", ] @@ -1150,6 +1242,19 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", + "foreign-types 0.3.2", + "libc", +] + [[package]] name = "core-graphics" version = "0.24.0" @@ -1158,11 +1263,22 @@ checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" dependencies = [ "bitflags 2.6.0", "core-foundation 0.10.0", - "core-graphics-types", + "core-graphics-types 0.2.0", "foreign-types 0.5.0", "libc", ] +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "libc", +] + [[package]] name = "core-graphics-types" version = "0.2.0" @@ -1839,6 +1955,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + [[package]] name = "event-listener" version = "5.3.1" @@ -1856,10 +1978,19 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" dependencies = [ - "event-listener", + "event-listener 5.3.1", "pin-project-lite", ] +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + [[package]] name = "fastrand" version = "2.3.0" @@ -1897,7 +2028,7 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ - "memoffset", + "memoffset 0.9.1", "rustc_version", ] @@ -2100,13 +2231,28 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + [[package]] name = "futures-lite" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" dependencies = [ - "fastrand", + "fastrand 2.3.0", "futures-core", "futures-io", "parking", @@ -2285,7 +2431,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc3655aa6818d65bc620d6911f05aa7b6aeb596291e1e9f79e52df85583d1e30" dependencies = [ - "rustix", + "rustix 0.38.42", "windows-targets 0.52.6", ] @@ -2567,6 +2713,12 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + [[package]] name = "hermit-abi" version = "0.4.0" @@ -2610,7 +2762,7 @@ version = "0.25.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8270a1857fb962b9914aafd46a89a187a4e63d0eb4190c327e7c7b8256a2d055" dependencies = [ - "async-recursion", + "async-recursion 1.1.1", "async-trait", "bitflags 2.6.0", "cfg-if", @@ -2844,7 +2996,7 @@ dependencies = [ "http-body", "hyper", "pin-project-lite", - "socket2", + "socket2 0.5.8", "tokio", "tower-service", "tracing", @@ -3153,13 +3305,24 @@ version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "ipconfig" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2", + "socket2 0.5.8", "widestring", "windows-sys 0.48.0", "winreg 0.50.0", @@ -3493,6 +3656,12 @@ dependencies = [ "libc", ] +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + [[package]] name = "linux-raw-sys" version = "0.4.14" @@ -3687,6 +3856,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + [[package]] name = "memoffset" version = "0.9.1" @@ -3775,7 +3953,7 @@ dependencies = [ "log", "mach2", "memmap2", - "memoffset", + "memoffset 0.9.1", "minidump-common", "nix 0.28.0", "procfs-core", @@ -3796,7 +3974,7 @@ dependencies = [ "log", "minidump-writer", "parking_lot", - "polling", + "polling 3.7.4", "scroll", "thiserror 1.0.69", "uds", @@ -4077,6 +4255,18 @@ dependencies = [ "smallvec", ] +[[package]] +name = "nix" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.6.5", +] + [[package]] name = "nix" version = "0.28.0" @@ -4099,7 +4289,7 @@ dependencies = [ "cfg-if", "cfg_aliases 0.2.1", "libc", - "memoffset", + "memoffset 0.9.1", ] [[package]] @@ -4564,6 +4754,16 @@ dependencies = [ "num-traits", ] +[[package]] +name = "ordered-stream" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44630c059eacfd6e08bdaa51b1db2ce33119caa4ddc1235e923109aa5f25ccb1" +dependencies = [ + "futures-core", + "pin-project-lite", +] + [[package]] name = "ordered-stream" version = "0.2.0" @@ -4941,7 +5141,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand", + "fastrand 2.3.0", "futures-io", ] @@ -4983,6 +5183,22 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + [[package]] name = "polling" version = "3.7.4" @@ -4991,9 +5207,9 @@ checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi", + "hermit-abi 0.4.0", "pin-project-lite", - "rustix", + "rustix 0.38.42", "tracing", "windows-sys 0.59.0", ] @@ -5263,6 +5479,25 @@ dependencies = [ "prost 0.13.4", ] +[[package]] +name = "psp" +version = "0.1.0" +source = "git+https://github.com/pewsheen/psp.git#ddef0c61aeedc0ad1891de31659fd6c2e1bcaedb" +dependencies = [ + "cocoa 0.24.1", + "core-foundation 0.9.4", + "core-graphics 0.22.3", + "crossbeam-channel", + "dispatch", + "libc", + "objc", + "png", + "scopeguard", + "tokio", + "windows 0.48.0", + "zbus 3.3.0", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -5290,7 +5525,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls", - "socket2", + "socket2 0.5.8", "thiserror 2.0.6", "tokio", "tracing", @@ -5325,7 +5560,7 @@ dependencies = [ "cfg_aliases 0.2.1", "libc", "once_cell", - "socket2", + "socket2 0.5.8", "tracing", "windows-sys 0.59.0", ] @@ -5676,6 +5911,20 @@ dependencies = [ "semver", ] +[[package]] +name = "rustix" +version = "0.37.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + [[package]] name = "rustix" version = "0.38.42" @@ -5685,7 +5934,7 @@ dependencies = [ "bitflags 2.6.0", "errno", "libc", - "linux-raw-sys", + "linux-raw-sys 0.4.14", "windows-sys 0.59.0", ] @@ -6212,6 +6461,15 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "sha1" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" +dependencies = [ + "sha1_smol", +] + [[package]] name = "sha1" version = "0.10.6" @@ -6223,6 +6481,12 @@ dependencies = [ "digest", ] +[[package]] +name = "sha1_smol" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" + [[package]] name = "sha2" version = "0.10.8" @@ -6357,6 +6621,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "socket2" version = "0.5.8" @@ -6375,7 +6649,7 @@ checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08" dependencies = [ "bytemuck", "cfg_aliases 0.2.1", - "core-graphics", + "core-graphics 0.24.0", "foreign-types 0.5.0", "js-sys", "log", @@ -6608,6 +6882,16 @@ dependencies = [ "syn 2.0.90", ] +[[package]] +name = "sys-info" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b3a0d0aba8bf96a0e1ddfdc352fc53b3df7f39318c71854910c3c4b024ae52c" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "sys-locale" version = "0.3.2" @@ -6672,9 +6956,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6682a07cf5bab0b8a2bd20d0a542917ab928b5edb75ebd4eda6b05cbaab872da" dependencies = [ "bitflags 2.6.0", - "cocoa", + "cocoa 0.26.0", "core-foundation 0.10.0", - "core-graphics", + "core-graphics 0.24.0", "crossbeam-channel", "dispatch", "dlopen2", @@ -6704,6 +6988,44 @@ dependencies = [ "x11-dl", ] +[[package]] +name = "tao" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6b53216f32e60efc27dfa111268481e4dfba53e553e4cdebcaed9db36c11bb" +dependencies = [ + "bitflags 2.6.0", + "cocoa 0.26.0", + "core-foundation 0.10.0", + "core-graphics 0.24.0", + "crossbeam-channel", + "dispatch", + "dlopen2", + "dpi", + "gdkwayland-sys", + "gdkx11-sys", + "gtk", + "jni", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "objc", + "once_cell", + "parking_lot", + "raw-window-handle", + "scopeguard", + "tao-macros", + "unicode-segmentation", + "url", + "windows 0.58.0", + "windows-core 0.58.0", + "windows-version", + "x11-dl", +] + [[package]] name = "tao-macros" version = "0.1.3" @@ -6766,7 +7088,7 @@ dependencies = [ "embed-resource", "fix-path-env", "flate2", - "futures-lite", + "futures-lite 2.5.0", "futures-util", "jsonwebtoken", "keyring", @@ -6781,6 +7103,7 @@ dependencies = [ "open", "openssl", "phraze", + "psp", "rand 0.8.5", "regex", "reqwest", @@ -6791,8 +7114,10 @@ dependencies = [ "serde_json", "serde_yaml", "sha2", + "sys-info", "sys-locale", "sysinfo", + "tao 0.31.0", "tar", "tari_common", "tari_common_types", @@ -7483,7 +7808,7 @@ dependencies = [ "thiserror 2.0.6", "tracing", "windows-sys 0.59.0", - "zbus", + "zbus 4.4.0", ] [[package]] @@ -7551,7 +7876,7 @@ dependencies = [ "percent-encoding", "raw-window-handle", "softbuffer", - "tao", + "tao 0.30.8", "tauri-runtime", "tauri-utils", "url", @@ -7615,9 +7940,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", - "fastrand", + "fastrand 2.3.0", "once_cell", - "rustix", + "rustix 0.38.42", "windows-sys 0.59.0", ] @@ -7795,7 +8120,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.8", "tokio-macros", "windows-sys 0.52.0", ] @@ -7973,7 +8298,7 @@ dependencies = [ "pin-project 1.1.7", "prost 0.13.4", "rustls-pemfile", - "socket2", + "socket2 0.5.8", "tokio", "tokio-rustls", "tokio-stream", @@ -8092,7 +8417,7 @@ version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d48a05076dd272615d03033bf04f480199f7d1b66a8ac64d75c625fc4a70c06b" dependencies = [ - "core-graphics", + "core-graphics 0.24.0", "crossbeam-channel", "dirs 5.0.1", "libappindicator", @@ -8149,7 +8474,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ - "memoffset", + "memoffset 0.9.1", "tempfile", "winapi", ] @@ -8433,6 +8758,12 @@ dependencies = [ "quote", ] +[[package]] +name = "waker-fn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" + [[package]] name = "walkdir" version = "2.5.0" @@ -8662,7 +8993,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix", + "rustix 0.38.42", ] [[package]] @@ -9246,8 +9577,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" dependencies = [ "libc", - "linux-raw-sys", - "rustix", + "linux-raw-sys 0.4.14", + "rustix 0.38.42", ] [[package]] @@ -9318,42 +9649,94 @@ dependencies = [ "synstructure 0.13.1", ] +[[package]] +name = "zbus" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41ce2de393c874ba871292e881bf3c13a0d5eb38170ebab2e50b4c410eaa222b" +dependencies = [ + "async-broadcast 0.4.1", + "async-channel 1.9.0", + "async-executor", + "async-io 1.13.0", + "async-lock 2.8.0", + "async-recursion 0.3.2", + "async-task", + "async-trait", + "byteorder", + "derivative", + "dirs 4.0.0", + "enumflags2", + "event-listener 2.5.3", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix 0.24.3", + "once_cell", + "ordered-stream 0.0.1", + "rand 0.8.5", + "serde", + "serde_repr", + "sha1 0.6.1", + "static_assertions", + "tracing", + "uds_windows", + "winapi", + "zbus_macros 3.3.0", + "zbus_names 2.2.0", + "zvariant 3.7.1", +] + [[package]] name = "zbus" version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725" dependencies = [ - "async-broadcast", + "async-broadcast 0.7.1", "async-executor", "async-fs", - "async-io", - "async-lock", + "async-io 2.4.0", + "async-lock 3.4.0", "async-process", - "async-recursion", + "async-recursion 1.1.1", "async-task", "async-trait", "blocking", "enumflags2", - "event-listener", + "event-listener 5.3.1", "futures-core", "futures-sink", "futures-util", "hex", "nix 0.29.0", - "ordered-stream", + "ordered-stream 0.2.0", "rand 0.8.5", "serde", "serde_repr", - "sha1", + "sha1 0.10.6", "static_assertions", "tracing", "uds_windows", "windows-sys 0.52.0", "xdg-home", - "zbus_macros", - "zbus_names", - "zvariant", + "zbus_macros 4.4.0", + "zbus_names 3.0.0", + "zvariant 4.2.0", +] + +[[package]] +name = "zbus_macros" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13d08f5dc6cf725b693cb6ceacd43cd430ec0664a879188f29e7d7dcd98f96d" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", ] [[package]] @@ -9369,6 +9752,17 @@ dependencies = [ "zvariant_utils", ] +[[package]] +name = "zbus_names" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a408fd8a352695690f53906dc7fd036be924ec51ea5e05666ff42685ed0af5" +dependencies = [ + "serde", + "static_assertions", + "zvariant 3.7.1", +] + [[package]] name = "zbus_names" version = "3.0.0" @@ -9377,7 +9771,7 @@ checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" dependencies = [ "serde", "static_assertions", - "zvariant", + "zvariant 4.2.0", ] [[package]] @@ -9485,7 +9879,7 @@ dependencies = [ "memchr", "pbkdf2", "rand 0.8.5", - "sha1", + "sha1 0.10.6", "thiserror 2.0.6", "time", "zeroize", @@ -9535,6 +9929,20 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "zvariant" +version = "3.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794fb7f59af4105697b0449ba31731ee5dbb3e773a17dbdf3d36206ea1b1644" +dependencies = [ + "byteorder", + "enumflags2", + "libc", + "serde", + "static_assertions", + "zvariant_derive 3.7.1", +] + [[package]] name = "zvariant" version = "4.2.0" @@ -9545,7 +9953,19 @@ dependencies = [ "enumflags2", "serde", "static_assertions", - "zvariant_derive", + "zvariant_derive 4.2.0", +] + +[[package]] +name = "zvariant_derive" +version = "3.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd58d4b6c8e26d3dd2149c8c40c6613ef6451b9885ff1296d1ac86c388351a54" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 466cb128b..090d6ffb0 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -90,6 +90,9 @@ tauri-plugin-process = "2" # temporary fix for openssl openssl = { version = "0.10", features = ["vendored"] } +sys-info = "0.9.1" +psp = { git = "https://github.com/pewsheen/psp.git", version = "0.1.0" } +tao = "0.31.0" [target.'cfg(windows)'.dependencies] winreg = "0.52.0" diff --git a/src-tauri/src/commands.rs b/src-tauri/src/commands.rs index fc3f05ed3..ef1c78d34 100644 --- a/src-tauri/src/commands.rs +++ b/src-tauri/src/commands.rs @@ -36,6 +36,7 @@ use crate::p2pool::models::{Connections, Stats}; use crate::progress_tracker::ProgressTracker; use crate::tor_adapter::TorConfig; use crate::utils::shutdown_utils::stop_all_processes; +use crate::utils::system_status::SystemStatus; use crate::wallet_adapter::{TransactionInfo, WalletBalance}; use crate::wallet_manager::WalletManagerError; use crate::{setup_inner, UniverseAppState, APPLICATION_FOLDER_ID}; @@ -1019,6 +1020,13 @@ pub async fn set_auto_update( .await .inspect_err(|e| error!(target: LOG_TARGET, "error at set_auto_update {:?}", e)) .map_err(|e| e.to_string())?; + + if auto_update { + SystemStatus::current().spawn_listener().await.map_err(|e| e.to_string())?; + }else { + SystemStatus::current().stop_listener().await.map_err(|e| e.to_string())?; + } + if timer.elapsed() > MAX_ACCEPTABLE_COMMAND_TIME { warn!(target: LOG_TARGET, "set_auto_update took too long: {:?}", timer.elapsed()); } diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index ba5596c56..6035eb7e6 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -28,6 +28,7 @@ use hardware::hardware_status_monitor::HardwareStatusMonitor; use log::trace; use log::{debug, error, info, warn}; use p2pool::models::Connections; +use utils::system_status::SystemStatus; use std::fs::{create_dir_all, remove_dir_all, remove_file, File}; use tokio::sync::watch::{self}; use updates_manager::UpdatesManager; @@ -154,6 +155,9 @@ async fn setup_inner( state: tauri::State<'_, UniverseAppState>, app: tauri::AppHandle, ) -> Result<(), anyhow::Error> { + + SystemStatus::current().spawn_listener().await?; + app.emit( "message", SetupStatusEvent { @@ -218,8 +222,17 @@ async fn setup_inner( let cpu_miner_config = state.cpu_miner_config.read().await; let app_config = state.config.read().await; + let use_tor = app_config.use_tor(); + let is_auto_update_enabled = app_config.auto_update(); drop(app_config); + + if is_auto_update_enabled { + SystemStatus::current().spawn_listener().await?; + }else { + SystemStatus::current().stop_listener().await?; + } + let mm_proxy_manager = state.mm_proxy_manager.clone(); let is_auto_launcher_enabled = state.config.read().await.should_auto_launch(); diff --git a/src-tauri/src/updates_manager.rs b/src-tauri/src/updates_manager.rs index 7b38e9f35..3b150a1a8 100644 --- a/src-tauri/src/updates_manager.rs +++ b/src-tauri/src/updates_manager.rs @@ -31,10 +31,9 @@ use tauri::{Emitter, Url}; use tauri_plugin_updater::{Update, UpdaterExt}; use tokio::sync::RwLock; -use crate::app_config::AppConfig; +use crate::{app_config::AppConfig, utils::system_status::SystemStatus}; use tari_shutdown::ShutdownSignal; use tokio::time::Duration; - const LOG_TARGET: &str = "tari::universe::updates_manager"; #[derive(Clone, Debug, Serialize, Deserialize)] @@ -54,6 +53,21 @@ impl DownloadProgressPayload { } } +#[derive(Clone, Debug, Serialize, Deserialize)] +pub struct CouldNotUpdatePayload { + pub event_type: String, + pub version: String, +} + +impl CouldNotUpdatePayload { + pub fn new(version: String) -> Self { + Self { + event_type: "could_not_update".to_string(), + version, + } + } +} + #[derive(Clone, Debug, Serialize, Deserialize)] pub struct AskForUpdatePayload { pub event_type: String, @@ -78,6 +92,7 @@ pub struct UpdatesManager { impl UpdatesManager { pub fn new(config: Arc>, app_shutdown: ShutdownSignal) -> Self { + Self { config, update: Arc::new(RwLock::new(None)), @@ -118,7 +133,13 @@ impl UpdatesManager { *self.update.write().await = Some(update); let is_auto_update = self.config.read().await.auto_update(); - if force { + let is_screen_locked = true; + // let is_screen_locked = SystemStatus::current().is_in_sleep_mode().await; + + if is_screen_locked { + info!(target: LOG_TARGET, "try_update: Screen is locked. Displaying notification"); + } + else if force { info!(target: LOG_TARGET, "try_update: Proceeding with force update"); self.proceed_with_update(app.clone()).await?; } else if is_auto_update { diff --git a/src-tauri/src/utils/mod.rs b/src-tauri/src/utils/mod.rs index 2d57f834e..0d3ab7a6e 100644 --- a/src-tauri/src/utils/mod.rs +++ b/src-tauri/src/utils/mod.rs @@ -27,3 +27,4 @@ pub mod macos_utils; pub mod platform_utils; pub mod setup_utils; pub mod shutdown_utils; +pub mod system_status; \ No newline at end of file diff --git a/src-tauri/src/utils/system_status.rs b/src-tauri/src/utils/system_status.rs new file mode 100644 index 000000000..df2f7f7c8 --- /dev/null +++ b/src-tauri/src/utils/system_status.rs @@ -0,0 +1,132 @@ +// Copyright 2024. The Tari Project +// +// Redistribution and use in source and binary forms, with or without modification, are permitted provided that the +// following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following +// disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the +// following disclaimer in the documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote +// products derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, +// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +// USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +use std::{sync::LazyLock, time::Duration}; + +use anyhow::{anyhow, Error}; +use log::info; +use psp::monitor::{PowerMonitor,PowerState}; +use tokio::sync::RwLock; +use tokio_util::sync::CancellationToken; + + +const LOG_TARGET: &str = "tari::universe::external_dependencies"; + +static INSTANCE: LazyLock = LazyLock::new(SystemStatus::new); + + +pub struct SystemStatus { + power_monitor: PowerMonitor, + cancelation_token: RwLock>, + is_in_sleep_mode: RwLock, +} + +impl SystemStatus { + fn new() -> Self { + let power_monitor = PowerMonitor::new(); + SystemStatus::start_listener(&power_monitor).expect("Error starting listener"); + + Self { + power_monitor, + cancelation_token: RwLock::new(None), + is_in_sleep_mode: RwLock::new(false) + } + } + + + fn start_listener(power_monitor: &PowerMonitor) -> Result<(), Error> { + power_monitor.start_listening().map_err(|e| anyhow!(e))?; + Ok(()) + } + + async fn recive_power_event(&self) -> Result<(), Error> { + let capacity = self.power_monitor.event_receiver().capacity(); + info!(target: LOG_TARGET, "Capacity: {:?}", capacity); + let is_empty = self.power_monitor.event_receiver().is_empty(); + info!(target: LOG_TARGET, "Is empty: {:?}", is_empty); + // let event = self.power_monitor.event_receiver().try_recv().map_err(|e| anyhow!(e))?; + // info!(target: LOG_TARGET, "Power event: {:?}", event); + + if let Ok(event) = self.power_monitor.event_receiver().try_recv() { + info!(target: LOG_TARGET, "Power event: {:?}", event); + match event { + PowerState::ScreenLocked => { + info!(target: LOG_TARGET, "Screen locked"); + *self.is_in_sleep_mode.write().await = true; + }, + PowerState::Suspend => { + info!(target: LOG_TARGET, "Suspend"); + *self.is_in_sleep_mode.write().await = true; + }, + _ => { + info!(target: LOG_TARGET, "Other event"); + *self.is_in_sleep_mode.write().await = false; + } + } + } + + Ok(()) + } + + pub async fn spawn_listener(&self) -> Result<(), Error> { + let cancelation_token = CancellationToken::new(); + *self.cancelation_token.write().await = Some(cancelation_token.clone()); + + tokio::spawn(async move { + tokio::select! { + _ = cancelation_token.cancelled() => { + info!(target: LOG_TARGET, "Listener canceled"); + }, + _ = async { + loop { + info!(target: LOG_TARGET, "Listener started"); + SystemStatus::current().recive_power_event().await.expect("Error reciving power event"); + tokio::time::sleep(Duration::from_secs(1)).await; + } + } => { + info!(target: LOG_TARGET, "Listener finished"); + } + } + }); + + Ok(()) + } + + pub async fn stop_listener(&self) -> Result<(), Error> { + info!(target: LOG_TARGET, "Stopping listener"); + if let Some(cancelation_token) = self.cancelation_token.read().await.as_ref() { + cancelation_token.cancel(); + info!(target: LOG_TARGET, "Listener canceled"); + } + Ok(()) + } + + + pub async fn is_in_sleep_mode(&self) -> bool { + *self.is_in_sleep_mode.read().await + } + + + pub fn current() -> &'static SystemStatus { + &INSTANCE + } +} diff --git a/src/containers/floating/AutoUpdateDialog/AutoUpdateDialog.tsx b/src/containers/floating/AutoUpdateDialog/AutoUpdateDialog.tsx index fcf0c723b..c23bbcb36 100644 --- a/src/containers/floating/AutoUpdateDialog/AutoUpdateDialog.tsx +++ b/src/containers/floating/AutoUpdateDialog/AutoUpdateDialog.tsx @@ -23,6 +23,11 @@ interface AskForUpdatePayload { version: string; } +interface CouldNotUpdatePayload { + event_type: 'could_not_update'; + error: string; +} + export default function AutoUpdateDialog() { const { t } = useTranslation('setup-view', { useSuspense: false }); const open = useUIStore((s) => s.dialogToShow === 'autoUpdate'); @@ -30,6 +35,7 @@ export default function AutoUpdateDialog() { const [version, setVersion] = useState(''); const [downloaded, setDownloaded] = useState(0); const [contentLength, setContentLength] = useState(0); + const [couldNotUpdate, setCouldNotUpdate] = useState(false); const isDownloading = downloaded > 0; const isDownloaded = isDownloading && downloaded === contentLength; @@ -38,7 +44,7 @@ export default function AutoUpdateDialog() { useEffect(() => { const unlistenPromise = listen( 'updates_event', - ({ payload }: { payload: AskForUpdatePayload | DownloadProgressPayload }) => { + ({ payload }: { payload: AskForUpdatePayload | DownloadProgressPayload | CouldNotUpdatePayload }) => { switch (payload.event_type) { case 'ask_for_update': setDialogToShow('autoUpdate'); @@ -52,6 +58,10 @@ export default function AutoUpdateDialog() { setDownloaded(payload.downloaded); setContentLength(payload.total); break; + case 'could_not_update': + setDialogToShow('autoUpdate'); + setCouldNotUpdate(true); + break; default: console.warn('Unknown tauri event: ', payload); break; @@ -78,10 +88,11 @@ export default function AutoUpdateDialog() { {t('new-tari-version-available')} {t(subtitle, { version })} + {couldNotUpdate && {t('could-not-auto-update')}} {isDownloading && } {isDownloaded && {`Update downloaded: Restarting Tari Universe`}} - {!isDownloading && ( + {!isDownloading && !couldNotUpdate && ( <> {t('no')} @@ -91,6 +102,11 @@ export default function AutoUpdateDialog() { )} + {isDownloaded && ( + + {t('close')} + + )} From 3d37eaf0c1e392c3d76ef0eb470063b16c2b5fca Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Thu, 12 Dec 2024 08:21:58 +0100 Subject: [PATCH 02/25] comment up testing stuff --- public/locales/en/setup-view.json | 2 +- .../AutoUpdateDialog/AutoUpdateDialog.tsx | 21 ++++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/public/locales/en/setup-view.json b/public/locales/en/setup-view.json index 908844842..f8e5d6313 100644 --- a/public/locales/en/setup-view.json +++ b/public/locales/en/setup-view.json @@ -2,7 +2,7 @@ "dont-worry": "Don't worry, next time it won't take as long", "installing-latest-version": "Installing {{version}} version of Tari Universe", "new-tari-version-available": "A new version of Tari Universe is available!", - "could-not-auto-update": "We couldn't auto-update Tari Universe while machine was locked or in sleep mode. Restart app to proceed", + "could-not-auto-update": "We couldn't auto update Tari Universe to {{version}} while machine was locked or in sleep mode. Restart app to proceed", "no": "No", "setting-up": "Setting up the Tari truth machine...", "this-might-take-a-few-minutes": "This might take a few minutes", diff --git a/src/containers/floating/AutoUpdateDialog/AutoUpdateDialog.tsx b/src/containers/floating/AutoUpdateDialog/AutoUpdateDialog.tsx index c23bbcb36..23f4f5c79 100644 --- a/src/containers/floating/AutoUpdateDialog/AutoUpdateDialog.tsx +++ b/src/containers/floating/AutoUpdateDialog/AutoUpdateDialog.tsx @@ -28,6 +28,17 @@ interface CouldNotUpdatePayload { error: string; } +const resolveSubtitle = (isDownloading: boolean, couldNotUpdate: boolean) => { + switch (true) { + case isDownloading: + return 'installing-latest-version'; + case couldNotUpdate: + return 'could-not-auto-update'; + default: + return 'would-you-like-to-install'; + } +}; + export default function AutoUpdateDialog() { const { t } = useTranslation('setup-view', { useSuspense: false }); const open = useUIStore((s) => s.dialogToShow === 'autoUpdate'); @@ -39,7 +50,12 @@ export default function AutoUpdateDialog() { const isDownloading = downloaded > 0; const isDownloaded = isDownloading && downloaded === contentLength; - const subtitle = isDownloading ? 'installing-latest-version' : 'would-you-like-to-install'; + const subtitle = resolveSubtitle(isDownloading, couldNotUpdate); + + // useEffect(() => { + // setDialogToShow('autoUpdate'); + // setCouldNotUpdate(true); + // }, []); useEffect(() => { const unlistenPromise = listen( @@ -88,7 +104,6 @@ export default function AutoUpdateDialog() { {t('new-tari-version-available')} {t(subtitle, { version })} - {couldNotUpdate && {t('could-not-auto-update')}} {isDownloading && } {isDownloaded && {`Update downloaded: Restarting Tari Universe`}} @@ -102,7 +117,7 @@ export default function AutoUpdateDialog() { )} - {isDownloaded && ( + {couldNotUpdate && ( {t('close')} From 71d1e2389bc0c20109ea4aff8315c3b1fd97b3a9 Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Thu, 12 Dec 2024 15:10:57 +0100 Subject: [PATCH 03/25] adjustments --- public/locales/en/common.json | 3 +- public/locales/en/setup-view.json | 2 +- src-tauri/Cargo.lock | 74 +++++++++---------- src-tauri/Cargo.toml | 2 +- src-tauri/src/updates_manager.rs | 16 +++- src-tauri/tauri.conf.json | 2 +- .../AutoUpdateDialog/AutoUpdateDialog.tsx | 16 ++-- 7 files changed, 59 insertions(+), 56 deletions(-) diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 6d41601fb..9f12e125c 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -29,5 +29,6 @@ "version": "Version", "versions": "Versions", "webgl-not-supported": "WebGL not supported. Disabled visual mode.", - "close": "Close" + "close": "Close", + "update": "Update" } \ No newline at end of file diff --git a/public/locales/en/setup-view.json b/public/locales/en/setup-view.json index f8e5d6313..b9774c85d 100644 --- a/public/locales/en/setup-view.json +++ b/public/locales/en/setup-view.json @@ -2,7 +2,7 @@ "dont-worry": "Don't worry, next time it won't take as long", "installing-latest-version": "Installing {{version}} version of Tari Universe", "new-tari-version-available": "A new version of Tari Universe is available!", - "could-not-auto-update": "We couldn't auto update Tari Universe to {{version}} while machine was locked or in sleep mode. Restart app to proceed", + "could-not-auto-update": "We couldn't auto update Tari Universe to {{version}} while machine was locked or in sleep mode.", "no": "No", "setting-up": "Setting up the Tari truth machine...", "this-might-take-a-few-minutes": "This might take a few minutes", diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 9786d3c57..ca49a3a0c 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -512,8 +512,8 @@ dependencies = [ "pin-project-lite", "rustversion", "serde", - "sync_wrapper 1.0.2", - "tower 0.5.1", + "sync_wrapper", + "tower 0.5.2", "tower-layer", "tower-service", ] @@ -533,7 +533,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper 1.0.2", + "sync_wrapper", "tower-layer", "tower-service", ] @@ -4017,7 +4017,7 @@ dependencies = [ [[package]] name = "minotari_app_grpc" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "argon2", "base64 0.13.1", @@ -4047,7 +4047,7 @@ dependencies = [ [[package]] name = "minotari_ledger_wallet_common" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "bs58 0.5.1", ] @@ -4055,7 +4055,7 @@ dependencies = [ [[package]] name = "minotari_node_grpc_client" version = "0.1.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "minotari_app_grpc", ] @@ -4063,7 +4063,7 @@ dependencies = [ [[package]] name = "minotari_wallet_grpc_client" version = "0.1.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "minotari_app_grpc", "tari_common_types", @@ -5754,9 +5754,9 @@ checksum = "be105c72a1e6a5a1198acee3d5b506a15676b74a02ecd78060042a447f408d94" [[package]] name = "redox_syscall" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ "bitflags 2.6.0", ] @@ -5837,7 +5837,7 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.2", + "sync_wrapper", "system-configuration", "tokio", "tokio-native-tls", @@ -5940,9 +5940,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.19" +version = "0.23.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "934b404430bb06b3fae2cba809eb45a1ab1aecd64491213d7c3301b88393f8d1" +checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" dependencies = [ "log", "once_cell", @@ -6844,12 +6844,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - [[package]] name = "sync_wrapper" version = "1.0.2" @@ -7072,7 +7066,7 @@ dependencies = [ [[package]] name = "tari-universe" -version = "0.8.13" +version = "0.8.11" dependencies = [ "anyhow", "async-trait", @@ -7166,7 +7160,7 @@ dependencies = [ [[package]] name = "tari_common" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "anyhow", "config", @@ -7190,7 +7184,7 @@ dependencies = [ [[package]] name = "tari_common_sqlite" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "diesel", "diesel_migrations", @@ -7204,7 +7198,7 @@ dependencies = [ [[package]] name = "tari_common_types" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "base64 0.21.7", "bitflags 2.6.0", @@ -7230,7 +7224,7 @@ dependencies = [ [[package]] name = "tari_comms" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "anyhow", "async-trait", @@ -7274,7 +7268,7 @@ dependencies = [ [[package]] name = "tari_comms_dht" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "anyhow", "bitflags 2.6.0", @@ -7309,7 +7303,7 @@ dependencies = [ [[package]] name = "tari_comms_rpc_macros" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "proc-macro2", "quote", @@ -7319,7 +7313,7 @@ dependencies = [ [[package]] name = "tari_core" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "anyhow", "async-trait", @@ -7413,12 +7407,12 @@ dependencies = [ [[package]] name = "tari_features" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" [[package]] name = "tari_hashing" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "borsh", "digest", @@ -7428,7 +7422,7 @@ dependencies = [ [[package]] name = "tari_key_manager" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "argon2", "async-trait", @@ -7461,7 +7455,7 @@ dependencies = [ [[package]] name = "tari_max_size" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "borsh", "serde", @@ -7472,7 +7466,7 @@ dependencies = [ [[package]] name = "tari_mmr" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "borsh", "digest", @@ -7486,7 +7480,7 @@ dependencies = [ [[package]] name = "tari_p2p" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "anyhow", "fs2", @@ -7518,7 +7512,7 @@ dependencies = [ [[package]] name = "tari_script" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "blake2", "borsh", @@ -7536,7 +7530,7 @@ dependencies = [ [[package]] name = "tari_service_framework" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "anyhow", "async-trait", @@ -7551,7 +7545,7 @@ dependencies = [ [[package]] name = "tari_shutdown" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "futures 0.3.31", ] @@ -7559,7 +7553,7 @@ dependencies = [ [[package]] name = "tari_storage" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "bincode", "lmdb-zero", @@ -7571,7 +7565,7 @@ dependencies = [ [[package]] name = "tari_test_utils" version = "1.9.1-pre.0" -source = "git+https://github.com/tari-project/tari.git?branch=development#b127883b8df10f7404caa184d083099f9d273eac" +source = "git+https://github.com/tari-project/tari.git?branch=development#4154c3240a1aad5dce0dd0ab25c092456d5a82b5" dependencies = [ "futures 0.3.31", "rand 0.8.5", @@ -8345,14 +8339,14 @@ dependencies = [ [[package]] name = "tower" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 0.1.2", + "sync_wrapper", "tower-layer", "tower-service", ] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 91a125fc6..090d6ffb0 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -4,7 +4,7 @@ description = "Tari Universe" edition = "2021" name = "tari-universe" repository = "https://github.com/tari-project/universe" -version = "0.8.13" +version = "0.8.11" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/src-tauri/src/updates_manager.rs b/src-tauri/src/updates_manager.rs index 3b150a1a8..42a43c01e 100644 --- a/src-tauri/src/updates_manager.rs +++ b/src-tauri/src/updates_manager.rs @@ -104,7 +104,7 @@ impl UpdatesManager { let app_clone = app.clone(); let self_clone = self.clone(); tauri::async_runtime::spawn(async move { - let mut interval = time::interval(Duration::from_secs(3600)); + let mut interval = time::interval(Duration::from_secs(300)); loop { if self_clone.app_shutdown.is_triggered() && self_clone.app_shutdown.is_triggered() { @@ -133,11 +133,19 @@ impl UpdatesManager { *self.update.write().await = Some(update); let is_auto_update = self.config.read().await.auto_update(); - let is_screen_locked = true; - // let is_screen_locked = SystemStatus::current().is_in_sleep_mode().await; + let is_screen_locked = SystemStatus::current().is_in_sleep_mode().await; - if is_screen_locked { + info!(target: LOG_TARGET, "try_update: Screen locked: {}", is_screen_locked); + + if is_screen_locked && is_auto_update { info!(target: LOG_TARGET, "try_update: Screen is locked. Displaying notification"); + let payload = CouldNotUpdatePayload { + event_type: "could_not_update".to_string(), + version, + }; + drop(app.emit("updates_event", payload).inspect_err(|e| { + warn!(target: LOG_TARGET, "Failed to emit 'updates-event' with CouldNotUpdatePayload: {}", e); + })); } else if force { info!(target: LOG_TARGET, "try_update: Proceeding with force update"); diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index d3b6d4ae9..d82a40b19 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,5 +1,5 @@ { - "version": "0.8.13", + "version": "0.8.11", "productName": "Tari Universe (Alpha)", "mainBinaryName": "Tari Universe (Alpha)", "identifier": "com.tari.universe.alpha", diff --git a/src/containers/floating/AutoUpdateDialog/AutoUpdateDialog.tsx b/src/containers/floating/AutoUpdateDialog/AutoUpdateDialog.tsx index 23f4f5c79..a40592f7a 100644 --- a/src/containers/floating/AutoUpdateDialog/AutoUpdateDialog.tsx +++ b/src/containers/floating/AutoUpdateDialog/AutoUpdateDialog.tsx @@ -52,11 +52,6 @@ export default function AutoUpdateDialog() { const isDownloaded = isDownloading && downloaded === contentLength; const subtitle = resolveSubtitle(isDownloading, couldNotUpdate); - // useEffect(() => { - // setDialogToShow('autoUpdate'); - // setCouldNotUpdate(true); - // }, []); - useEffect(() => { const unlistenPromise = listen( 'updates_event', @@ -118,9 +113,14 @@ export default function AutoUpdateDialog() { )} {couldNotUpdate && ( - - {t('close')} - + <> + + {t('update')} + + + {t('close')} + + )} From 0b904111e59f8fb72b655fa6e916a1a808c37aa5 Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Thu, 12 Dec 2024 15:11:37 +0100 Subject: [PATCH 04/25] fix machete --- src-tauri/Cargo.lock | 52 +------------------------------------------- src-tauri/Cargo.toml | 2 -- 2 files changed, 1 insertion(+), 53 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index ca49a3a0c..dc2aecfa7 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -6876,16 +6876,6 @@ dependencies = [ "syn 2.0.90", ] -[[package]] -name = "sys-info" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b3a0d0aba8bf96a0e1ddfdc352fc53b3df7f39318c71854910c3c4b024ae52c" -dependencies = [ - "cc", - "libc", -] - [[package]] name = "sys-locale" version = "0.3.2" @@ -6982,44 +6972,6 @@ dependencies = [ "x11-dl", ] -[[package]] -name = "tao" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6b53216f32e60efc27dfa111268481e4dfba53e553e4cdebcaed9db36c11bb" -dependencies = [ - "bitflags 2.6.0", - "cocoa 0.26.0", - "core-foundation 0.10.0", - "core-graphics 0.24.0", - "crossbeam-channel", - "dispatch", - "dlopen2", - "dpi", - "gdkwayland-sys", - "gdkx11-sys", - "gtk", - "jni", - "lazy_static", - "libc", - "log", - "ndk", - "ndk-context", - "ndk-sys", - "objc", - "once_cell", - "parking_lot", - "raw-window-handle", - "scopeguard", - "tao-macros", - "unicode-segmentation", - "url", - "windows 0.58.0", - "windows-core 0.58.0", - "windows-version", - "x11-dl", -] - [[package]] name = "tao-macros" version = "0.1.3" @@ -7108,10 +7060,8 @@ dependencies = [ "serde_json", "serde_yaml", "sha2", - "sys-info", "sys-locale", "sysinfo", - "tao 0.31.0", "tar", "tari_common", "tari_common_types", @@ -7870,7 +7820,7 @@ dependencies = [ "percent-encoding", "raw-window-handle", "softbuffer", - "tao 0.30.8", + "tao", "tauri-runtime", "tauri-utils", "url", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 090d6ffb0..e5863e75b 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -90,9 +90,7 @@ tauri-plugin-process = "2" # temporary fix for openssl openssl = { version = "0.10", features = ["vendored"] } -sys-info = "0.9.1" psp = { git = "https://github.com/pewsheen/psp.git", version = "0.1.0" } -tao = "0.31.0" [target.'cfg(windows)'.dependencies] winreg = "0.52.0" From cd20b81d3ec7b31381d2917a375d8e836fc57116 Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Thu, 12 Dec 2024 15:12:07 +0100 Subject: [PATCH 05/25] cargo fmt --- src-tauri/src/commands.rs | 12 +++++++++--- src-tauri/src/main.rs | 5 ++--- src-tauri/src/updates_manager.rs | 4 +--- src-tauri/src/utils/mod.rs | 2 +- src-tauri/src/utils/system_status.rs | 13 ++++--------- 5 files changed, 17 insertions(+), 19 deletions(-) diff --git a/src-tauri/src/commands.rs b/src-tauri/src/commands.rs index ef1c78d34..0a9841405 100644 --- a/src-tauri/src/commands.rs +++ b/src-tauri/src/commands.rs @@ -1022,9 +1022,15 @@ pub async fn set_auto_update( .map_err(|e| e.to_string())?; if auto_update { - SystemStatus::current().spawn_listener().await.map_err(|e| e.to_string())?; - }else { - SystemStatus::current().stop_listener().await.map_err(|e| e.to_string())?; + SystemStatus::current() + .spawn_listener() + .await + .map_err(|e| e.to_string())?; + } else { + SystemStatus::current() + .stop_listener() + .await + .map_err(|e| e.to_string())?; } if timer.elapsed() > MAX_ACCEPTABLE_COMMAND_TIME { diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 6035eb7e6..ffdafe1ad 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -28,10 +28,10 @@ use hardware::hardware_status_monitor::HardwareStatusMonitor; use log::trace; use log::{debug, error, info, warn}; use p2pool::models::Connections; -use utils::system_status::SystemStatus; use std::fs::{create_dir_all, remove_dir_all, remove_file, File}; use tokio::sync::watch::{self}; use updates_manager::UpdatesManager; +use utils::system_status::SystemStatus; use log4rs::config::RawConfig; use serde::Serialize; @@ -155,7 +155,6 @@ async fn setup_inner( state: tauri::State<'_, UniverseAppState>, app: tauri::AppHandle, ) -> Result<(), anyhow::Error> { - SystemStatus::current().spawn_listener().await?; app.emit( @@ -229,7 +228,7 @@ async fn setup_inner( if is_auto_update_enabled { SystemStatus::current().spawn_listener().await?; - }else { + } else { SystemStatus::current().stop_listener().await?; } diff --git a/src-tauri/src/updates_manager.rs b/src-tauri/src/updates_manager.rs index 42a43c01e..a31b6ce80 100644 --- a/src-tauri/src/updates_manager.rs +++ b/src-tauri/src/updates_manager.rs @@ -92,7 +92,6 @@ pub struct UpdatesManager { impl UpdatesManager { pub fn new(config: Arc>, app_shutdown: ShutdownSignal) -> Self { - Self { config, update: Arc::new(RwLock::new(None)), @@ -146,8 +145,7 @@ impl UpdatesManager { drop(app.emit("updates_event", payload).inspect_err(|e| { warn!(target: LOG_TARGET, "Failed to emit 'updates-event' with CouldNotUpdatePayload: {}", e); })); - } - else if force { + } else if force { info!(target: LOG_TARGET, "try_update: Proceeding with force update"); self.proceed_with_update(app.clone()).await?; } else if is_auto_update { diff --git a/src-tauri/src/utils/mod.rs b/src-tauri/src/utils/mod.rs index 0d3ab7a6e..93cca9bcf 100644 --- a/src-tauri/src/utils/mod.rs +++ b/src-tauri/src/utils/mod.rs @@ -27,4 +27,4 @@ pub mod macos_utils; pub mod platform_utils; pub mod setup_utils; pub mod shutdown_utils; -pub mod system_status; \ No newline at end of file +pub mod system_status; diff --git a/src-tauri/src/utils/system_status.rs b/src-tauri/src/utils/system_status.rs index df2f7f7c8..0c1ab3455 100644 --- a/src-tauri/src/utils/system_status.rs +++ b/src-tauri/src/utils/system_status.rs @@ -24,16 +24,14 @@ use std::{sync::LazyLock, time::Duration}; use anyhow::{anyhow, Error}; use log::info; -use psp::monitor::{PowerMonitor,PowerState}; +use psp::monitor::{PowerMonitor, PowerState}; use tokio::sync::RwLock; use tokio_util::sync::CancellationToken; - const LOG_TARGET: &str = "tari::universe::external_dependencies"; static INSTANCE: LazyLock = LazyLock::new(SystemStatus::new); - pub struct SystemStatus { power_monitor: PowerMonitor, cancelation_token: RwLock>, @@ -48,10 +46,9 @@ impl SystemStatus { Self { power_monitor, cancelation_token: RwLock::new(None), - is_in_sleep_mode: RwLock::new(false) + is_in_sleep_mode: RwLock::new(false), } } - fn start_listener(power_monitor: &PowerMonitor) -> Result<(), Error> { power_monitor.start_listening().map_err(|e| anyhow!(e))?; @@ -72,11 +69,11 @@ impl SystemStatus { PowerState::ScreenLocked => { info!(target: LOG_TARGET, "Screen locked"); *self.is_in_sleep_mode.write().await = true; - }, + } PowerState::Suspend => { info!(target: LOG_TARGET, "Suspend"); *self.is_in_sleep_mode.write().await = true; - }, + } _ => { info!(target: LOG_TARGET, "Other event"); *self.is_in_sleep_mode.write().await = false; @@ -119,13 +116,11 @@ impl SystemStatus { } Ok(()) } - pub async fn is_in_sleep_mode(&self) -> bool { *self.is_in_sleep_mode.read().await } - pub fn current() -> &'static SystemStatus { &INSTANCE } From e5f73154e5e4416df94efba83bc3868209eb16e8 Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Thu, 12 Dec 2024 15:15:30 +0100 Subject: [PATCH 06/25] revert version change --- src-tauri/Cargo.lock | 2 +- src-tauri/Cargo.toml | 2 +- src-tauri/src/updates_manager.rs | 8 ++++---- src-tauri/tauri.conf.json | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index dc2aecfa7..7ec592cc0 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -7018,7 +7018,7 @@ dependencies = [ [[package]] name = "tari-universe" -version = "0.8.11" +version = "0.8.13" dependencies = [ "anyhow", "async-trait", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index e5863e75b..6cd338d41 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -4,7 +4,7 @@ description = "Tari Universe" edition = "2021" name = "tari-universe" repository = "https://github.com/tari-project/universe" -version = "0.8.11" +version = "0.8.13" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/src-tauri/src/updates_manager.rs b/src-tauri/src/updates_manager.rs index a31b6ce80..b06db7103 100644 --- a/src-tauri/src/updates_manager.rs +++ b/src-tauri/src/updates_manager.rs @@ -92,6 +92,7 @@ pub struct UpdatesManager { impl UpdatesManager { pub fn new(config: Arc>, app_shutdown: ShutdownSignal) -> Self { + Self { config, update: Arc::new(RwLock::new(None)), @@ -103,7 +104,7 @@ impl UpdatesManager { let app_clone = app.clone(); let self_clone = self.clone(); tauri::async_runtime::spawn(async move { - let mut interval = time::interval(Duration::from_secs(300)); + let mut interval = time::interval(Duration::from_secs(3600)); loop { if self_clone.app_shutdown.is_triggered() && self_clone.app_shutdown.is_triggered() { @@ -134,8 +135,6 @@ impl UpdatesManager { let is_screen_locked = SystemStatus::current().is_in_sleep_mode().await; - info!(target: LOG_TARGET, "try_update: Screen locked: {}", is_screen_locked); - if is_screen_locked && is_auto_update { info!(target: LOG_TARGET, "try_update: Screen is locked. Displaying notification"); let payload = CouldNotUpdatePayload { @@ -145,7 +144,8 @@ impl UpdatesManager { drop(app.emit("updates_event", payload).inspect_err(|e| { warn!(target: LOG_TARGET, "Failed to emit 'updates-event' with CouldNotUpdatePayload: {}", e); })); - } else if force { + } + else if force { info!(target: LOG_TARGET, "try_update: Proceeding with force update"); self.proceed_with_update(app.clone()).await?; } else if is_auto_update { diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index d82a40b19..d3b6d4ae9 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,5 +1,5 @@ { - "version": "0.8.11", + "version": "0.8.13", "productName": "Tari Universe (Alpha)", "mainBinaryName": "Tari Universe (Alpha)", "identifier": "com.tari.universe.alpha", From e360729eb4dde26b7a19003e18b62a5a11a6b1c4 Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Thu, 12 Dec 2024 15:18:33 +0100 Subject: [PATCH 07/25] populate locale files --- public/locales/af/common.json | 4 +++- public/locales/af/setup-view.json | 1 + public/locales/cn/common.json | 4 +++- public/locales/cn/setup-view.json | 1 + public/locales/de/common.json | 4 +++- public/locales/de/setup-view.json | 1 + public/locales/fr/common.json | 4 +++- public/locales/fr/setup-view.json | 1 + public/locales/hi/common.json | 4 +++- public/locales/hi/setup-view.json | 1 + public/locales/id/common.json | 4 +++- public/locales/id/setup-view.json | 1 + public/locales/ja/common.json | 4 +++- public/locales/ja/setup-view.json | 1 + public/locales/ko/common.json | 4 +++- public/locales/ko/setup-view.json | 1 + public/locales/pl/common.json | 4 +++- public/locales/pl/setup-view.json | 1 + public/locales/ru/common.json | 4 +++- public/locales/ru/setup-view.json | 1 + public/locales/tr/common.json | 4 +++- public/locales/tr/setup-view.json | 1 + 22 files changed, 44 insertions(+), 11 deletions(-) diff --git a/public/locales/af/common.json b/public/locales/af/common.json index 8c5b3bc82..81c1385bf 100644 --- a/public/locales/af/common.json +++ b/public/locales/af/common.json @@ -28,5 +28,7 @@ "utilization": "Benutting", "version": "Weergawe", "versions": "Weergawes", - "webgl-not-supported": "WebGL word nie ondersteun nie. Visuele modus gedeaktiveer." + "webgl-not-supported": "WebGL word nie ondersteun nie. Visuele modus gedeaktiveer.", + "close": "Close", + "update": "Update" } \ No newline at end of file diff --git a/public/locales/af/setup-view.json b/public/locales/af/setup-view.json index 59749051c..7148643cd 100644 --- a/public/locales/af/setup-view.json +++ b/public/locales/af/setup-view.json @@ -2,6 +2,7 @@ "dont-worry": "Moenie bekommerd wees nie, volgende keer sal dit nie so lank vat nie", "installing-latest-version": "Installeer {{version}} weergawe van Tari Universe", "new-tari-version-available": "'n Nuwe weergawe van Tari Universe is beskikbaar", + "could-not-auto-update": "We couldn't auto update Tari Universe to {{version}} while machine was locked or in sleep mode.", "no": "Nee", "setting-up": "Stel Tari waarheidsmasjien op...", "this-might-take-a-few-minutes": "Hierdie mag 'n paar minute neem", diff --git a/public/locales/cn/common.json b/public/locales/cn/common.json index 1d08840b0..0dbb35c73 100644 --- a/public/locales/cn/common.json +++ b/public/locales/cn/common.json @@ -28,5 +28,7 @@ "utilization": "利用率", "version": "版本", "versions": "版本", - "webgl-not-supported": "不支持 WebGL。已禁用视觉模式。" + "webgl-not-supported": "不支持 WebGL。已禁用视觉模式。", + "close": "Close", + "update": "Update" } \ No newline at end of file diff --git a/public/locales/cn/setup-view.json b/public/locales/cn/setup-view.json index 6d1f120be..77442d211 100644 --- a/public/locales/cn/setup-view.json +++ b/public/locales/cn/setup-view.json @@ -2,6 +2,7 @@ "dont-worry": "别担心,下次不会花这么长时间", "installing-latest-version": "正在安装 Tari 宇宙的 {{version}} 版本", "new-tari-version-available": "有新版本的 Tari Universe 可用!", + "could-not-auto-update": "We couldn't auto update Tari Universe to {{version}} while machine was locked or in sleep mode.", "no": "否", "setting-up": "正在设置 Tari ...", "this-might-take-a-few-minutes": "这可能需要几分钟", diff --git a/public/locales/de/common.json b/public/locales/de/common.json index 071a7bb07..2ae0aed7c 100644 --- a/public/locales/de/common.json +++ b/public/locales/de/common.json @@ -28,5 +28,7 @@ "utilization": "Auslastung", "version": "Version", "versions": "Versionen", - "webgl-not-supported": "WebGL wird nicht unterstützt. Visueller Modus deaktiviert." + "webgl-not-supported": "WebGL wird nicht unterstützt. Visueller Modus deaktiviert.", + "close": "Close", + "update": "Update" } \ No newline at end of file diff --git a/public/locales/de/setup-view.json b/public/locales/de/setup-view.json index dc2f3264b..c4c755642 100644 --- a/public/locales/de/setup-view.json +++ b/public/locales/de/setup-view.json @@ -2,6 +2,7 @@ "dont-worry": "Mach dir keine Sorgen, beim nächsten Mal dauert es nicht so lange", "installing-latest-version": "Installation der {{version}}-Version des Tari-Universums", "new-tari-version-available": "Eine neue Version von Tari Universe ist verfügbar!", + "could-not-auto-update": "We couldn't auto update Tari Universe to {{version}} while machine was locked or in sleep mode.", "no": "Nein", "setting-up": "Einrichten der Tari Wahrheitsmaschine...", "this-might-take-a-few-minutes": "Das könnte ein paar Minuten dauern", diff --git a/public/locales/fr/common.json b/public/locales/fr/common.json index 939002009..cfcdc5303 100644 --- a/public/locales/fr/common.json +++ b/public/locales/fr/common.json @@ -28,5 +28,7 @@ "utilization": "Utilisation", "version": "Version", "versions": "Versions", - "webgl-not-supported": "WebGL non pris en charge. Mode visuel désactivé." + "webgl-not-supported": "WebGL non pris en charge. Mode visuel désactivé.", + "close": "Close", + "update": "Update" } \ No newline at end of file diff --git a/public/locales/fr/setup-view.json b/public/locales/fr/setup-view.json index edd24849d..90601b82b 100644 --- a/public/locales/fr/setup-view.json +++ b/public/locales/fr/setup-view.json @@ -2,6 +2,7 @@ "dont-worry": "Ne t'inquiète pas, la prochaine fois, ça ne prendra pas autant de temps.", "installing-latest-version": "Installation de la version {{version}} de Tari Universe", "new-tari-version-available": "Une nouvelle version du Tari Universe est disponible !", + "could-not-auto-update": "We couldn't auto update Tari Universe to {{version}} while machine was locked or in sleep mode.", "no": "Non", "setting-up": "Mise en place de la machine à vérités de Tari...", "this-might-take-a-few-minutes": "Cela peut prendre quelques minutes", diff --git a/public/locales/hi/common.json b/public/locales/hi/common.json index 496edb6aa..4e48d0c96 100644 --- a/public/locales/hi/common.json +++ b/public/locales/hi/common.json @@ -28,5 +28,7 @@ "utilization": "उपयोग", "version": "संस्करण", "versions": "संस्करण", - "webgl-not-supported": "WebGL समर्थित नहीं है। दृश्य मोड अक्षम किया गया।" + "webgl-not-supported": "WebGL समर्थित नहीं है। दृश्य मोड अक्षम किया गया।", + "close": "Close", + "update": "Update" } \ No newline at end of file diff --git a/public/locales/hi/setup-view.json b/public/locales/hi/setup-view.json index 1acb545f1..ad9914d4f 100644 --- a/public/locales/hi/setup-view.json +++ b/public/locales/hi/setup-view.json @@ -2,6 +2,7 @@ "dont-worry": "चिंता न करें, अगली बार इसमें इतना समय नहीं लगेगा", "installing-latest-version": "तारी यूनिवर्स के {{version}} संस्करण को इंस्टॉल कर रहे हैं", "new-tari-version-available": "Tari Universe का एक नया संस्करण उपलब्ध है!", + "could-not-auto-update": "We couldn't auto update Tari Universe to {{version}} while machine was locked or in sleep mode.", "no": "नहीं", "setting-up": "Tari सत्य मशीन सेट कर रहा है...", "this-might-take-a-few-minutes": "इसमें कुछ मिनट लग सकते हैं", diff --git a/public/locales/id/common.json b/public/locales/id/common.json index b0bed0dfe..20093f7cf 100644 --- a/public/locales/id/common.json +++ b/public/locales/id/common.json @@ -28,5 +28,7 @@ "utilization": "Pemanfaatan", "version": "Versi", "versions": "Versi", - "webgl-not-supported": "WebGL tidak didukung. Mode visual dinonaktifkan." + "webgl-not-supported": "WebGL tidak didukung. Mode visual dinonaktifkan.", + "close": "Close", + "update": "Update" } \ No newline at end of file diff --git a/public/locales/id/setup-view.json b/public/locales/id/setup-view.json index e02835611..78ed47eaa 100644 --- a/public/locales/id/setup-view.json +++ b/public/locales/id/setup-view.json @@ -2,6 +2,7 @@ "dont-worry": "Jangan khawatir, lain kali tidak akan memakan waktu lama", "installing-latest-version": "Menginstal versi {{version}} dari Tari Universe", "new-tari-version-available": "Versi baru dari Tari Universe tersedia!", + "could-not-auto-update": "We couldn't auto update Tari Universe to {{version}} while machine was locked or in sleep mode.", "no": "Tidak", "setting-up": "Menyiapkan mesin kebenaran Tari...", "this-might-take-a-few-minutes": "Ini mungkin memakan waktu beberapa menit", diff --git a/public/locales/ja/common.json b/public/locales/ja/common.json index fa9db31df..55366bfef 100644 --- a/public/locales/ja/common.json +++ b/public/locales/ja/common.json @@ -28,5 +28,7 @@ "utilization": "利用率", "version": "バージョン", "versions": "バージョン", - "webgl-not-supported": "WebGLがサポートされていません。ビジュアルモードが無効になりました。" + "webgl-not-supported": "WebGLがサポートされていません。ビジュアルモードが無効になりました。", + "close": "Close", + "update": "Update" } \ No newline at end of file diff --git a/public/locales/ja/setup-view.json b/public/locales/ja/setup-view.json index ef473bd43..150e9a041 100644 --- a/public/locales/ja/setup-view.json +++ b/public/locales/ja/setup-view.json @@ -2,6 +2,7 @@ "dont-worry": "心配しないでください、次回はそれほど時間がかかりません", "installing-latest-version": "Tari Universeの{{version}}バージョンをインストール中", "new-tari-version-available": "Tari Universeの新しいバージョンが利用可能です!", + "could-not-auto-update": "We couldn't auto update Tari Universe to {{version}} while machine was locked or in sleep mode.", "no": "いいえ", "setting-up": "Tariトゥルースマシンを設定中...", "this-might-take-a-few-minutes": "数分かかる場合があります", diff --git a/public/locales/ko/common.json b/public/locales/ko/common.json index 0c929b243..a714b7a5f 100644 --- a/public/locales/ko/common.json +++ b/public/locales/ko/common.json @@ -28,5 +28,7 @@ "utilization": "활용도", "version": "버전", "versions": "버전", - "webgl-not-supported": "WebGL이 지원되지 않습니다. 시각 모드가 비활성화되었습니다." + "webgl-not-supported": "WebGL이 지원되지 않습니다. 시각 모드가 비활성화되었습니다.", + "close": "Close", + "update": "Update" } \ No newline at end of file diff --git a/public/locales/ko/setup-view.json b/public/locales/ko/setup-view.json index ac074aacd..55c713244 100644 --- a/public/locales/ko/setup-view.json +++ b/public/locales/ko/setup-view.json @@ -2,6 +2,7 @@ "dont-worry": "걱정 마세요, 다음 번에는 오래 걸리지 않을 것입니다", "installing-latest-version": "Tari Universe의 {{version}} 버전 설치 중", "new-tari-version-available": "Tari Universe의 새 버전이 출시되었습니다!", + "could-not-auto-update": "We couldn't auto update Tari Universe to {{version}} while machine was locked or in sleep mode.", "no": "아니요", "setting-up": "Tari 진실 기계 설정 중...", "this-might-take-a-few-minutes": "몇 분 정도 걸릴 수 있습니다", diff --git a/public/locales/pl/common.json b/public/locales/pl/common.json index bbdc2e7ae..4e279faad 100644 --- a/public/locales/pl/common.json +++ b/public/locales/pl/common.json @@ -28,5 +28,7 @@ "utilization": "Wykorzystanie", "version": "Wersja", "versions": "Wersje", - "webgl-not-supported": "WebGL nie jest obsługiwany. Tryb wizualny wyłączony." + "webgl-not-supported": "WebGL nie jest obsługiwany. Tryb wizualny wyłączony.", + "close": "Close", + "update": "Update" } \ No newline at end of file diff --git a/public/locales/pl/setup-view.json b/public/locales/pl/setup-view.json index f93244ba1..e30b64bbc 100644 --- a/public/locales/pl/setup-view.json +++ b/public/locales/pl/setup-view.json @@ -2,6 +2,7 @@ "dont-worry": "Nie martw się, następnym razem nie zajmie to tak długo", "installing-latest-version": "Instalowanie wersji {{version}} Tari Universe", "new-tari-version-available": "Nowa wersja Tari Universe jest dostępna!", + "could-not-auto-update": "We couldn't auto update Tari Universe to {{version}} while machine was locked or in sleep mode.", "no": "Nie", "setting-up": "Konfiguracja Tari truth machine...", "this-might-take-a-few-minutes": "To może zająć kilka minut", diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index 086772191..504e5712a 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -28,5 +28,7 @@ "utilization": "Использование", "version": "Версия", "versions": "Версии", - "webgl-not-supported": "WebGL не поддерживается. Визуальный режим отключен." + "webgl-not-supported": "WebGL не поддерживается. Визуальный режим отключен.", + "close": "Close", + "update": "Update" } \ No newline at end of file diff --git a/public/locales/ru/setup-view.json b/public/locales/ru/setup-view.json index 3570946eb..93f21cafe 100644 --- a/public/locales/ru/setup-view.json +++ b/public/locales/ru/setup-view.json @@ -2,6 +2,7 @@ "dont-worry": "Не волнуйтесь, в следующий раз это займет меньше времени", "installing-latest-version": "Установка версии {{version}} Tari Universe", "new-tari-version-available": "Доступна новая версия Tari Universe!", + "could-not-auto-update": "We couldn't auto update Tari Universe to {{version}} while machine was locked or in sleep mode.", "no": "Нет", "setting-up": "Настройка машины правды Tari...", "this-might-take-a-few-minutes": "Это может занять несколько минут", diff --git a/public/locales/tr/common.json b/public/locales/tr/common.json index 907809255..f3a1bb9be 100644 --- a/public/locales/tr/common.json +++ b/public/locales/tr/common.json @@ -28,5 +28,7 @@ "utilization": "Fayda", "version": "Versiyon", "versions": "Versiyon", - "webgl-not-supported": "WebGL desteklenmiyor. Görsel mod devre dışı bırakıldı." + "webgl-not-supported": "WebGL desteklenmiyor. Görsel mod devre dışı bırakıldı.", + "close": "Close", + "update": "Update" } \ No newline at end of file diff --git a/public/locales/tr/setup-view.json b/public/locales/tr/setup-view.json index fd8829223..12415a2d0 100644 --- a/public/locales/tr/setup-view.json +++ b/public/locales/tr/setup-view.json @@ -2,6 +2,7 @@ "dont-worry": "Merak etmeyin, bir dahaki sefere bu kadar uzun sürmeyecek", "installing-latest-version": "Tari Universe\"in {{version}} sürümü yükleniyor", "new-tari-version-available": "Tari Universe'ün yeni sürümü var!", + "could-not-auto-update": "We couldn't auto update Tari Universe to {{version}} while machine was locked or in sleep mode.", "no": "Hayır", "setting-up": "Tari doğruluk makinesi kuruluyor...", "this-might-take-a-few-minutes": "Bu birkaç dakika sürebilir", From c7657e2885420a7c308702310419ec12d5403b4f Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Thu, 12 Dec 2024 15:26:22 +0100 Subject: [PATCH 08/25] cargo fmt --- src-tauri/src/updates_manager.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src-tauri/src/updates_manager.rs b/src-tauri/src/updates_manager.rs index b06db7103..9889fdea3 100644 --- a/src-tauri/src/updates_manager.rs +++ b/src-tauri/src/updates_manager.rs @@ -92,7 +92,6 @@ pub struct UpdatesManager { impl UpdatesManager { pub fn new(config: Arc>, app_shutdown: ShutdownSignal) -> Self { - Self { config, update: Arc::new(RwLock::new(None)), @@ -144,8 +143,7 @@ impl UpdatesManager { drop(app.emit("updates_event", payload).inspect_err(|e| { warn!(target: LOG_TARGET, "Failed to emit 'updates-event' with CouldNotUpdatePayload: {}", e); })); - } - else if force { + } else if force { info!(target: LOG_TARGET, "try_update: Proceeding with force update"); self.proceed_with_update(app.clone()).await?; } else if is_auto_update { From 803422c954e7b271f4cb957b237091d212cab508 Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Thu, 12 Dec 2024 15:46:48 +0100 Subject: [PATCH 09/25] remove logs --- src-tauri/src/utils/system_status.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src-tauri/src/utils/system_status.rs b/src-tauri/src/utils/system_status.rs index 0c1ab3455..055c9abe6 100644 --- a/src-tauri/src/utils/system_status.rs +++ b/src-tauri/src/utils/system_status.rs @@ -56,13 +56,6 @@ impl SystemStatus { } async fn recive_power_event(&self) -> Result<(), Error> { - let capacity = self.power_monitor.event_receiver().capacity(); - info!(target: LOG_TARGET, "Capacity: {:?}", capacity); - let is_empty = self.power_monitor.event_receiver().is_empty(); - info!(target: LOG_TARGET, "Is empty: {:?}", is_empty); - // let event = self.power_monitor.event_receiver().try_recv().map_err(|e| anyhow!(e))?; - // info!(target: LOG_TARGET, "Power event: {:?}", event); - if let Ok(event) = self.power_monitor.event_receiver().try_recv() { info!(target: LOG_TARGET, "Power event: {:?}", event); match event { @@ -74,6 +67,14 @@ impl SystemStatus { info!(target: LOG_TARGET, "Suspend"); *self.is_in_sleep_mode.write().await = true; } + PowerState::Resume => { + info!(target: LOG_TARGET, "Resume"); + *self.is_in_sleep_mode.write().await = false; + } + PowerState::ScreenUnlocked => { + info!(target: LOG_TARGET, "Screen unlocked"); + *self.is_in_sleep_mode.write().await = false; + } _ => { info!(target: LOG_TARGET, "Other event"); *self.is_in_sleep_mode.write().await = false; @@ -95,9 +96,8 @@ impl SystemStatus { }, _ = async { loop { - info!(target: LOG_TARGET, "Listener started"); SystemStatus::current().recive_power_event().await.expect("Error reciving power event"); - tokio::time::sleep(Duration::from_secs(1)).await; + tokio::time::sleep(Duration::from_secs(5)).await; } } => { info!(target: LOG_TARGET, "Listener finished"); From 6d89cc57e9176a096961fa6b79da58b54d7be93b Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Thu, 2 Jan 2025 09:13:04 +0100 Subject: [PATCH 10/25] merge --- src-tauri/Cargo.lock | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index e448ab986..fab33b158 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -3364,6 +3364,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + [[package]] name = "integer-encoding" version = "3.0.4" From 18c33d4184a9fd8c3cce74d47615ce97e426d726 Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Thu, 2 Jan 2025 09:14:13 +0100 Subject: [PATCH 11/25] cargo fmt --- src-tauri/src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 69a5a70a8..253fe06cd 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -35,8 +35,8 @@ use std::path::Path; use tauri_plugin_cli::CliExt; use tokio::sync::watch::{self}; use updates_manager::UpdatesManager; -use wallet_adapter::WalletBalance; use utils::system_status::SystemStatus; +use wallet_adapter::WalletBalance; use log4rs::config::RawConfig; use serde::Serialize; From df71bab110586879fdd68a0ad6d0009039ea5fdf Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Thu, 16 Jan 2025 12:50:23 +0100 Subject: [PATCH 12/25] fix after merge --- src-tauri/Cargo.lock | 517 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 448 insertions(+), 69 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 055c021e0..c097f3d25 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -184,18 +184,40 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "async-broadcast" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d26004fe83b2d1cd3a97609b21e39f9a31535822210fe83205d2ce48866ea61" +dependencies = [ + "event-listener 2.5.3", + "futures-core", + "parking_lot", +] + [[package]] name = "async-broadcast" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532" dependencies = [ - "event-listener", + "event-listener 5.4.0", "event-listener-strategy", "futures-core", "pin-project-lite", ] +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener 2.5.3", + "futures-core", +] + [[package]] name = "async-channel" version = "2.3.1" @@ -234,8 +256,8 @@ checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ "async-task", "concurrent-queue", - "fastrand", - "futures-lite", + "fastrand 2.3.0", + "futures-lite 2.5.0", "slab", ] @@ -245,9 +267,29 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" dependencies = [ - "async-lock", + "async-lock 3.4.0", "blocking", - "futures-lite", + "futures-lite 2.5.0", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.28", + "slab", + "socket2 0.4.10", + "waker-fn", ] [[package]] @@ -256,26 +298,35 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" dependencies = [ - "async-lock", + "async-lock 3.4.0", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite", + "futures-lite 2.5.0", "parking", - "polling", - "rustix", + "polling 3.7.4", + "rustix 0.38.43", "slab", "tracing", "windows-sys 0.59.0", ] +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener 2.5.3", +] + [[package]] name = "async-lock" version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener", + "event-listener 5.4.0", "event-listener-strategy", "pin-project-lite", ] @@ -286,19 +337,30 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb" dependencies = [ - "async-channel", - "async-io", - "async-lock", + "async-channel 2.3.1", + "async-io 2.4.0", + "async-lock 3.4.0", "async-signal", "async-task", "blocking", "cfg-if", - "event-listener", - "futures-lite", - "rustix", + "event-listener 5.4.0", + "futures-lite 2.5.0", + "rustix 0.38.43", "tracing", ] +[[package]] +name = "async-recursion" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7d78656ba01f1b93024b7c3a0467f1608e4be67d725749fdcd7d2c7678fd7a2" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "async-recursion" version = "1.1.1" @@ -316,13 +378,13 @@ version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" dependencies = [ - "async-io", - "async-lock", + "async-io 2.4.0", + "async-lock 3.4.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix", + "rustix 0.38.43", "signal-hook-registry", "slab", "windows-sys 0.59.0", @@ -376,7 +438,7 @@ dependencies = [ "async-compression", "chrono", "crc32fast", - "futures-lite", + "futures-lite 2.5.0", "pin-project 1.1.8", "thiserror 1.0.69", "tokio", @@ -630,10 +692,10 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ - "async-channel", + "async-channel 2.3.1", "async-task", "futures-io", - "futures-lite", + "futures-lite 2.5.0", "piper", ] @@ -1041,6 +1103,22 @@ dependencies = [ "roff", ] +[[package]] +name = "cocoa" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +dependencies = [ + "bitflags 1.3.2", + "block", + "cocoa-foundation 0.1.2", + "core-foundation 0.9.4", + "core-graphics 0.22.3", + "foreign-types 0.3.2", + "libc", + "objc", +] + [[package]] name = "cocoa" version = "0.26.0" @@ -1049,14 +1127,28 @@ checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" dependencies = [ "bitflags 2.7.0", "block", - "cocoa-foundation", + "cocoa-foundation 0.2.0", "core-foundation 0.10.0", - "core-graphics", + "core-graphics 0.24.0", "foreign-types 0.5.0", "libc", "objc", ] +[[package]] +name = "cocoa-foundation" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" +dependencies = [ + "bitflags 1.3.2", + "block", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", + "libc", + "objc", +] + [[package]] name = "cocoa-foundation" version = "0.2.0" @@ -1066,7 +1158,7 @@ dependencies = [ "bitflags 2.7.0", "block", "core-foundation 0.10.0", - "core-graphics-types", + "core-graphics-types 0.2.0", "libc", "objc", ] @@ -1162,6 +1254,19 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "core-graphics-types 0.1.3", + "foreign-types 0.3.2", + "libc", +] + [[package]] name = "core-graphics" version = "0.24.0" @@ -1170,11 +1275,22 @@ checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" dependencies = [ "bitflags 2.7.0", "core-foundation 0.10.0", - "core-graphics-types", + "core-graphics-types 0.2.0", "foreign-types 0.5.0", "libc", ] +[[package]] +name = "core-graphics-types" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "libc", +] + [[package]] name = "core-graphics-types" version = "0.2.0" @@ -1912,6 +2028,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + [[package]] name = "event-listener" version = "5.4.0" @@ -1929,10 +2051,19 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" dependencies = [ - "event-listener", + "event-listener 5.4.0", "pin-project-lite", ] +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + [[package]] name = "fastrand" version = "2.3.0" @@ -1970,7 +2101,7 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f" dependencies = [ - "memoffset", + "memoffset 0.9.1", "rustc_version", ] @@ -2173,13 +2304,28 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + [[package]] name = "futures-lite" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" dependencies = [ - "fastrand", + "fastrand 2.3.0", "futures-core", "futures-io", "parking", @@ -2359,7 +2505,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc3655aa6818d65bc620d6911f05aa7b6aeb596291e1e9f79e52df85583d1e30" dependencies = [ - "rustix", + "rustix 0.38.43", "windows-targets 0.52.6", ] @@ -2641,6 +2787,12 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + [[package]] name = "hermit-abi" version = "0.4.0" @@ -2684,7 +2836,7 @@ version = "0.25.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8270a1857fb962b9914aafd46a89a187a4e63d0eb4190c327e7c7b8256a2d055" dependencies = [ - "async-recursion", + "async-recursion 1.1.1", "async-trait", "bitflags 2.7.0", "cfg-if", @@ -2918,7 +3070,7 @@ dependencies = [ "http-body", "hyper", "pin-project-lite", - "socket2", + "socket2 0.5.8", "tokio", "tower-service", "tracing", @@ -3212,19 +3364,39 @@ dependencies = [ "generic-array", ] +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + [[package]] name = "integer-encoding" version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "ipconfig" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2", + "socket2 0.5.8", "widestring", "windows-sys 0.48.0", "winreg 0.50.0", @@ -3558,6 +3730,12 @@ dependencies = [ "libc", ] +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -3752,6 +3930,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + [[package]] name = "memoffset" version = "0.9.1" @@ -3840,7 +4027,7 @@ dependencies = [ "log", "mach2", "memmap2", - "memoffset", + "memoffset 0.9.1", "minidump-common", "nix 0.28.0", "procfs-core", @@ -3861,7 +4048,7 @@ dependencies = [ "log", "minidump-writer", "parking_lot", - "polling", + "polling 3.7.4", "scroll", "thiserror 1.0.69", "uds", @@ -4142,6 +4329,18 @@ dependencies = [ "smallvec", ] +[[package]] +name = "nix" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.6.5", +] + [[package]] name = "nix" version = "0.28.0" @@ -4164,7 +4363,7 @@ dependencies = [ "cfg-if", "cfg_aliases 0.2.1", "libc", - "memoffset", + "memoffset 0.9.1", ] [[package]] @@ -4630,6 +4829,16 @@ dependencies = [ "num-traits", ] +[[package]] +name = "ordered-stream" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44630c059eacfd6e08bdaa51b1db2ce33119caa4ddc1235e923109aa5f25ccb1" +dependencies = [ + "futures-core", + "pin-project-lite", +] + [[package]] name = "ordered-stream" version = "0.2.0" @@ -5028,7 +5237,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand", + "fastrand 2.3.0", "futures-io", ] @@ -5080,6 +5289,22 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite", + "windows-sys 0.48.0", +] + [[package]] name = "polling" version = "3.7.4" @@ -5088,9 +5313,9 @@ checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi", + "hermit-abi 0.4.0", "pin-project-lite", - "rustix", + "rustix 0.38.43", "tracing", "windows-sys 0.59.0", ] @@ -5369,6 +5594,25 @@ dependencies = [ "prost 0.13.4", ] +[[package]] +name = "psp" +version = "0.1.0" +source = "git+https://github.com/pewsheen/psp.git#ddef0c61aeedc0ad1891de31659fd6c2e1bcaedb" +dependencies = [ + "cocoa 0.24.1", + "core-foundation 0.9.4", + "core-graphics 0.22.3", + "crossbeam-channel", + "dispatch", + "libc", + "objc", + "png", + "scopeguard", + "tokio", + "windows 0.48.0", + "zbus 3.3.0", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -5396,7 +5640,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls", - "socket2", + "socket2 0.5.8", "thiserror 2.0.10", "tokio", "tracing", @@ -5431,7 +5675,7 @@ dependencies = [ "cfg_aliases 0.2.1", "libc", "once_cell", - "socket2", + "socket2 0.5.8", "tracing", "windows-sys 0.59.0", ] @@ -5802,6 +6046,20 @@ dependencies = [ "semver", ] +[[package]] +name = "rustix" +version = "0.37.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "519165d378b97752ca44bbe15047d5d3409e875f39327546b42ac81d7e18c1b6" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + [[package]] name = "rustix" version = "0.38.43" @@ -5811,7 +6069,7 @@ dependencies = [ "bitflags 2.7.0", "errno", "libc", - "linux-raw-sys", + "linux-raw-sys 0.4.15", "windows-sys 0.59.0", ] @@ -6351,6 +6609,15 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "sha1" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" +dependencies = [ + "sha1_smol", +] + [[package]] name = "sha1" version = "0.10.6" @@ -6362,6 +6629,12 @@ dependencies = [ "digest", ] +[[package]] +name = "sha1_smol" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" + [[package]] name = "sha2" version = "0.10.8" @@ -6511,6 +6784,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "socket2" version = "0.5.8" @@ -6529,7 +6812,7 @@ checksum = "18051cdd562e792cad055119e0cdb2cfc137e44e3987532e0f9659a77931bb08" dependencies = [ "bytemuck", "cfg_aliases 0.2.1", - "core-graphics", + "core-graphics 0.24.0", "foreign-types 0.5.0", "js-sys", "log", @@ -6830,9 +7113,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3731d04d4ac210cd5f344087733943b9bfb1a32654387dad4d1c70de21aee2c9" dependencies = [ "bitflags 2.7.0", - "cocoa", + "cocoa 0.26.0", "core-foundation 0.10.0", - "core-graphics", + "core-graphics 0.24.0", "crossbeam-channel", "dispatch", "dlopen2", @@ -6924,7 +7207,7 @@ dependencies = [ "embed-resource", "fix-path-env", "flate2", - "futures-lite", + "futures-lite 2.5.0", "futures-util", "hex", "jsonwebtoken", @@ -6940,6 +7223,7 @@ dependencies = [ "open", "openssl", "phraze", + "psp", "rand 0.8.5", "regex", "reqwest", @@ -7662,7 +7946,7 @@ dependencies = [ "thiserror 2.0.10", "tracing", "windows-sys 0.59.0", - "zbus", + "zbus 4.4.0", ] [[package]] @@ -7797,10 +8081,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" dependencies = [ "cfg-if", - "fastrand", + "fastrand 2.3.0", "getrandom 0.2.15", "once_cell", - "rustix", + "rustix 0.38.43", "windows-sys 0.59.0", ] @@ -7978,7 +8262,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.5.8", "tokio-macros", "windows-sys 0.52.0", ] @@ -8156,7 +8440,7 @@ dependencies = [ "pin-project 1.1.8", "prost 0.13.4", "rustls-pemfile", - "socket2", + "socket2 0.5.8", "tokio", "tokio-rustls", "tokio-stream", @@ -8276,7 +8560,7 @@ version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d48a05076dd272615d03033bf04f480199f7d1b66a8ac64d75c625fc4a70c06b" dependencies = [ - "core-graphics", + "core-graphics 0.24.0", "crossbeam-channel", "dirs 5.0.1", "libappindicator", @@ -8333,7 +8617,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89daebc3e6fd160ac4aa9fc8b3bf71e1f74fbf92367ae71fb83a037e8bf164b9" dependencies = [ - "memoffset", + "memoffset 0.9.1", "tempfile", "winapi", ] @@ -8617,6 +8901,12 @@ dependencies = [ "quote", ] +[[package]] +name = "waker-fn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" + [[package]] name = "walkdir" version = "2.5.0" @@ -8846,7 +9136,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix", + "rustix 0.38.43", ] [[package]] @@ -9494,8 +9784,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e105d177a3871454f754b33bb0ee637ecaaac997446375fd3e5d43a2ed00c909" dependencies = [ "libc", - "linux-raw-sys", - "rustix", + "linux-raw-sys 0.4.15", + "rustix 0.38.43", ] [[package]] @@ -9566,42 +9856,94 @@ dependencies = [ "synstructure 0.13.1", ] +[[package]] +name = "zbus" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41ce2de393c874ba871292e881bf3c13a0d5eb38170ebab2e50b4c410eaa222b" +dependencies = [ + "async-broadcast 0.4.1", + "async-channel 1.9.0", + "async-executor", + "async-io 1.13.0", + "async-lock 2.8.0", + "async-recursion 0.3.2", + "async-task", + "async-trait", + "byteorder", + "derivative", + "dirs 4.0.0", + "enumflags2", + "event-listener 2.5.3", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix 0.24.3", + "once_cell", + "ordered-stream 0.0.1", + "rand 0.8.5", + "serde", + "serde_repr", + "sha1 0.6.1", + "static_assertions", + "tracing", + "uds_windows", + "winapi", + "zbus_macros 3.3.0", + "zbus_names 2.2.0", + "zvariant 3.7.1", +] + [[package]] name = "zbus" version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725" dependencies = [ - "async-broadcast", + "async-broadcast 0.7.2", "async-executor", "async-fs", - "async-io", - "async-lock", + "async-io 2.4.0", + "async-lock 3.4.0", "async-process", - "async-recursion", + "async-recursion 1.1.1", "async-task", "async-trait", "blocking", "enumflags2", - "event-listener", + "event-listener 5.4.0", "futures-core", "futures-sink", "futures-util", "hex", "nix 0.29.0", - "ordered-stream", + "ordered-stream 0.2.0", "rand 0.8.5", "serde", "serde_repr", - "sha1", + "sha1 0.10.6", "static_assertions", "tracing", "uds_windows", "windows-sys 0.52.0", "xdg-home", - "zbus_macros", - "zbus_names", - "zvariant", + "zbus_macros 4.4.0", + "zbus_names 3.0.0", + "zvariant 4.2.0", +] + +[[package]] +name = "zbus_macros" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13d08f5dc6cf725b693cb6ceacd43cd430ec0664a879188f29e7d7dcd98f96d" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", ] [[package]] @@ -9617,6 +9959,17 @@ dependencies = [ "zvariant_utils", ] +[[package]] +name = "zbus_names" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a408fd8a352695690f53906dc7fd036be924ec51ea5e05666ff42685ed0af5" +dependencies = [ + "serde", + "static_assertions", + "zvariant 3.7.1", +] + [[package]] name = "zbus_names" version = "3.0.0" @@ -9625,7 +9978,7 @@ checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" dependencies = [ "serde", "static_assertions", - "zvariant", + "zvariant 4.2.0", ] [[package]] @@ -9733,7 +10086,7 @@ dependencies = [ "memchr", "pbkdf2", "rand 0.8.5", - "sha1", + "sha1 0.10.6", "thiserror 2.0.10", "time", "zeroize", @@ -9783,6 +10136,20 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "zvariant" +version = "3.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794fb7f59af4105697b0449ba31731ee5dbb3e773a17dbdf3d36206ea1b1644" +dependencies = [ + "byteorder", + "enumflags2", + "libc", + "serde", + "static_assertions", + "zvariant_derive 3.7.1", +] + [[package]] name = "zvariant" version = "4.2.0" @@ -9793,7 +10160,19 @@ dependencies = [ "enumflags2", "serde", "static_assertions", - "zvariant_derive", + "zvariant_derive 4.2.0", +] + +[[package]] +name = "zvariant_derive" +version = "3.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd58d4b6c8e26d3dd2149c8c40c6613ef6451b9885ff1296d1ac86c388351a54" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] From 086576aa9c1a78a745f4e0b6abdb0565c3f9f64e Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Fri, 14 Feb 2025 14:50:52 +0100 Subject: [PATCH 13/25] mvp --- public/locales/en/components.json | 11 + src-tauri/Cargo.lock | 1169 ++++++++++------- src-tauri/src/commands.rs | 14 +- src-tauri/src/events.rs | 8 + src-tauri/src/main.rs | 31 +- src-tauri/src/updates_manager.rs | 2 +- src-tauri/src/utils/shutdown_utils.rs | 272 +++- src-tauri/src/utils/system_status.rs | 2 +- src/App/AppEffects.tsx | 2 + src/containers/floating/FloatingElements.tsx | 2 + .../ResumeApplicationModal.tsx | 44 + .../floating/ResumeApplicationModal/styles.ts | 50 + .../components/MiningButton/MiningButton.tsx | 10 + src/hooks/app/useListenForAppResuming.ts | 24 + src/store/appStateStore.ts | 5 + 15 files changed, 1135 insertions(+), 511 deletions(-) create mode 100644 src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx create mode 100644 src/containers/floating/ResumeApplicationModal/styles.ts create mode 100644 src/hooks/app/useListenForAppResuming.ts diff --git a/public/locales/en/components.json b/public/locales/en/components.json index 99f7ea51a..b2b45a26f 100644 --- a/public/locales/en/components.json +++ b/public/locales/en/components.json @@ -18,5 +18,16 @@ "releaseNotesDialog": { "close": "Got IT", "title": "Release Notes" + }, + "resume-app-modal": { + "title": "Resuming Tari Universe", + "resuming-all-processes": "Resuming all processes...", + "resuming-tor": "Resuming Tor...", + "resuming-node": "Resuming Node...", + "resuming-wallet": "Resuming Wallet...", + "syncing-node": "Syncing Node...", + "resuming-p2pool": "Resuming P2Pool...", + "resuming-mm-proxy": "Resuming MM Proxy...", + "finishing-resume": "Finishing Resume..." } } \ No newline at end of file diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 880ffc52a..4c0c44638 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -132,11 +132,12 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "3.0.6" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ "anstyle", + "once_cell", "windows-sys 0.59.0", ] @@ -210,7 +211,7 @@ checksum = "6d26004fe83b2d1cd3a97609b21e39f9a31535822210fe83205d2ce48866ea61" dependencies = [ "event-listener 2.5.3", "futures-core", - "parking_lot", + "parking_lot 0.12.3", ] [[package]] @@ -275,7 +276,7 @@ dependencies = [ "async-task", "concurrent-queue", "fastrand 2.3.0", - "futures-lite 2.5.0", + "futures-lite 2.6.0", "slab", ] @@ -287,7 +288,7 @@ checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" dependencies = [ "async-lock 3.4.0", "blocking", - "futures-lite 2.5.0", + "futures-lite 2.6.0", ] [[package]] @@ -320,10 +321,10 @@ dependencies = [ "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.5.0", + "futures-lite 2.6.0", "parking", "polling 3.7.4", - "rustix 0.38.43", + "rustix 0.38.44", "slab", "tracing", "windows-sys 0.59.0", @@ -363,8 +364,8 @@ dependencies = [ "blocking", "cfg-if", "event-listener 5.4.0", - "futures-lite 2.5.0", - "rustix 0.38.43", + "futures-lite 2.6.0", + "rustix 0.38.44", "tracing", ] @@ -387,7 +388,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -402,7 +403,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.43", + "rustix 0.38.44", "signal-hook-registry", "slab", "windows-sys 0.59.0", @@ -427,7 +428,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -438,13 +439,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.85" +version = "0.1.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f934833b4b7233644e5848f235df3f57ed8c80f1528a26c3dfa13d2147fa056" +checksum = "644dd749086bf3771a2fbc5f256fdb982d53f011c7d5d560304eafeecebce79d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -456,8 +457,8 @@ dependencies = [ "async-compression", "chrono", "crc32fast", - "futures-lite 2.5.0", - "pin-project 1.1.8", + "futures-lite 2.6.0", + "pin-project 1.1.9", "thiserror 1.0.69", "tokio", "tokio-util 0.7.13", @@ -517,7 +518,7 @@ checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" dependencies = [ "async-trait", "axum-core", - "bytes 1.9.0", + "bytes 1.10.0", "futures-util", "http", "http-body", @@ -543,7 +544,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", - "bytes 1.9.0", + "bytes 1.10.0", "futures-util", "http", "http-body", @@ -646,9 +647,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" dependencies = [ "serde", ] @@ -695,6 +696,25 @@ dependencies = [ "generic-array", ] +[[package]] +name = "block-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7" +dependencies = [ + "objc-sys", +] + +[[package]] +name = "block2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e58aa60e59d8dbfcc36138f5f18be5f24394d33b38b24f7fd0b1caa33095f22f" +dependencies = [ + "block-sys", + "objc2", +] + [[package]] name = "block2" version = "0.5.1" @@ -713,15 +733,15 @@ dependencies = [ "async-channel 2.3.1", "async-task", "futures-io", - "futures-lite 2.5.0", + "futures-lite 2.6.0", "piper", ] [[package]] name = "borsh" -version = "1.5.3" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2506947f73ad44e344215ccd6403ac2ae18cd8e046e581a441bf8d199f257f03" +checksum = "5430e3be710b68d984d1391c854eb431a9d548640711faa54eecb1df93db91cc" dependencies = [ "borsh-derive", "cfg_aliases 0.2.1", @@ -729,15 +749,15 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.3" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2593a3b8b938bd68373196c9832f516be11fa487ef4ae745eb282e6a56a7244" +checksum = "f8b668d39970baad5356d7c83a86fee3a539e6f93bf6764c97368243e17a0487" dependencies = [ "once_cell", "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -753,9 +773,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "4.0.1" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" +checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -784,9 +804,9 @@ checksum = "b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7" [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "byte-slice-cast" @@ -820,9 +840,9 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] name = "bytes" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" +checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" dependencies = [ "serde", ] @@ -839,9 +859,9 @@ dependencies = [ [[package]] name = "bzip2-sys" -version = "0.1.11+1.0.8" +version = "0.1.12+1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +checksum = "72ebc2f1a417f01e1da30ef264ee86ae31d2dcd2d603ea283d3c244a883ca2a9" dependencies = [ "cc", "libc", @@ -854,7 +874,7 @@ version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "cairo-sys-rs", "glib", "libc", @@ -902,24 +922,24 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror 2.0.10", + "thiserror 2.0.11", ] [[package]] name = "cargo_toml" -version = "0.17.2" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a969e13a7589e9e3e4207e153bae624ade2b5622fb4684a4923b23ec3d57719" +checksum = "5fbd1fe9db3ebf71b89060adaf7b0504c2d6a425cf061313099547e382c2e472" dependencies = [ "serde", - "toml 0.8.19", + "toml 0.8.20", ] [[package]] name = "cc" -version = "1.2.7" +version = "1.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7" +checksum = "c7777341816418c02e033934a09f20dc0ccaf65a5201ef8a450ae0105a573fda" dependencies = [ "jobserver", "libc", @@ -1064,9 +1084,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.26" +version = "4.5.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" +checksum = "8acebd8ad879283633b343856142139f2da2317c96b05b4dd6181c61e2480184" dependencies = [ "clap_builder", "clap_derive", @@ -1074,9 +1094,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.26" +version = "4.5.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" +checksum = "f6ba32cbda51c7e1dfd49acc1457ba1a7dec5b64fe360e828acb13ca8dc9c2f9" dependencies = [ "anstream", "anstyle", @@ -1086,23 +1106,23 @@ dependencies = [ [[package]] name = "clap_complete" -version = "4.5.42" +version = "4.5.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33a7e468e750fa4b6be660e8b5651ad47372e8fb114030b594c2d75d48c5ffd0" +checksum = "375f9d8255adeeedd51053574fd8d4ba875ea5fa558e86617b07f09f1680c8b6" dependencies = [ - "clap 4.5.26", + "clap 4.5.29", ] [[package]] name = "clap_derive" -version = "4.5.24" +version = "4.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" +checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1113,14 +1133,23 @@ checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "clap_mangen" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbfe6ac42a2438d0968beba18e3c35cacf16b0c25310bc22b1f5f3cffff09f4" +checksum = "724842fa9b144f9b89b3f3d371a89f3455eea660361d13a554f68f8ae5d6c13a" dependencies = [ - "clap 4.5.26", + "clap 4.5.29", "roff", ] +[[package]] +name = "clipboard-win" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892" +dependencies = [ + "error-code", +] + [[package]] name = "cocoa" version = "0.24.1" @@ -1137,22 +1166,13 @@ dependencies = [ "objc", ] -[[package]] -name = "clipboard-win" -version = "5.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892" -dependencies = [ - "error-code", -] - [[package]] name = "cocoa" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f79398230a6e2c08f5c9760610eb6924b52aa9e7950a619602baba59dcbbdbb2" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "block", "cocoa-foundation 0.2.0", "core-foundation 0.10.0", @@ -1182,7 +1202,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e14045fb83be07b5acf1c0884b2180461635b433455fa35d1cd6f17f1450679d" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "block", "core-foundation 0.10.0", "core-graphics-types 0.2.0", @@ -1202,7 +1222,7 @@ version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" dependencies = [ - "bytes 1.9.0", + "bytes 1.10.0", "memchr", ] @@ -1224,7 +1244,7 @@ dependencies = [ "nom", "pathdiff", "serde", - "toml 0.8.19", + "toml 0.8.20", ] [[package]] @@ -1233,6 +1253,26 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "const_format" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + [[package]] name = "constant_time_eq" version = "0.3.1" @@ -1313,7 +1353,7 @@ version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "core-foundation 0.10.0", "core-graphics-types 0.2.0", "foreign-types 0.5.0", @@ -1337,7 +1377,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "core-foundation 0.10.0", "libc", ] @@ -1353,9 +1393,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -1459,9 +1499,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "crypto-bigint" @@ -1510,7 +1550,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1520,7 +1560,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" dependencies = [ "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1558,7 +1598,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1582,7 +1622,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1593,14 +1633,14 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] name = "data-encoding" -version = "2.6.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" [[package]] name = "dbus" @@ -1690,20 +1730,20 @@ checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] name = "derive_more" -version = "0.99.18" +version = "0.99.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1729,9 +1769,9 @@ dependencies = [ [[package]] name = "diesel" -version = "2.2.6" +version = "2.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf1bedf64cdb9643204a36dd15b19a6ce8e7aa7f7b105868e9f1fad5ffa7d12" +checksum = "04001f23ba8843dc315804fa324000376084dfb1c30794ff68dd279e6e5696d5" dependencies = [ "bigdecimal", "chrono", @@ -1755,7 +1795,7 @@ dependencies = [ "dsl_auto_type", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1775,7 +1815,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "209c735641a413bc68c4923a9d6ad4bcb3ca306b794edaa7eb0b3228a99ffb25" dependencies = [ - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1807,6 +1847,15 @@ dependencies = [ "dirs-sys 0.4.1", ] +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys 0.5.0", +] + [[package]] name = "dirs-next" version = "1.0.2" @@ -1824,7 +1873,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" dependencies = [ "libc", - "redox_users", + "redox_users 0.4.6", "winapi", ] @@ -1836,10 +1885,22 @@ checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" dependencies = [ "libc", "option-ext", - "redox_users", + "redox_users 0.4.6", "windows-sys 0.48.0", ] +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users 0.5.0", + "windows-sys 0.59.0", +] + [[package]] name = "dirs-sys-next" version = "0.1.2" @@ -1847,7 +1908,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", - "redox_users", + "redox_users 0.4.6", "winapi", ] @@ -1865,7 +1926,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1888,7 +1949,7 @@ checksum = "f2b99bf03862d7f545ebc28ddd33a665b50865f4dfd84031a393823879bd4c54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1908,16 +1969,16 @@ dependencies = [ [[package]] name = "dsl_auto_type" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5d9abe6314103864cc2d8901b7ae224e0ab1a103a0a416661b4097b0779b607" +checksum = "139ae9aca7527f85f26dd76483eb38533fd84bd571065da1739656ef71c5ff5b" dependencies = [ "darling", "either", "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -1943,9 +2004,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" +checksum = "feeef44e73baff3a26d371801df019877a9866a8c493d315ab00177843314f35" [[package]] name = "ecdsa" @@ -2001,7 +2062,7 @@ dependencies = [ "cc", "memchr", "rustc_version", - "toml 0.8.19", + "toml 0.8.20", "vswhom", "winreg 0.52.0", ] @@ -2042,14 +2103,14 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] name = "enumflags2" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" +checksum = "ba2f4b465f5318854c6f8dd686ede6c0a9dc67d4b1ac241cf0eb51521a309147" dependencies = [ "enumflags2_derive", "serde", @@ -2057,13 +2118,13 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" +checksum = "fc4caf64a58d7a6d65ab00639b046ff54399a39f5f2554728895ace4b297cd79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -2092,18 +2153,18 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - [[package]] name = "error-code" version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f" +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + [[package]] name = "event-listener" version = "5.4.0" @@ -2227,6 +2288,12 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + [[package]] name = "flate2" version = "1.0.35" @@ -2270,7 +2337,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -2391,9 +2458,9 @@ dependencies = [ [[package]] name = "futures-lite" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef40d21ae2c515b51041df9ed313ed21e572df340ea58a922a0aefe7e8891a1" +checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" dependencies = [ "fastrand 2.3.0", "futures-core", @@ -2410,7 +2477,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -2585,7 +2652,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc3655aa6818d65bc620d6911f05aa7b6aeb596291e1e9f79e52df85583d1e30" dependencies = [ - "rustix 0.38.43", + "rustix 0.38.44", "windows-targets 0.52.6", ] @@ -2613,6 +2680,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", +] + [[package]] name = "ghash" version = "0.5.1" @@ -2667,7 +2746,7 @@ version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "futures-channel", "futures-core", "futures-executor", @@ -2695,7 +2774,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -2796,7 +2875,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -2806,12 +2885,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccae279728d634d083c00f6099cb58f01cc99c145b84b8be2f6c74618d79922e" dependencies = [ "atomic-waker", - "bytes 1.9.0", + "bytes 1.10.0", "fnv", "futures-core", "futures-sink", "http", - "indexmap 2.7.0", + "indexmap 2.7.1", "slab", "tokio", "tokio-util 0.7.13", @@ -2918,7 +2997,7 @@ checksum = "8270a1857fb962b9914aafd46a89a187a4e63d0eb4190c327e7c7b8256a2d055" dependencies = [ "async-recursion 1.1.1", "async-trait", - "bitflags 2.7.0", + "bitflags 2.8.0", "cfg-if", "data-encoding", "enum-as-inner", @@ -3023,7 +3102,7 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" dependencies = [ - "bytes 1.9.0", + "bytes 1.10.0", "fnv", "itoa 1.0.14", ] @@ -3034,7 +3113,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "bytes 1.9.0", + "bytes 1.10.0", "http", ] @@ -3044,7 +3123,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ - "bytes 1.9.0", + "bytes 1.10.0", "futures-util", "http", "http-body", @@ -3053,9 +3132,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.9.5" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" +checksum = "f2d708df4e7140240a16cd6ab0ab65c972d7433ab77819ea693fde9c43811e2a" [[package]] name = "httpdate" @@ -3071,11 +3150,11 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "1.5.2" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ - "bytes 1.9.0", + "bytes 1.10.0", "futures-channel", "futures-util", "h2", @@ -3127,7 +3206,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ - "bytes 1.9.0", + "bytes 1.10.0", "http-body-util", "hyper", "hyper-util", @@ -3143,7 +3222,7 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ - "bytes 1.9.0", + "bytes 1.10.0", "futures-channel", "futures-util", "http", @@ -3189,6 +3268,16 @@ dependencies = [ "png", ] +[[package]] +name = "icrate" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb69199826926eb864697bddd27f73d9fddcffc004f5733131e15b465e30642" +dependencies = [ + "block2 0.4.0", + "objc2", +] + [[package]] name = "icu_collections" version = "1.5.0" @@ -3304,7 +3393,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -3383,7 +3472,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -3418,9 +3507,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", "hashbrown 0.15.2", @@ -3445,15 +3534,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - [[package]] name = "instant" version = "0.1.13" @@ -3497,9 +3577,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "is-docker" @@ -3546,9 +3626,9 @@ dependencies = [ [[package]] name = "itertools" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ "either", ] @@ -3627,9 +3707,9 @@ checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" [[package]] name = "js-sys" -version = "0.3.76" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ "once_cell", "wasm-bindgen", @@ -3659,11 +3739,11 @@ dependencies = [ [[package]] name = "jsonwebtoken" -version = "9.3.0" +version = "9.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f" +checksum = "5a87cc7a48537badeae96744432de36f4be2b4a34a05a5ef32e9dd8a1c169dde" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "js-sys", "pem", "ring", @@ -3687,7 +3767,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b750dcadc39a09dbadd74e118f6dd6598df77fa01df0cfcdc52c28dece74528a" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "serde", "unicode-segmentation", ] @@ -3807,7 +3887,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "libc", "redox_syscall 0.5.8", ] @@ -3835,7 +3915,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "761e49ec5fd8a5a463f9b84e877c373d888935b71c6be78f3767fe2ae6bed18e" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "libc", ] @@ -3887,9 +3967,9 @@ checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" [[package]] name = "log" -version = "0.4.22" +version = "0.4.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" dependencies = [ "serde", ] @@ -4076,7 +4156,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd01039851e82f8799046eabbb354056283fb265c8ec0996af940f4e85a380ff" dependencies = [ "serde", - "toml 0.8.19", + "toml 0.8.20", ] [[package]] @@ -4112,7 +4192,7 @@ version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c4d14bcca0fd3ed165a03000480aaa364c6860c34e900cb2dafdf3b95340e77" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "debugid", "num-derive", "num-traits", @@ -4127,7 +4207,7 @@ version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abcd9c8a1e6e1e9d56ce3627851f39a17ea83e17c96bc510f29d7e43d78a7d" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "byteorder", "cfg-if", "crash-context", @@ -4189,9 +4269,9 @@ checksum = "6367d84fb54d4242af283086402907277715b8fe46976963af5ebf173f8efba3" [[package]] name = "miniz_oxide" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" +checksum = "b3b1c9bd4fe1f0f8b387f6eb9eb3b4a1aa26185e5750efb9140301703f62cd1b" dependencies = [ "adler2", "simd-adler32", @@ -4207,8 +4287,8 @@ dependencies = [ "borsh", "chrono", "log", - "prost 0.13.4", - "prost-types 0.13.4", + "prost 0.13.5", + "prost-types 0.13.5", "rand 0.8.5", "rcgen", "subtle", @@ -4372,9 +4452,9 @@ checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" [[package]] name = "native-tls" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" +checksum = "0dab59f8e050d5df8e4dd87d9206fb6f65a483e20ac9fda365ade4fab353196c" dependencies = [ "libc", "log", @@ -4393,7 +4473,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "jni-sys", "log", "ndk-sys", @@ -4456,7 +4536,7 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "cfg-if", "cfg_aliases 0.1.1", "libc", @@ -4468,7 +4548,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "cfg-if", "cfg_aliases 0.2.1", "libc", @@ -4553,7 +4633,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -4624,7 +4704,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -4633,7 +4713,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c9bff0aa1d48904a1385ea2a8b97576fbdcbc9a3cfccd0d31fe978e1c4038c5" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "libloading 0.8.6", "nvml-wrapper-sys", "static_assertions", @@ -4684,8 +4764,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.7.0", - "block2", + "bitflags 2.8.0", + "block2 0.5.1", "libc", "objc2", "objc2-core-data", @@ -4700,8 +4780,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ - "bitflags 2.7.0", - "block2", + "bitflags 2.8.0", + "block2 0.5.1", "objc2", "objc2-core-location", "objc2-foundation", @@ -4713,7 +4793,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" dependencies = [ - "block2", + "block2 0.5.1", "objc2", "objc2-foundation", ] @@ -4724,8 +4804,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.7.0", - "block2", + "bitflags 2.8.0", + "block2 0.5.1", "objc2", "objc2-foundation", ] @@ -4736,7 +4816,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" dependencies = [ - "block2", + "block2 0.5.1", "objc2", "objc2-foundation", "objc2-metal", @@ -4748,7 +4828,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" dependencies = [ - "block2", + "block2 0.5.1", "objc2", "objc2-contacts", "objc2-foundation", @@ -4756,9 +4836,9 @@ dependencies = [ [[package]] name = "objc2-encode" -version = "4.0.3" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" [[package]] name = "objc2-foundation" @@ -4766,8 +4846,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.7.0", - "block2", + "bitflags 2.8.0", + "block2 0.5.1", "libc", "objc2", ] @@ -4778,7 +4858,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" dependencies = [ - "block2", + "block2 0.5.1", "objc2", "objc2-app-kit", "objc2-foundation", @@ -4790,9 +4870,21 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.7.0", - "block2", + "bitflags 2.8.0", + "block2 0.5.1", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-osa-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6788b04a18ea31e3dc3ab256b8546639e5bbae07c1a0dc4ea8615252bc6aee9a" +dependencies = [ + "bitflags 2.8.0", "objc2", + "objc2-app-kit", "objc2-foundation", ] @@ -4802,8 +4894,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.7.0", - "block2", + "bitflags 2.8.0", + "block2 0.5.1", "objc2", "objc2-foundation", "objc2-metal", @@ -4825,8 +4917,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ - "bitflags 2.7.0", - "block2", + "bitflags 2.8.0", + "block2 0.5.1", "objc2", "objc2-cloud-kit", "objc2-core-data", @@ -4846,7 +4938,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" dependencies = [ - "block2", + "block2 0.5.1", "objc2", "objc2-foundation", ] @@ -4857,8 +4949,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ - "bitflags 2.7.0", - "block2", + "bitflags 2.8.0", + "block2 0.5.1", "objc2", "objc2-core-location", "objc2-foundation", @@ -4870,8 +4962,8 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68bc69301064cebefc6c4c90ce9cba69225239e4b8ff99d445a2b5563797da65" dependencies = [ - "bitflags 2.7.0", - "block2", + "bitflags 2.8.0", + "block2 0.5.1", "objc2", "objc2-app-kit", "objc2-foundation", @@ -4888,9 +4980,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.2" +version = "1.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" +checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" dependencies = [ "critical-section", "portable-atomic", @@ -4916,11 +5008,11 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.68" +version = "0.10.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" +checksum = "61cfb4e166a8bb8c9b55c500bc2308550148ece889be90f609377e58140f42c6" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "cfg-if", "foreign-types 0.3.2", "libc", @@ -4937,29 +5029,29 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-src" -version = "300.4.1+3.4.0" +version = "300.4.2+3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa4eac4138c62414b5622d1b31c5c304f34b406b013c079c2bbc652fdd6678c" +checksum = "168ce4e058f975fe43e89d9ccf78ca668601887ae736090aacc23ae353c298e2" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.104" +version = "0.9.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" +checksum = "8b22d5b84be05a8d6947c7cb71f7c849aa0f112acd4bf51c2a7c1c988ac0a9dc" dependencies = [ "cc", "libc", @@ -5005,9 +5097,9 @@ dependencies = [ [[package]] name = "os_info" -version = "3.9.2" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e6520c8cc998c5741ee68ec1dc369fc47e5f0ea5320018ecf2a1ccd6328f48b" +checksum = "2a604e53c24761286860eba4e2c8b23a0161526476b1de520139d69cdb85a6b5" dependencies = [ "log", "serde", @@ -5024,6 +5116,20 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "osakit" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35366a452fce3f8947eb2f33226a133aaf0cacedef2af67ade348d58be7f85d0" +dependencies = [ + "icrate", + "objc2-foundation", + "objc2-osa-kit", + "serde", + "serde_json", + "thiserror 1.0.69", +] + [[package]] name = "p256" version = "0.13.2" @@ -5036,9 +5142,9 @@ dependencies = [ [[package]] name = "p384" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209" +checksum = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6" dependencies = [ "ecdsa", "elliptic-curve", @@ -5072,28 +5178,30 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.6.12" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +checksum = "c9fde3d0718baf5bc92f577d652001da0f8d54cd03a7974e118d04fc888dc23d" dependencies = [ "arrayvec", "bitvec", "byte-slice-cast", + "const_format", "impl-trait-for-tuples", "parity-scale-codec-derive", + "rustversion", "serde", ] [[package]] name = "parity-scale-codec-derive" -version = "3.6.12" +version = "3.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +checksum = "581c837bb6b9541ce7faa9377c20616e4fb7650f6b0f68bc93c827ee504fb7b3" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.98", ] [[package]] @@ -5205,8 +5313,18 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ - "fixedbitset", - "indexmap 2.7.0", + "fixedbitset 0.4.2", + "indexmap 2.7.1", +] + +[[package]] +name = "petgraph" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +dependencies = [ + "fixedbitset 0.5.7", + "indexmap 2.7.1", ] [[package]] @@ -5313,7 +5431,7 @@ dependencies = [ "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -5345,15 +5463,15 @@ dependencies = [ [[package]] name = "phraze" -version = "0.3.15" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfa808155f59afafc457bd1a3835cb35d827f4387238099faa673447a656bfb" +checksum = "7c06cfe15e51d92f1cb74ef25401fe075520d4b38a2a3dc48fce7db5a98f2c22" dependencies = [ - "clap 4.5.26", + "clap 4.5.29", "clap_complete", "clap_mangen", "include-lines", - "rand 0.8.5", + "rand 0.9.0", "unicode-normalization", ] @@ -5368,11 +5486,11 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" +checksum = "dfe2e71e1471fe07709406bf725f710b02927c9c54b2b5b2ec0e8087d97c327d" dependencies = [ - "pin-project-internal 1.1.8", + "pin-project-internal 1.1.9", ] [[package]] @@ -5388,13 +5506,13 @@ dependencies = [ [[package]] name = "pin-project-internal" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" +checksum = "f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -5449,7 +5567,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42cf17e9a1800f5f396bc67d193dc9411b59012a5876445ef450d449881e1016" dependencies = [ "base64 0.22.1", - "indexmap 2.7.0", + "indexmap 2.7.1", "quick-xml", "serde", "time", @@ -5494,7 +5612,7 @@ dependencies = [ "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite", - "rustix 0.38.43", + "rustix 0.38.44", "tracing", "windows-sys 0.59.0", ] @@ -5540,7 +5658,7 @@ version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -5561,12 +5679,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.27" +version = "0.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483f8c21f64f3ea09fe0f30f5d48c3e8eefe5dac9129f0075f76593b4c1da705" +checksum = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" dependencies = [ "proc-macro2", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -5615,7 +5733,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.22.22", + "toml_edit 0.22.24", ] [[package]] @@ -5650,9 +5768,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.92" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] @@ -5663,7 +5781,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "hex", ] @@ -5673,18 +5791,18 @@ version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ - "bytes 1.9.0", + "bytes 1.10.0", "prost-derive 0.11.9", ] [[package]] name = "prost" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c0fef6c4230e4ccf618a35c59d7ede15dea37de8427500f50aff708806e42ec" +checksum = "2796faa41db3ec313a31f7624d9286acf277b52de526150b7e69f3debf891ee5" dependencies = [ - "bytes 1.9.0", - "prost-derive 0.13.4", + "bytes 1.10.0", + "prost-derive 0.13.5", ] [[package]] @@ -5693,13 +5811,13 @@ version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ - "bytes 1.9.0", + "bytes 1.10.0", "heck 0.4.1", "itertools 0.10.5", "lazy_static", "log", "multimap 0.8.3", - "petgraph", + "petgraph 0.6.5", "prettyplease 0.1.25", "prost 0.11.9", "prost-types 0.11.9", @@ -5711,21 +5829,21 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f3e5beed80eb580c68e2c600937ac2c4eedabdfd5ef1e5b7ea4f3fba84497b" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ "heck 0.5.0", - "itertools 0.13.0", + "itertools 0.14.0", "log", "multimap 0.10.0", "once_cell", - "petgraph", - "prettyplease 0.2.27", - "prost 0.13.4", - "prost-types 0.13.4", + "petgraph 0.7.1", + "prettyplease 0.2.29", + "prost 0.13.5", + "prost-types 0.13.5", "regex", - "syn 2.0.96", + "syn 2.0.98", "tempfile", ] @@ -5744,15 +5862,15 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "157c5a9d7ea5c2ed2d9fb8f495b64759f7816c7eaea54ba3978f0d63000162e3" +checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.13.0", + "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -5766,11 +5884,11 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2f1e56baa61e93533aebc21af4d2134b70f66275e0fcdf3cbe43d77ff7e8fc" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" dependencies = [ - "prost 0.13.4", + "prost 0.13.5", ] [[package]] @@ -5813,14 +5931,14 @@ version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62e96808277ec6f97351a2380e6c25114bc9e67037775464979f3037c92d05ef" dependencies = [ - "bytes 1.9.0", + "bytes 1.10.0", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash", "rustls", "socket2 0.5.8", - "thiserror 2.0.10", + "thiserror 2.0.11", "tokio", "tracing", ] @@ -5831,7 +5949,7 @@ version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ - "bytes 1.9.0", + "bytes 1.10.0", "getrandom 0.2.15", "rand 0.8.5", "ring", @@ -5839,7 +5957,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.10", + "thiserror 2.0.11", "tinyvec", "tracing", "web-time", @@ -5920,6 +6038,17 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rand" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.0", + "zerocopy 0.8.17", +] + [[package]] name = "rand_chacha" version = "0.2.2" @@ -5940,6 +6069,16 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.0", +] + [[package]] name = "rand_core" version = "0.5.1" @@ -5958,6 +6097,16 @@ dependencies = [ "getrandom 0.2.15", ] +[[package]] +name = "rand_core" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08f3c9802962f7e1b25113931d94f43ed9725bebc59db9d0c3e9a23b67e15ff" +dependencies = [ + "getrandom 0.3.1", + "zerocopy 0.8.17", +] + [[package]] name = "rand_hc" version = "0.2.0" @@ -6061,7 +6210,7 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", ] [[package]] @@ -6075,6 +6224,17 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "redox_users" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror 2.0.11", +] + [[package]] name = "regex" version = "1.11.1" @@ -6111,7 +6271,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da" dependencies = [ "base64 0.22.1", - "bytes 1.9.0", + "bytes 1.10.0", "encoding_rs", "futures-channel", "futures-core", @@ -6261,9 +6421,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustc-hex" @@ -6296,11 +6456,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.43" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "errno", "libc", "linux-raw-sys 0.4.15", @@ -6309,9 +6469,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.21" +version = "0.23.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f287924602bf649d949c63dc8ac8b235fa5387d394020705b80c4eb597ce5b8" +checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" dependencies = [ "log", "once_cell", @@ -6333,9 +6493,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2bf47e6ff922db3825eb750c4e2ff784c6ff8fb9e13046ef6a1d1c5401b0b37" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" dependencies = [ "web-time", ] @@ -6359,9 +6519,9 @@ checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" [[package]] name = "same-file" @@ -6424,7 +6584,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -6450,7 +6610,7 @@ checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -6462,7 +6622,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -6484,7 +6644,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "core-foundation 0.9.4", "core-foundation-sys", "libc", @@ -6497,7 +6657,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "core-foundation 0.10.0", "core-foundation-sys", "libc", @@ -6536,9 +6696,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" dependencies = [ "serde", ] @@ -6630,7 +6790,7 @@ checksum = "b3b211916a3aed3398125b02b98a5cd4fc530c5626dd28a3c86865fe6cd93935" dependencies = [ "minidumper-child", "sentry", - "thiserror 2.0.10", + "thiserror 2.0.11", ] [[package]] @@ -6710,7 +6870,7 @@ checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -6721,14 +6881,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] name = "serde_json" -version = "1.0.135" +version = "1.0.138" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9" +checksum = "d434192e7da787e94a6ea7e9670b26a036d0ca41e0b7efb2676dd32bae872949" dependencies = [ "itoa 1.0.14", "memchr", @@ -6744,7 +6904,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -6778,7 +6938,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_derive", "serde_json", @@ -6795,7 +6955,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -6804,7 +6964,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "itoa 1.0.14", "ryu", "serde", @@ -6932,13 +7092,13 @@ checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" [[package]] name = "simple_asn1" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +checksum = "297f631f50729c8c99b84667867963997ec0b50f32b2a7dbcab828ef0541e8bb" dependencies = [ "num-bigint", "num-traits", - "thiserror 1.0.69", + "thiserror 2.0.11", "time", ] @@ -6977,7 +7137,7 @@ checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -7122,35 +7282,34 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "string_cache" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +checksum = "938d512196766101d333398efde81bc1f37b00cb42c2f8350e5df639f040bbbe" dependencies = [ "new_debug_unreachable", - "once_cell", "parking_lot 0.12.3", - "phf_shared 0.10.0", + "phf_shared 0.11.3", "precomputed-hash", "serde", ] [[package]] name = "string_cache_codegen" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988" +checksum = "244292f3441c89febe5b5bdfbb6863aeaf4f64da810ea3050fd927b27b8d92ce" dependencies = [ - "phf_generator 0.10.0", - "phf_shared 0.10.0", + "phf_generator 0.11.3", + "phf_shared 0.11.3", "proc-macro2", "quote", ] [[package]] name = "strip-ansi-escapes" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ff8ef943b384c414f54aefa961dd2bd853add74ec75e7ac74cf91dba62bcfa" +checksum = "2a8f8038e7e7969abb3f1b7c2a811225e9296da208539e0f79c5251d6cac0025" dependencies = [ "vte", ] @@ -7242,9 +7401,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.96" +version = "2.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" +checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" dependencies = [ "proc-macro2", "quote", @@ -7280,7 +7439,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -7312,7 +7471,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "core-foundation 0.9.4", "system-configuration-sys", ] @@ -7336,7 +7495,7 @@ dependencies = [ "cfg-expr", "heck 0.5.0", "pkg-config", - "toml 0.8.19", + "toml 0.8.20", "version-compare", ] @@ -7346,7 +7505,7 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3731d04d4ac210cd5f344087733943b9bfb1a32654387dad4d1c70de21aee2c9" dependencies = [ - "bitflags 2.7.0", + "bitflags 2.8.0", "cocoa 0.26.0", "core-foundation 0.10.0", "core-graphics 0.24.0", @@ -7386,7 +7545,7 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -7441,7 +7600,7 @@ dependencies = [ "embed-resource", "fix-path-env", "flate2", - "futures-lite 2.5.0", + "futures-lite 2.6.0", "futures-util", "hex", "jsonwebtoken", @@ -7492,7 +7651,7 @@ dependencies = [ "tauri-plugin-shell", "tauri-plugin-single-instance", "tauri-plugin-updater", - "thiserror 2.0.10", + "thiserror 2.0.11", "tokio", "tokio-util 0.7.13", "tonic", @@ -7567,7 +7726,7 @@ version = "1.11.0-pre.0" source = "git+https://github.com/tari-project/tari.git?tag=v1.11.0-pre.0#36ff43680ac9eacada86621aee873149d86175ad" dependencies = [ "base64 0.21.7", - "bitflags 2.7.0", + "bitflags 2.8.0", "blake2", "borsh", "bs58 0.5.1", @@ -7594,9 +7753,9 @@ source = "git+https://github.com/tari-project/tari.git?tag=v1.11.0-pre.0#36ff436 dependencies = [ "anyhow", "async-trait", - "bitflags 2.7.0", + "bitflags 2.8.0", "blake2", - "bytes 1.9.0", + "bytes 1.10.0", "chrono", "cidr", "data-encoding", @@ -7609,8 +7768,8 @@ dependencies = [ "multiaddr", "nom", "once_cell", - "pin-project 1.1.8", - "prost 0.13.4", + "pin-project 1.1.9", + "prost 0.13.5", "rand 0.8.5", "serde", "serde_derive", @@ -7637,7 +7796,7 @@ version = "1.11.0-pre.0" source = "git+https://github.com/tari-project/tari.git?tag=v1.11.0-pre.0#36ff43680ac9eacada86621aee873149d86175ad" dependencies = [ "anyhow", - "bitflags 2.7.0", + "bitflags 2.8.0", "blake2", "chacha20 0.7.3", "chacha20poly1305", @@ -7649,7 +7808,7 @@ dependencies = [ "log", "log-mdc", "pin-project 0.4.30", - "prost 0.13.4", + "prost 0.13.5", "rand 0.8.5", "serde", "tari_common", @@ -7684,7 +7843,7 @@ dependencies = [ "anyhow", "async-trait", "bincode", - "bitflags 2.7.0", + "bitflags 2.8.0", "blake2", "borsh", "bytes 0.5.6", @@ -7710,7 +7869,7 @@ dependencies = [ "num-traits", "once_cell", "primitive-types", - "prost 0.13.4", + "prost 0.13.5", "rand 0.8.5", "randomx-rs", "serde", @@ -7856,7 +8015,7 @@ dependencies = [ "hickory-resolver", "lmdb-zero", "log", - "prost 0.13.4", + "prost 0.13.5", "rand 0.8.5", "rustls", "serde", @@ -7962,13 +8121,13 @@ dependencies = [ [[package]] name = "tauri" -version = "2.2.0" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e2e3349fbb2be7af9fad1b43d61ac83ba55ab48d47fbe1b2732f0c8211610a9" +checksum = "58a998b6be84104ca05c7e9a21f2180ddec020c8b84ea59a8fc8530a2a19588d" dependencies = [ "anyhow", - "bytes 1.9.0", - "dirs 5.0.1", + "bytes 1.10.0", + "dirs 6.0.0", "dunce", "embed_plist", "futures-util", @@ -8000,7 +8159,7 @@ dependencies = [ "tauri-runtime", "tauri-runtime-wry", "tauri-utils", - "thiserror 2.0.10", + "thiserror 2.0.11", "tokio", "tray-icon", "url", @@ -8014,9 +8173,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.0.4" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b274ec7239ada504deb615f1c8abd7ba99631e879709e6f10e5d17217058d976" +checksum = "8e950124f6779c6cf98e3260c7a6c8488a74aa6350dd54c6950fdaa349bca2df" dependencies = [ "anyhow", "cargo_toml", @@ -8031,7 +8190,7 @@ dependencies = [ "tauri-codegen", "tauri-utils", "tauri-winres", - "toml 0.8.19", + "toml 0.8.20", "walkdir", ] @@ -8053,9 +8212,9 @@ dependencies = [ "serde", "serde_json", "sha2", - "syn 2.0.96", + "syn 2.0.98", "tauri-utils", - "thiserror 2.0.10", + "thiserror 2.0.11", "time", "url", "uuid", @@ -8071,7 +8230,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", "tauri-codegen", "tauri-utils", ] @@ -8089,7 +8248,7 @@ dependencies = [ "serde", "serde_json", "tauri-utils", - "toml 0.8.19", + "toml 0.8.20", "walkdir", ] @@ -8099,20 +8258,20 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5458ae16eac81bdbe8d9da2a9f3e01e8cdedbc381cc1727c01127542c8a61c5" dependencies = [ - "clap 4.5.26", + "clap 4.5.29", "log", "serde", "serde_json", "tauri", "tauri-plugin", - "thiserror 2.0.10", + "thiserror 2.0.11", ] [[package]] name = "tauri-plugin-clipboard-manager" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be2c6f5d82396c1a86d5b16052cc97976a82e92244bf074dd6e2f6272d8619d" +checksum = "54de1e3a2ea008687954d5d72952800e87b09f6fbea6d0960d99e58050537642" dependencies = [ "arboard", "log", @@ -8120,7 +8279,7 @@ dependencies = [ "serde_json", "tauri", "tauri-plugin", - "thiserror 2.0.10", + "thiserror 2.0.11", ] [[package]] @@ -8138,7 +8297,7 @@ dependencies = [ "sys-locale", "tauri", "tauri-plugin", - "thiserror 2.0.10", + "thiserror 2.0.11", ] [[package]] @@ -8164,7 +8323,7 @@ dependencies = [ "serde", "tauri", "tauri-plugin", - "thiserror 2.0.10", + "thiserror 2.0.11", ] [[package]] @@ -8184,38 +8343,39 @@ dependencies = [ "shared_child", "tauri", "tauri-plugin", - "thiserror 2.0.10", + "thiserror 2.0.11", "tokio", ] [[package]] name = "tauri-plugin-single-instance" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f36019ee9832dc99e4450bb55a21cfad8633b19c2c18bd17c7741939b070ede" +checksum = "47c387d4d96690131dc46d1d2827df5c222b896a2bfeb15a16267229a55c50b5" dependencies = [ "serde", "serde_json", "tauri", - "thiserror 2.0.10", + "thiserror 2.0.11", "tracing", "windows-sys 0.59.0", - "zbus 4.4.0", + "zbus 5.5.0", ] [[package]] name = "tauri-plugin-updater" -version = "2.3.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce2d39224390c41ba544f02b4f1721f42256320b3fb8c371e9425cbddeb4a68c" +checksum = "ebf3da08c36fb03c98c76e5563d4e74d9a590df0f40978cbe07f39cb52833f7c" dependencies = [ "base64 0.22.1", - "dirs 5.0.1", + "dirs 6.0.0", "flate2", "futures-util", "http", "infer", "minisign-verify", + "osakit", "percent-encoding", "reqwest", "semver", @@ -8225,7 +8385,7 @@ dependencies = [ "tauri", "tauri-plugin", "tempfile", - "thiserror 2.0.10", + "thiserror 2.0.11", "time", "tokio", "url", @@ -8247,7 +8407,7 @@ dependencies = [ "serde", "serde_json", "tauri-utils", - "thiserror 2.0.10", + "thiserror 2.0.11", "url", "windows 0.58.0", ] @@ -8310,8 +8470,8 @@ dependencies = [ "serde_with", "serialize-to-javascript", "swift-rs", - "thiserror 2.0.10", - "toml 0.8.19", + "thiserror 2.0.11", + "toml 0.8.20", "url", "urlpattern", "uuid", @@ -8330,15 +8490,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.15.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704" +checksum = "38c246215d7d24f48ae091a2902398798e05d978b24315d6efbc00ede9a8bb91" dependencies = [ "cfg-if", "fastrand 2.3.0", - "getrandom 0.2.15", + "getrandom 0.3.1", "once_cell", - "rustix 0.38.43", + "rustix 0.38.44", "windows-sys 0.59.0", ] @@ -8379,11 +8539,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.10" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3ac7f54ca534db81081ef1c1e7f6ea8a3ef428d2fc069097c079443d24124d3" +checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" dependencies = [ - "thiserror-impl 2.0.10", + "thiserror-impl 2.0.11", ] [[package]] @@ -8394,18 +8554,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] name = "thiserror-impl" -version = "2.0.10" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e9465d30713b56a37ede7185763c3492a91be2f5fa68d958c44e41ab9248beb" +checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -8521,7 +8681,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e" dependencies = [ "backtrace", - "bytes 1.9.0", + "bytes 1.10.0", "libc", "mio", "parking_lot 0.12.3", @@ -8540,7 +8700,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -8581,7 +8741,7 @@ version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" dependencies = [ - "bytes 1.9.0", + "bytes 1.10.0", "futures-core", "futures-io", "futures-sink", @@ -8596,7 +8756,7 @@ version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" dependencies = [ - "bytes 1.9.0", + "bytes 1.10.0", "futures-core", "futures-io", "futures-sink", @@ -8627,14 +8787,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.22", + "toml_edit 0.22.24", ] [[package]] @@ -8652,7 +8812,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_spanned", "toml_datetime", @@ -8665,22 +8825,22 @@ version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "toml_datetime", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.22" +version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "indexmap 2.7.0", + "indexmap 2.7.1", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.22", + "winnow 0.7.2", ] [[package]] @@ -8693,7 +8853,7 @@ dependencies = [ "async-trait", "axum", "base64 0.22.1", - "bytes 1.9.0", + "bytes 1.10.0", "h2", "http", "http-body", @@ -8702,8 +8862,8 @@ dependencies = [ "hyper-timeout", "hyper-util", "percent-encoding", - "pin-project 1.1.8", - "prost 0.13.4", + "pin-project 1.1.9", + "prost 0.13.5", "rustls-pemfile", "socket2 0.5.8", "tokio", @@ -8721,12 +8881,12 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" dependencies = [ - "prettyplease 0.2.27", + "prettyplease 0.2.29", "proc-macro2", - "prost-build 0.13.4", - "prost-types 0.13.4", + "prost-build 0.13.5", + "prost-types 0.13.5", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -8739,7 +8899,7 @@ dependencies = [ "futures-util", "hdrhistogram", "indexmap 1.9.3", - "pin-project 1.1.8", + "pin-project 1.1.9", "pin-project-lite", "rand 0.8.5", "slab", @@ -8797,7 +8957,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -8963,9 +9123,9 @@ checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +checksum = "a210d160f08b701c8721ba1c726c11662f877ea6b7094007e1ca9a1041945034" [[package]] name = "unicode-normalization" @@ -9100,19 +9260,19 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.11.1" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b913a3b5fe84142e269d63cc62b64319ccaf89b748fc31fe025177f767a756c4" +checksum = "ced87ca4be083373936a67f8de945faa23b6b42384bd5b64434850802c6dccd0" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.3.1", "serde", ] [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vcpkg" @@ -9154,22 +9314,11 @@ dependencies = [ [[package]] name = "vte" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197" -dependencies = [ - "utf8parse", - "vte_generate_state_changes", -] - -[[package]] -name = "vte_generate_state_changes" -version = "0.1.2" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e369bee1b05d510a7b4ed645f5faa90619e05437111783ea5848f28d97d3c2e" +checksum = "231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077" dependencies = [ - "proc-macro2", - "quote", + "memchr", ] [[package]] @@ -9209,36 +9358,46 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasm-bindgen" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.49" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", @@ -9249,9 +9408,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -9259,22 +9418,25 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.99" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-streams" @@ -9306,9 +9468,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.76" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -9370,9 +9532,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.7" +version = "0.26.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d642ff16b7e79272ae451b7322067cdc17cadf68c23264be9d94a32319efe7e" +checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" dependencies = [ "rustls-pki-types", ] @@ -9399,7 +9561,7 @@ checksum = "1d228f15bba3b9d56dde8bddbee66fa24545bd17b48d5128ccf4a8742b18e431" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -9428,7 +9590,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.43", + "rustix 0.38.44", ] [[package]] @@ -9470,9 +9632,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window-vibrancy" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ea403deff7b51fff19e261330f71608ff2cdef5721d72b64180bb95be7c4150" +checksum = "831ad7678290beae36be6f9fad9234139c7f00f3b536347de7745621716be82d" dependencies = [ "objc2", "objc2-app-kit", @@ -9563,7 +9725,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -9574,7 +9736,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -9585,7 +9747,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -9596,7 +9758,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -9936,9 +10098,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.22" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39281189af81c07ec09db316b302a3e67bf9bd7cbf6c820b50e35fee9c2fa980" +checksum = "59690dea168f2198d1a3b0cac23b8063efcd11012f10ae4698f284808c8ef603" dependencies = [ "memchr", ] @@ -9972,6 +10134,15 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags 2.8.0", +] + [[package]] name = "wrapcenum-derive" version = "0.4.1" @@ -9981,7 +10152,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -9998,12 +10169,12 @@ checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "wry" -version = "0.48.0" +version = "0.48.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e644bf458e27b11b0ecafc9e5633d1304fdae82baca1d42185669752fe6ca4f" +checksum = "a2e33c08b174442ff80d5c791020696f9f8b4e4a87b8cfc7494aad6167ec44e1" dependencies = [ "base64 0.22.1", - "block2", + "block2 0.5.1", "cookie", "crossbeam-channel", "dpi", @@ -10028,7 +10199,7 @@ dependencies = [ "sha2", "soup3", "tao-macros", - "thiserror 2.0.10", + "thiserror 2.0.11", "url", "webkit2gtk", "webkit2gtk-sys", @@ -10076,7 +10247,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" dependencies = [ "gethostname 0.4.3", - "rustix", + "rustix 0.38.44", "x11rb-protocol", ] @@ -10094,7 +10265,7 @@ checksum = "e105d177a3871454f754b33bb0ee637ecaaac997446375fd3e5d43a2ed00c909" dependencies = [ "libc", "linux-raw-sys 0.4.15", - "rustix 0.38.43", + "rustix 0.38.44", ] [[package]] @@ -10126,7 +10297,7 @@ dependencies = [ "log", "nohash-hasher", "parking_lot 0.12.3", - "pin-project 1.1.8", + "pin-project 1.1.9", "rand 0.8.5", "static_assertions", "web-time", @@ -10161,7 +10332,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", "synstructure 0.13.1", ] @@ -10206,9 +10377,9 @@ dependencies = [ [[package]] name = "zbus" -version = "4.4.0" +version = "5.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725" +checksum = "59c333f648ea1b647bc95dc1d34807c8e25ed7a6feff3394034dc4776054b236" dependencies = [ "async-broadcast 0.7.2", "async-executor", @@ -10223,23 +10394,21 @@ dependencies = [ "enumflags2", "event-listener 5.4.0", "futures-core", - "futures-sink", - "futures-util", + "futures-lite 2.6.0", "hex", "nix 0.29.0", "ordered-stream 0.2.0", - "rand 0.8.5", "serde", "serde_repr", - "sha1 0.10.6", "static_assertions", "tracing", "uds_windows", - "windows-sys 0.52.0", + "windows-sys 0.59.0", + "winnow 0.7.2", "xdg-home", - "zbus_macros 4.4.0", - "zbus_names 3.0.0", - "zvariant 4.2.0", + "zbus_macros 5.5.0", + "zbus_names 4.2.0", + "zvariant 5.4.0", ] [[package]] @@ -10257,14 +10426,16 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "4.4.0" +version = "5.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" +checksum = "f325ad10eb0d0a3eb060203494c3b7ec3162a01a59db75d2deee100339709fc0" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", + "zbus_names 4.2.0", + "zvariant 5.4.0", "zvariant_utils", ] @@ -10281,13 +10452,14 @@ dependencies = [ [[package]] name = "zbus_names" -version = "3.0.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" +checksum = "7be68e64bf6ce8db94f63e72f0c7eb9a60d733f7e0499e628dfab0f84d6bcb97" dependencies = [ "serde", "static_assertions", - "zvariant 4.2.0", + "winnow 0.7.2", + "zvariant 5.4.0", ] [[package]] @@ -10297,7 +10469,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa91407dacce3a68c56de03abe2760159582b846c6a4acd2f456618087f12713" +dependencies = [ + "zerocopy-derive 0.8.17", ] [[package]] @@ -10308,7 +10489,18 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06718a168365cad3d5ff0bb133aad346959a2074bd4a85c121255a11304a8626" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", ] [[package]] @@ -10328,7 +10520,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", "synstructure 0.13.1", ] @@ -10349,7 +10541,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -10371,7 +10563,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", ] [[package]] @@ -10390,13 +10582,13 @@ dependencies = [ "displaydoc", "flate2", "hmac", - "indexmap 2.7.0", + "indexmap 2.7.1", "lzma-rs", "memchr", "pbkdf2", "rand 0.8.5", "sha1 0.10.6", - "thiserror 2.0.10", + "thiserror 2.0.11", "time", "zeroize", "zopfli", @@ -10461,15 +10653,17 @@ dependencies = [ [[package]] name = "zvariant" -version = "4.2.0" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe" +checksum = "b2df9ee044893fcffbdc25de30546edef3e32341466811ca18421e3cd6c5a3ac" dependencies = [ "endi", "enumflags2", "serde", "static_assertions", - "zvariant_derive 4.2.0", + "winnow 0.7.2", + "zvariant_derive 5.4.0", + "zvariant_utils", ] [[package]] @@ -10486,24 +10680,27 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "4.2.0" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" +checksum = "74170caa85b8b84cc4935f2d56a57c7a15ea6185ccdd7eadb57e6edd90f94b2f" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.96", + "syn 2.0.98", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "2.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" +checksum = "e16edfee43e5d7b553b77872d99bc36afdda75c223ca7ad5e3fbecd82ca5fc34" dependencies = [ "proc-macro2", "quote", - "syn 2.0.96", + "serde", + "static_assertions", + "syn 2.0.98", + "winnow 0.7.2", ] diff --git a/src-tauri/src/commands.rs b/src-tauri/src/commands.rs index 9e38bae38..23dc57223 100644 --- a/src-tauri/src/commands.rs +++ b/src-tauri/src/commands.rs @@ -824,6 +824,8 @@ pub async fn reset_settings<'r>( info!(target: LOG_TARGET, "[reset_settings] Restarting the app"); app.restart(); + + Ok(()) } #[tauri::command] @@ -939,18 +941,6 @@ pub async fn set_auto_update( .inspect_err(|e| error!(target: LOG_TARGET, "error at set_auto_update {:?}", e)) .map_err(|e| e.to_string())?; - if auto_update { - SystemStatus::current() - .spawn_listener() - .await - .map_err(|e| e.to_string())?; - } else { - SystemStatus::current() - .stop_listener() - .await - .map_err(|e| e.to_string())?; - } - if timer.elapsed() > MAX_ACCEPTABLE_COMMAND_TIME { warn!(target: LOG_TARGET, "set_auto_update took too long: {:?}", timer.elapsed()); } diff --git a/src-tauri/src/events.rs b/src-tauri/src/events.rs index 92130f9cf..8ffcea6b9 100644 --- a/src-tauri/src/events.rs +++ b/src-tauri/src/events.rs @@ -37,3 +37,11 @@ pub struct ReleaseNotesHandlerEvent { pub is_app_update_available: bool, pub should_show_dialog: bool, } + +#[derive(Debug, Serialize, Clone)] +pub struct ResumingAllProcessesPayload { + pub title: String, + pub stage_progress: u32, + pub stage_total: u32, + pub is_resuming: bool, +} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index ea1d95a40..fc7bde94f 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -88,7 +88,7 @@ use crate::tor_manager::TorManager; use crate::wallet_manager::WalletManager; #[cfg(target_os = "macos")] use utils::macos_utils::is_app_in_applications_folder; -use utils::shutdown_utils::stop_all_processes; +use utils::shutdown_utils::{resume_all_processes, stop_all_processes}; mod airdrop; mod app_config; @@ -466,16 +466,9 @@ async fn setup_inner( let app_config = state.config.read().await; let use_tor = app_config.use_tor(); - let is_auto_update_enabled = app_config.auto_update(); let p2pool_enabled = app_config.p2pool_enabled(); drop(app_config); - if is_auto_update_enabled { - SystemStatus::current().spawn_listener().await?; - } else { - SystemStatus::current().stop_listener().await?; - } - let mm_proxy_manager = state.mm_proxy_manager.clone(); let is_auto_launcher_enabled = state.config.read().await.should_auto_launch(); @@ -993,6 +986,28 @@ async fn setup_inner( } }); + let app_handle_clone: tauri::AppHandle = app.clone(); + tauri::async_runtime::spawn(async move { + let mut last_state = SystemStatus::current().check_if_in_sleep_mode().await; + let mut interval: time::Interval = time::interval(Duration::from_secs(5)); + loop { + interval.tick().await; + let current_state = SystemStatus::current().check_if_in_sleep_mode().await; + + if last_state && !current_state { + info!(target: LOG_TARGET, "System is no longer in sleep mode"); + let _unused = resume_all_processes(app_handle_clone.clone()).await; + } + + if !last_state && current_state { + info!(target: LOG_TARGET, "System entered sleep mode"); + let _unused = stop_all_processes(app_handle_clone.clone(), false).await; + } + + last_state = current_state; + } + }); + let _unused = ReleaseNotes::current() .handle_release_notes_event_emit(state.clone(), app) .await; diff --git a/src-tauri/src/updates_manager.rs b/src-tauri/src/updates_manager.rs index 9309b3f39..716ee900d 100644 --- a/src-tauri/src/updates_manager.rs +++ b/src-tauri/src/updates_manager.rs @@ -122,7 +122,7 @@ impl UpdatesManager { *self.update.write().await = Some(update); let is_auto_update = self.config.read().await.auto_update(); - let is_screen_locked = SystemStatus::current().is_in_sleep_mode().await; + let is_screen_locked = SystemStatus::current().check_if_in_sleep_mode().await; if is_screen_locked && is_auto_update { info!(target: LOG_TARGET, "try_update: Screen is locked. Displaying notification"); diff --git a/src-tauri/src/utils/shutdown_utils.rs b/src-tauri/src/utils/shutdown_utils.rs index d94bcf36f..4677831f6 100644 --- a/src-tauri/src/utils/shutdown_utils.rs +++ b/src-tauri/src/utils/shutdown_utils.rs @@ -20,9 +20,20 @@ // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE // USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -use crate::{UniverseAppState, APPLICATION_FOLDER_ID}; -use log::info; -use tauri::Manager; +use std::time::Duration; + +use crate::{ + events::ResumingAllProcessesPayload, + node_manager::{NodeManagerError, STOP_ON_ERROR_CODES}, + p2pool_manager::P2poolConfig, + progress_tracker::ProgressTracker, + utils::system_status::SystemStatus, + StartConfig, UniverseAppState, APPLICATION_FOLDER_ID, +}; +use anyhow::anyhow; +use log::{error, info, warn}; +use tauri::{Emitter, Manager}; +use tokio::sync::watch; static LOG_TARGET: &str = "tari::universe::shutdown_utils"; @@ -37,6 +48,10 @@ pub async fn stop_all_processes( if should_shutdown && !state.shutdown.is_triggered() { info!(target: LOG_TARGET, "Entering shutdown sequence"); state.shutdown.clone().trigger(); + SystemStatus::current() + .stop_listener() + .await + .map_err(|e| e.to_string())?; } let base_path = app_handle @@ -124,3 +139,254 @@ pub async fn stop_all_processes( Ok(()) } + +pub async fn resume_all_processes(app_handle: tauri::AppHandle) -> Result<(), anyhow::Error> { + let state = app_handle.state::().inner(); + let (tx, rx) = watch::channel("".to_string()); + let progress = ProgressTracker::new(app_handle.clone(), Some(tx)); + + let data_dir = app_handle + .path() + .app_local_data_dir() + .expect("Could not get data dir"); + let config_dir = app_handle + .path() + .app_config_dir() + .expect("Could not get config dir"); + let log_dir = app_handle + .path() + .app_log_dir() + .expect("Could not get log dir"); + + let use_tor = state.config.read().await.use_tor(); + let p2pool_enabled = state.config.read().await.p2pool_enabled(); + let mut stage_total = 5; + let mut stage_progress = 0; + if use_tor { + stage_total += 1; + } + + if p2pool_enabled { + stage_total += 1; + } + + app_handle + .emit( + "resuming-all-processes", + ResumingAllProcessesPayload { + title: "resuming-all-processes".to_string(), + stage_progress, + stage_total, + is_resuming: true, + }, + ) + .map_err(|e| anyhow!(e))?; + stage_progress += 1; + + let cpu_miner_config = state.cpu_miner_config.read().await; + + let mm_proxy_manager = state.mm_proxy_manager.clone(); + + let mut tor_control_port = None; + if use_tor && !cfg!(target_os = "macos") { + app_handle + .emit( + "resuming-all-processes", + ResumingAllProcessesPayload { + title: "resuming-tor".to_string(), + stage_progress, + stage_total, + is_resuming: true, + }, + ) + .map_err(|e| anyhow!(e))?; + stage_progress += 1; + + state + .tor_manager + .ensure_started( + state.shutdown.to_signal(), + data_dir.clone(), + config_dir.clone(), + log_dir.clone(), + ) + .await?; + tor_control_port = state.tor_manager.get_control_port().await?; + } + + app_handle + .emit( + "resuming-all-processes", + ResumingAllProcessesPayload { + title: "resuming-node".to_string(), + stage_progress, + stage_total, + is_resuming: true, + }, + ) + .map_err(|e| anyhow!(e))?; + stage_progress += 1; + + for _i in 0..2 { + match state + .node_manager + .ensure_started( + state.shutdown.to_signal(), + data_dir.clone(), + config_dir.clone(), + log_dir.clone(), + use_tor, + tor_control_port, + ) + .await + { + Ok(_) => {} + Err(e) => { + if let NodeManagerError::ExitCode(code) = e { + if STOP_ON_ERROR_CODES.contains(&code) { + warn!(target: LOG_TARGET, "Database for node is corrupt or needs a reset, deleting and trying again."); + state.node_manager.clean_data_folder(&data_dir).await?; + continue; + } + } + error!(target: LOG_TARGET, "Could not start node manager: {:?}", e); + + app_handle.exit(-1); + return Err(e.into()); + } + } + } + info!(target: LOG_TARGET, "Node has started and is ready"); + + app_handle + .emit( + "resuming-all-processes", + ResumingAllProcessesPayload { + title: "resuming-wallet".to_string(), + stage_progress, + stage_total, + is_resuming: true, + }, + ) + .map_err(|e| anyhow!(e))?; + stage_progress += 1; + + state + .wallet_manager + .ensure_started( + state.shutdown.to_signal(), + data_dir.clone(), + config_dir.clone(), + log_dir.clone(), + ) + .await?; + + app_handle + .emit( + "resuming-all-processes", + ResumingAllProcessesPayload { + title: "syncing-node".to_string(), + stage_progress, + stage_total, + is_resuming: true, + }, + ) + .map_err(|e| anyhow!(e))?; + stage_progress += 1; + + state.node_manager.wait_synced(progress.clone()).await?; + + let mut cpu_miner = state.cpu_miner.write().await; + let benchmarked_hashrate = cpu_miner + .start_benchmarking( + state.shutdown.to_signal(), + Duration::from_secs(30), + data_dir.clone(), + config_dir.clone(), + log_dir.clone(), + ) + .await?; + drop(cpu_miner); + + if p2pool_enabled { + app_handle + .emit( + "resuming-all-processes", + ResumingAllProcessesPayload { + title: "resuming-p2pool".to_string(), + stage_progress, + stage_total, + is_resuming: true, + }, + ) + .map_err(|e| anyhow!(e))?; + stage_progress += 1; + + let base_node_grpc = state.node_manager.get_grpc_port().await?; + let p2pool_config = P2poolConfig::builder() + .with_base_node(base_node_grpc) + .with_stats_server_port(state.config.read().await.p2pool_stats_server_port()) + .with_cpu_benchmark_hashrate(Some(benchmarked_hashrate)) + .build()?; + + state + .p2pool_manager + .ensure_started( + state.shutdown.to_signal(), + p2pool_config, + data_dir.clone(), + config_dir.clone(), + log_dir.clone(), + ) + .await?; + } + + let base_node_grpc_port = state.node_manager.get_grpc_port().await?; + + app_handle + .emit( + "resuming-all-processes", + ResumingAllProcessesPayload { + title: "resuming-mm-proxy".to_string(), + stage_progress, + stage_total, + is_resuming: true, + }, + ) + .map_err(|e| anyhow!(e))?; + stage_progress += 1; + + let config = state.config.read().await; + let p2pool_port = state.p2pool_manager.grpc_port().await; + mm_proxy_manager + .start(StartConfig { + base_node_grpc_port, + p2pool_port, + app_shutdown: state.shutdown.to_signal().clone(), + base_path: data_dir.clone(), + config_path: config_dir.clone(), + log_path: log_dir.clone(), + tari_address: cpu_miner_config.tari_address.clone(), + coinbase_extra: "".to_string(), + p2pool_enabled, + monero_nodes: config.mmproxy_monero_nodes().clone(), + use_monero_fail: config.mmproxy_use_monero_fail(), + }) + .await?; + mm_proxy_manager.wait_ready().await?; + drop(config); + + app_handle + .emit( + "resuming-all-processes", + ResumingAllProcessesPayload { + title: "finishing-resume".to_string(), + stage_progress, + stage_total, + is_resuming: false, + }, + ) + .map_err(|e| anyhow!(e))?; + + Ok(()) +} diff --git a/src-tauri/src/utils/system_status.rs b/src-tauri/src/utils/system_status.rs index 055c9abe6..d357f9b47 100644 --- a/src-tauri/src/utils/system_status.rs +++ b/src-tauri/src/utils/system_status.rs @@ -117,7 +117,7 @@ impl SystemStatus { Ok(()) } - pub async fn is_in_sleep_mode(&self) -> bool { + pub async fn check_if_in_sleep_mode(&self) -> bool { *self.is_in_sleep_mode.read().await } diff --git a/src/App/AppEffects.tsx b/src/App/AppEffects.tsx index dc3ed39cb..17b1d4930 100644 --- a/src/App/AppEffects.tsx +++ b/src/App/AppEffects.tsx @@ -8,6 +8,7 @@ import useListenForCriticalProblem from '@app/hooks/useListenForCriticalProblem. import { setMiningNetwork } from '@app/store/miningStoreActions.ts'; import useTauriEventsListener from '@app/hooks/app/useTauriEventsListener.ts'; import { useListenForAppUpdated } from '@app/hooks/app/useListenForAppUpdated.ts'; +import { useListenForAppResuming } from '@app/hooks/app/useListenForAppResuming.ts'; // This component is used to initialise the app and listen for any events that need to be listened to // Created as separate component to avoid cluttering the main App component and unwanted re-renders @@ -21,6 +22,7 @@ export default function AppEffects() { useListenForCriticalProblem(); useTauriEventsListener(); useListenForAppUpdated({ triggerEffect: true }); + useListenForAppResuming(); useEffect(() => { async function initialize() { diff --git a/src/containers/floating/FloatingElements.tsx b/src/containers/floating/FloatingElements.tsx index 9c263ab20..211cfdf4a 100644 --- a/src/containers/floating/FloatingElements.tsx +++ b/src/containers/floating/FloatingElements.tsx @@ -14,6 +14,7 @@ import ShellOfSecrets from '../main/ShellOfSecrets/ShellOfSecrets.tsx'; import ReleaseNotesDialog from './ReleaseNotesDialog/ReleaseNotesDialog.tsx'; import LudicrousCofirmationDialog from './LudicrousCofirmationDialog/LudicrousCofirmationDialog.tsx'; import { memo } from 'react'; +import ResumeApplicationModal from './ResumeApplicationModal/ResumeApplicationModal.tsx'; const environment = import.meta.env.MODE; @@ -32,6 +33,7 @@ const FloatingElements = memo(function FloatingElements() { + {environment === 'development' && } ); diff --git a/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx b/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx new file mode 100644 index 000000000..5e4a226b3 --- /dev/null +++ b/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx @@ -0,0 +1,44 @@ +import { AnimatePresence } from 'motion/react'; +import { memo, useEffect } from 'react'; +import { useAppStateStore } from '@app/store/appStateStore'; +import { CircularProgress } from '@app/components/elements/CircularProgress'; +import { Text, Title, Wrapper, ProgressWrapper, TextWrapper } from './styles'; +import { useTranslation } from 'react-i18next'; +import { useMiningStore } from '@app/store/useMiningStore'; +import { startMining, stopMining } from '@app/store/miningStoreActions'; + +const ResumeApplicationModal = memo(function ResumeApplicationModal() { + const { t } = useTranslation('components'); + const isMiningInitiated = useMiningStore((s) => s.miningInitiated); + const appResumePayload = useAppStateStore((state) => state.appResumePayload); + const showModal = appResumePayload?.is_resuming; + + useEffect(() => { + if (isMiningInitiated && !appResumePayload?.is_resuming) { + startMining(); + } else if (!isMiningInitiated && !appResumePayload?.is_resuming) { + stopMining(); + } + }, [isMiningInitiated, appResumePayload?.is_resuming]); + + return ( + + {showModal && ( + + + {t('resume-app-modal.title')} + {t(`resume-app-modal.${appResumePayload.title}`)} + + + + {appResumePayload.stage_progress}/{appResumePayload.stage_total} + + + + + )} + + ); +}); + +export default ResumeApplicationModal; diff --git a/src/containers/floating/ResumeApplicationModal/styles.ts b/src/containers/floating/ResumeApplicationModal/styles.ts new file mode 100644 index 000000000..f372da2aa --- /dev/null +++ b/src/containers/floating/ResumeApplicationModal/styles.ts @@ -0,0 +1,50 @@ +import { Stack } from '@app/components/elements/Stack'; +import { Typography } from '@app/components/elements/Typography'; +import styled from 'styled-components'; + +export const Wrapper = styled(Stack)` + width: 360px; + padding: 10px 20px; + background: #fff; + border-radius: 10px; + border: 1px solid rgba(0, 0, 0, 0.05); + box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05); + flex-direction: row; + justify-content: space-between; + align-items: center; + + position: fixed; + bottom: 20px; + right: 0; + left: 0; + margin: auto; +`; + +export const TextWrapper = styled(Stack)` + flex-direction: column; + align-items: flex-start; +`; + +export const ProgressWrapper = styled(Stack)` + gap: 10px; + flex-direction: row; + align-items: center; +`; + +export const Title = styled(Typography)` + color: #000; + font-size: 14px; + font-style: normal; + font-weight: 600; + line-height: 150%; + letter-spacing: -0.4px; +`; + +export const Text = styled(Typography)` + color: #000; + font-size: 12px; + font-style: normal; + font-weight: 400; + line-height: 150%; + letter-spacing: -0.4px; +`; diff --git a/src/containers/main/SideBar/components/MiningButton/MiningButton.tsx b/src/containers/main/SideBar/components/MiningButton/MiningButton.tsx index 534d39fe2..fb7d42f2f 100644 --- a/src/containers/main/SideBar/components/MiningButton/MiningButton.tsx +++ b/src/containers/main/SideBar/components/MiningButton/MiningButton.tsx @@ -30,6 +30,16 @@ export default function MiningButton() { const isMiningButtonDisabled = isAppSettingUp || isMiningLoading || !isMiningControlsEnabled; const isAppLoading = isAppSettingUp || isMiningLoading; + console.log('isSettingUp', isAppSettingUp); + console.log('isMiningControlsEnabled', isMiningControlsEnabled); + console.log('isMiningInitiated', isMiningInitiated); + console.log('isCPUMining', isCPUMining); + console.log('isGPUMining', isGPUMining); + console.log('isMining', isMining); + console.log('isMiningLoading', isMiningLoading); + console.log('isMiningButtonDisabled', isMiningButtonDisabled); + console.log('isAppLoading', isAppLoading); + const miningButtonStateText = useMemo(() => { return isMining && isMiningInitiated ? MiningButtonStateText.STARTED : MiningButtonStateText.START; }, [isMining, isMiningInitiated]); diff --git a/src/hooks/app/useListenForAppResuming.ts b/src/hooks/app/useListenForAppResuming.ts new file mode 100644 index 000000000..4f7f3ca3b --- /dev/null +++ b/src/hooks/app/useListenForAppResuming.ts @@ -0,0 +1,24 @@ +import { useAppStateStore } from '@app/store/appStateStore'; +import { listen } from '@tauri-apps/api/event'; +import { useEffect } from 'react'; + +export interface ResumingAllProcessesPayload { + title: string; + stage_progress: number; + stage_total: number; + is_resuming: boolean; +} + +export const useListenForAppResuming = () => { + const setAppResumePayload = useAppStateStore((state) => state.setAppResumePayload); + + useEffect(() => { + const listener = listen('resuming-all-processes', ({ payload }: { payload: ResumingAllProcessesPayload }) => { + setAppResumePayload(payload); + }); + + return () => { + listener.then((unlisten) => unlisten()); + }; + }, [setAppResumePayload]); +}; diff --git a/src/store/appStateStore.ts b/src/store/appStateStore.ts index f05d4f318..bcae146d4 100644 --- a/src/store/appStateStore.ts +++ b/src/store/appStateStore.ts @@ -7,6 +7,7 @@ import { useAppConfigStore } from './useAppConfigStore'; import { addToast } from '@app/components/ToastStack/useToastStore'; import { startMining } from '@app/store/miningStoreActions.ts'; import { deepEqual } from '@app/utils/objectDeepEqual.ts'; +import { ResumingAllProcessesPayload } from '@app/hooks/app/useListenForAppResuming'; interface State { error?: string; @@ -23,6 +24,7 @@ interface State { applications_versions?: ApplicationsVersions; releaseNotes: string; isAppUpdateAvailable: boolean; + appResumePayload?: ResumingAllProcessesPayload; } interface Actions { setCriticalError: (value: string | undefined) => void; @@ -36,6 +38,7 @@ interface Actions { setIssueReference: (value: string) => void; setReleaseNotes: (value: string) => void; setIsAppUpdateAvailable: (value: boolean) => void; + setAppResumePayload: (value: ResumingAllProcessesPayload) => void; } type AppState = State & Actions; @@ -49,6 +52,7 @@ const initialstate: State = { missingExternalDependencies: [], releaseNotes: '', isAppUpdateAvailable: false, + appResumePayload: undefined, }; export const useAppStateStore = create()((set, getState) => ({ @@ -108,6 +112,7 @@ export const useAppStateStore = create()((set, getState) => ({ setIssueReference: (issueReference) => set({ issueReference }), setReleaseNotes: (releaseNotes) => set({ releaseNotes }), setIsAppUpdateAvailable: (isAppUpdateAvailable) => set({ isAppUpdateAvailable }), + setAppResumePayload: (appResumePayload) => set({ appResumePayload }), })); export const setSetupProgress = (setupProgress: number) => useAppStateStore.setState({ setupProgress }); From 7b2b15c8324c8d564aae4348a85145d6a2ccaf85 Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Fri, 14 Feb 2025 16:00:19 +0100 Subject: [PATCH 14/25] mvp --- src-tauri/src/main.rs | 29 ++++++++++--------- src-tauri/src/updates_manager.rs | 2 +- src-tauri/src/utils/system_status.rs | 23 ++++++++------- .../ResumeApplicationModal.tsx | 21 +++++++++++--- 4 files changed, 47 insertions(+), 28 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 820581412..084b5f124 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -906,23 +906,26 @@ async fn setup_inner( let app_handle_clone: tauri::AppHandle = app.clone(); tauri::async_runtime::spawn(async move { - let mut last_state = SystemStatus::current().check_if_in_sleep_mode().await; - let mut interval: time::Interval = time::interval(Duration::from_secs(5)); + let mut receiver = SystemStatus::current().get_sleep_mode_watcher(); + let mut last_state = *receiver.borrow(); loop { - interval.tick().await; - let current_state = SystemStatus::current().check_if_in_sleep_mode().await; + if receiver.changed().await.is_ok() { + let current_state = *receiver.borrow(); - if last_state && !current_state { - info!(target: LOG_TARGET, "System is no longer in sleep mode"); - let _unused = resume_all_processes(app_handle_clone.clone()).await; - } + if last_state && !current_state { + info!(target: LOG_TARGET, "System is no longer in sleep mode"); + let _unused = resume_all_processes(app_handle_clone.clone()).await; + } - if !last_state && current_state { - info!(target: LOG_TARGET, "System entered sleep mode"); - let _unused = stop_all_processes(app_handle_clone.clone(), false).await; - } + if !last_state && current_state { + info!(target: LOG_TARGET, "System entered sleep mode"); + let _unused = stop_all_processes(app_handle_clone.clone(), false).await; + } - last_state = current_state; + last_state = current_state; + } else { + error!(target: LOG_TARGET, "Failed to receive sleep mode change"); + } } }); diff --git a/src-tauri/src/updates_manager.rs b/src-tauri/src/updates_manager.rs index 716ee900d..57fab8b94 100644 --- a/src-tauri/src/updates_manager.rs +++ b/src-tauri/src/updates_manager.rs @@ -122,7 +122,7 @@ impl UpdatesManager { *self.update.write().await = Some(update); let is_auto_update = self.config.read().await.auto_update(); - let is_screen_locked = SystemStatus::current().check_if_in_sleep_mode().await; + let is_screen_locked = *SystemStatus::current().get_sleep_mode_watcher().borrow(); if is_screen_locked && is_auto_update { info!(target: LOG_TARGET, "try_update: Screen is locked. Displaying notification"); diff --git a/src-tauri/src/utils/system_status.rs b/src-tauri/src/utils/system_status.rs index d357f9b47..560aad28a 100644 --- a/src-tauri/src/utils/system_status.rs +++ b/src-tauri/src/utils/system_status.rs @@ -25,7 +25,7 @@ use std::{sync::LazyLock, time::Duration}; use anyhow::{anyhow, Error}; use log::info; use psp::monitor::{PowerMonitor, PowerState}; -use tokio::sync::RwLock; +use tokio::sync::{watch, RwLock}; use tokio_util::sync::CancellationToken; const LOG_TARGET: &str = "tari::universe::external_dependencies"; @@ -35,18 +35,21 @@ static INSTANCE: LazyLock = LazyLock::new(SystemStatus::new); pub struct SystemStatus { power_monitor: PowerMonitor, cancelation_token: RwLock>, - is_in_sleep_mode: RwLock, + sleep_mode_watcher_sender: watch::Sender, + sleep_mode_watcher_receiver: watch::Receiver, } impl SystemStatus { fn new() -> Self { let power_monitor = PowerMonitor::new(); SystemStatus::start_listener(&power_monitor).expect("Error starting listener"); + let (sleep_mode_watcher_sender, sleep_mode_watcher_receiver) = watch::channel(false); Self { power_monitor, cancelation_token: RwLock::new(None), - is_in_sleep_mode: RwLock::new(false), + sleep_mode_watcher_sender, + sleep_mode_watcher_receiver, } } @@ -61,23 +64,23 @@ impl SystemStatus { match event { PowerState::ScreenLocked => { info!(target: LOG_TARGET, "Screen locked"); - *self.is_in_sleep_mode.write().await = true; + self.sleep_mode_watcher_sender.send(true); } PowerState::Suspend => { info!(target: LOG_TARGET, "Suspend"); - *self.is_in_sleep_mode.write().await = true; + self.sleep_mode_watcher_sender.send(true); } PowerState::Resume => { info!(target: LOG_TARGET, "Resume"); - *self.is_in_sleep_mode.write().await = false; + self.sleep_mode_watcher_sender.send(false); } PowerState::ScreenUnlocked => { info!(target: LOG_TARGET, "Screen unlocked"); - *self.is_in_sleep_mode.write().await = false; + self.sleep_mode_watcher_sender.send(false); } _ => { info!(target: LOG_TARGET, "Other event"); - *self.is_in_sleep_mode.write().await = false; + self.sleep_mode_watcher_sender.send(false); } } } @@ -117,8 +120,8 @@ impl SystemStatus { Ok(()) } - pub async fn check_if_in_sleep_mode(&self) -> bool { - *self.is_in_sleep_mode.read().await + pub fn get_sleep_mode_watcher(&self) -> watch::Receiver { + self.sleep_mode_watcher_receiver.clone() } pub fn current() -> &'static SystemStatus { diff --git a/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx b/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx index 5e4a226b3..b6e003205 100644 --- a/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx +++ b/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx @@ -1,5 +1,5 @@ import { AnimatePresence } from 'motion/react'; -import { memo, useEffect } from 'react'; +import { memo, useEffect, useRef } from 'react'; import { useAppStateStore } from '@app/store/appStateStore'; import { CircularProgress } from '@app/components/elements/CircularProgress'; import { Text, Title, Wrapper, ProgressWrapper, TextWrapper } from './styles'; @@ -10,15 +10,28 @@ import { startMining, stopMining } from '@app/store/miningStoreActions'; const ResumeApplicationModal = memo(function ResumeApplicationModal() { const { t } = useTranslation('components'); const isMiningInitiated = useMiningStore((s) => s.miningInitiated); + const setMiningControlsEnabled = useMiningStore((s) => s.setMiningControlsEnabled); const appResumePayload = useAppStateStore((state) => state.appResumePayload); const showModal = appResumePayload?.is_resuming; + const wasMiningInitiatedRef = useRef(isMiningInitiated); + + console.log('wasMiningInitiatedRef', wasMiningInitiatedRef.current); useEffect(() => { - if (isMiningInitiated && !appResumePayload?.is_resuming) { - startMining(); - } else if (!isMiningInitiated && !appResumePayload?.is_resuming) { + if (appResumePayload?.is_resuming) { + setMiningControlsEnabled(false); + } + + if (isMiningInitiated && appResumePayload?.is_resuming) { + wasMiningInitiatedRef.current = true; stopMining(); } + + if (wasMiningInitiatedRef.current && !appResumePayload?.is_resuming) { + console.log('wasMiningInitiatedRef in mining start', wasMiningInitiatedRef.current); + setMiningControlsEnabled(true); + startMining(); + } }, [isMiningInitiated, appResumePayload?.is_resuming]); return ( From 84bc76e2fbe50d1641fbebb38183ee231790fe39 Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Thu, 20 Feb 2025 14:27:41 +0100 Subject: [PATCH 15/25] update psp to fork --- src-tauri/Cargo.lock | 2 +- src-tauri/Cargo.toml | 2 +- src-tauri/src/utils/system_status.rs | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 1488e0184..3d4694e9d 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -5894,7 +5894,7 @@ dependencies = [ [[package]] name = "psp" version = "0.1.0" -source = "git+https://github.com/pewsheen/psp.git#ddef0c61aeedc0ad1891de31659fd6c2e1bcaedb" +source = "git+https://github.com/Misieq01/psp.git#ddef0c61aeedc0ad1891de31659fd6c2e1bcaedb" dependencies = [ "cocoa 0.24.1", "core-foundation 0.9.4", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 72b62bf66..c7a98a626 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -95,7 +95,7 @@ hex = "0.4.3" openssl = { version = "0.10", features = ["vendored"] } ring-compat = "0.8.0" der = "0.7.9" -psp = { git = "https://github.com/pewsheen/psp.git", version = "0.1.0" } +psp = { git = "https://github.com/Misieq01/psp.git", version = "0.1.0" } tonic = "0.12.3" tauri-plugin-clipboard-manager = "2.2.0" urlencoding = "2.1.3" diff --git a/src-tauri/src/utils/system_status.rs b/src-tauri/src/utils/system_status.rs index 560aad28a..d17ecd4aa 100644 --- a/src-tauri/src/utils/system_status.rs +++ b/src-tauri/src/utils/system_status.rs @@ -59,6 +59,7 @@ impl SystemStatus { } async fn recive_power_event(&self) -> Result<(), Error> { + info!(target: LOG_TARGET, "Reciving power event"); if let Ok(event) = self.power_monitor.event_receiver().try_recv() { info!(target: LOG_TARGET, "Power event: {:?}", event); match event { From a9f2437ffaf1db683a008b0e83ee7e9f9be0431b Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Fri, 21 Feb 2025 13:18:17 +0100 Subject: [PATCH 16/25] update-flow --- src-tauri/Cargo.lock | 2 +- src-tauri/Cargo.toml | 2 +- src-tauri/src/main.rs | 34 ++++++++- src-tauri/src/utils/shutdown_utils.rs | 5 -- src-tauri/src/utils/system_status.rs | 75 ++++++++++--------- .../ResumeApplicationModal.tsx | 4 +- 6 files changed, 75 insertions(+), 47 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 3d4694e9d..4881d5e3d 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -5894,7 +5894,7 @@ dependencies = [ [[package]] name = "psp" version = "0.1.0" -source = "git+https://github.com/Misieq01/psp.git#ddef0c61aeedc0ad1891de31659fd6c2e1bcaedb" +source = "git+https://github.com/Misieq01/psp.git?rev=ddef0c6#ddef0c61aeedc0ad1891de31659fd6c2e1bcaedb" dependencies = [ "cocoa 0.24.1", "core-foundation 0.9.4", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index c7a98a626..0535121e4 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -95,7 +95,7 @@ hex = "0.4.3" openssl = { version = "0.10", features = ["vendored"] } ring-compat = "0.8.0" der = "0.7.9" -psp = { git = "https://github.com/Misieq01/psp.git", version = "0.1.0" } +psp = { git = "https://github.com/Misieq01/psp.git", rev = "ddef0c6" } tonic = "0.12.3" tauri-plugin-clipboard-manager = "2.2.0" urlencoding = "2.1.3" diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 641dfaf07..2195e05ac 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -313,7 +313,7 @@ async fn setup_inner( state: tauri::State<'_, UniverseAppState>, app: tauri::AppHandle, ) -> Result<(), anyhow::Error> { - SystemStatus::current().spawn_listener().await?; + SystemStatus::current().start_listener()?; app.emit( "setup_message", @@ -1354,7 +1354,11 @@ fn main() { "Starting Tari Universe version: {}", app.package_info().version ); - app.run(move |app_handle, event| match event { + + app.run(move |app_handle, event| { + SystemStatus::current().recive_power_event(); + + match event { tauri::RunEvent::Ready => { info!(target: LOG_TARGET, "RunEvent Ready"); let handle_clone = app_handle.clone(); @@ -1381,5 +1385,31 @@ fn main() { _ => { debug!(target: LOG_TARGET, "Unhandled event: {:?}", event); } + }; }); + + // let app_handle_clone: tauri::AppHandle = app.clone(); + // tauri::async_runtime::spawn(async move { + // let mut receiver = SystemStatus::current().get_sleep_mode_watcher(); + // let mut last_state = *receiver.borrow(); + // loop { + // if receiver.changed().await.is_ok() { + // let current_state = *receiver.borrow(); + + // if last_state && !current_state { + // info!(target: LOG_TARGET, "System is no longer in sleep mode"); + // let _unused = resume_all_processes(app_handle_clone.clone()).await; + // } + + // if !last_state && current_state { + // info!(target: LOG_TARGET, "System entered sleep mode"); + // let _unused = stop_all_processes(app_handle_clone.clone(), false).await; + // } + + // last_state = current_state; + // } else { + // error!(target: LOG_TARGET, "Failed to receive sleep mode change"); + // } + // } + // }); } diff --git a/src-tauri/src/utils/shutdown_utils.rs b/src-tauri/src/utils/shutdown_utils.rs index 4677831f6..c2fd97263 100644 --- a/src-tauri/src/utils/shutdown_utils.rs +++ b/src-tauri/src/utils/shutdown_utils.rs @@ -27,7 +27,6 @@ use crate::{ node_manager::{NodeManagerError, STOP_ON_ERROR_CODES}, p2pool_manager::P2poolConfig, progress_tracker::ProgressTracker, - utils::system_status::SystemStatus, StartConfig, UniverseAppState, APPLICATION_FOLDER_ID, }; use anyhow::anyhow; @@ -48,10 +47,6 @@ pub async fn stop_all_processes( if should_shutdown && !state.shutdown.is_triggered() { info!(target: LOG_TARGET, "Entering shutdown sequence"); state.shutdown.clone().trigger(); - SystemStatus::current() - .stop_listener() - .await - .map_err(|e| e.to_string())?; } let base_path = app_handle diff --git a/src-tauri/src/utils/system_status.rs b/src-tauri/src/utils/system_status.rs index d17ecd4aa..202c302ed 100644 --- a/src-tauri/src/utils/system_status.rs +++ b/src-tauri/src/utils/system_status.rs @@ -34,7 +34,7 @@ static INSTANCE: LazyLock = LazyLock::new(SystemStatus::new); pub struct SystemStatus { power_monitor: PowerMonitor, - cancelation_token: RwLock>, + // cancelation_token: RwLock>, sleep_mode_watcher_sender: watch::Sender, sleep_mode_watcher_receiver: watch::Receiver, } @@ -42,23 +42,24 @@ pub struct SystemStatus { impl SystemStatus { fn new() -> Self { let power_monitor = PowerMonitor::new(); - SystemStatus::start_listener(&power_monitor).expect("Error starting listener"); let (sleep_mode_watcher_sender, sleep_mode_watcher_receiver) = watch::channel(false); Self { power_monitor, - cancelation_token: RwLock::new(None), + // cancelation_token: RwLock::new(None), sleep_mode_watcher_sender, sleep_mode_watcher_receiver, } } - fn start_listener(power_monitor: &PowerMonitor) -> Result<(), Error> { - power_monitor.start_listening().map_err(|e| anyhow!(e))?; + pub fn start_listener(&self) -> Result<(), Error> { + self.power_monitor + .start_listening() + .map_err(|e| anyhow!(e))?; Ok(()) } - async fn recive_power_event(&self) -> Result<(), Error> { + pub fn recive_power_event(&self) -> Result<(), Error> { info!(target: LOG_TARGET, "Reciving power event"); if let Ok(event) = self.power_monitor.event_receiver().try_recv() { info!(target: LOG_TARGET, "Power event: {:?}", event); @@ -89,37 +90,37 @@ impl SystemStatus { Ok(()) } - pub async fn spawn_listener(&self) -> Result<(), Error> { - let cancelation_token = CancellationToken::new(); - *self.cancelation_token.write().await = Some(cancelation_token.clone()); - - tokio::spawn(async move { - tokio::select! { - _ = cancelation_token.cancelled() => { - info!(target: LOG_TARGET, "Listener canceled"); - }, - _ = async { - loop { - SystemStatus::current().recive_power_event().await.expect("Error reciving power event"); - tokio::time::sleep(Duration::from_secs(5)).await; - } - } => { - info!(target: LOG_TARGET, "Listener finished"); - } - } - }); - - Ok(()) - } - - pub async fn stop_listener(&self) -> Result<(), Error> { - info!(target: LOG_TARGET, "Stopping listener"); - if let Some(cancelation_token) = self.cancelation_token.read().await.as_ref() { - cancelation_token.cancel(); - info!(target: LOG_TARGET, "Listener canceled"); - } - Ok(()) - } + // pub async fn spawn_listener(&self) -> Result<(), Error> { + // let cancelation_token = CancellationToken::new(); + // *self.cancelation_token.write().await = Some(cancelation_token.clone()); + + // tokio::spawn(async move { + // tokio::select! { + // _ = cancelation_token.cancelled() => { + // info!(target: LOG_TARGET, "Listener canceled"); + // }, + // _ = async { + // loop { + // SystemStatus::current().recive_power_event().await.expect("Error reciving power event"); + // tokio::time::sleep(Duration::from_secs(5)).await; + // } + // } => { + // info!(target: LOG_TARGET, "Listener finished"); + // } + // } + // }); + + // Ok(()) + // } + + // pub async fn stop_listener(&self) -> Result<(), Error> { + // info!(target: LOG_TARGET, "Stopping listener"); + // if let Some(cancelation_token) = self.cancelation_token.read().await.as_ref() { + // cancelation_token.cancel(); + // info!(target: LOG_TARGET, "Listener canceled"); + // } + // Ok(()) + // } pub fn get_sleep_mode_watcher(&self) -> watch::Receiver { self.sleep_mode_watcher_receiver.clone() diff --git a/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx b/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx index b6e003205..2fc1f313a 100644 --- a/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx +++ b/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx @@ -29,9 +29,11 @@ const ResumeApplicationModal = memo(function ResumeApplicationModal() { if (wasMiningInitiatedRef.current && !appResumePayload?.is_resuming) { console.log('wasMiningInitiatedRef in mining start', wasMiningInitiatedRef.current); - setMiningControlsEnabled(true); startMining(); } + if (!appResumePayload?.is_resuming) { + wasMiningInitiatedRef.current = false; + } }, [isMiningInitiated, appResumePayload?.is_resuming]); return ( From 53af661fe57b5efb3d29a0ad9ace15c8a76cc4bc Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Fri, 21 Feb 2025 14:33:37 +0100 Subject: [PATCH 17/25] fix macos build --- src-tauri/src/main.rs | 5 +++-- src-tauri/src/utils/system_status.rs | 14 ++++++-------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 2195e05ac..456370171 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -313,7 +313,7 @@ async fn setup_inner( state: tauri::State<'_, UniverseAppState>, app: tauri::AppHandle, ) -> Result<(), anyhow::Error> { - SystemStatus::current().start_listener()?; + app.emit( "setup_message", @@ -1355,8 +1355,9 @@ fn main() { app.package_info().version ); + let power_monitor = SystemStatus::current().start_listener().expect("test"); app.run(move |app_handle, event| { - SystemStatus::current().recive_power_event(); + SystemStatus::current().recive_power_event(&power_monitor); match event { tauri::RunEvent::Ready => { diff --git a/src-tauri/src/utils/system_status.rs b/src-tauri/src/utils/system_status.rs index 202c302ed..97d968e53 100644 --- a/src-tauri/src/utils/system_status.rs +++ b/src-tauri/src/utils/system_status.rs @@ -33,7 +33,6 @@ const LOG_TARGET: &str = "tari::universe::external_dependencies"; static INSTANCE: LazyLock = LazyLock::new(SystemStatus::new); pub struct SystemStatus { - power_monitor: PowerMonitor, // cancelation_token: RwLock>, sleep_mode_watcher_sender: watch::Sender, sleep_mode_watcher_receiver: watch::Receiver, @@ -41,27 +40,26 @@ pub struct SystemStatus { impl SystemStatus { fn new() -> Self { - let power_monitor = PowerMonitor::new(); let (sleep_mode_watcher_sender, sleep_mode_watcher_receiver) = watch::channel(false); Self { - power_monitor, // cancelation_token: RwLock::new(None), sleep_mode_watcher_sender, sleep_mode_watcher_receiver, } } - pub fn start_listener(&self) -> Result<(), Error> { - self.power_monitor + pub fn start_listener(&self) -> Result { + let power_monitor = PowerMonitor::new(); + power_monitor .start_listening() .map_err(|e| anyhow!(e))?; - Ok(()) + Ok(power_monitor) } - pub fn recive_power_event(&self) -> Result<(), Error> { + pub fn recive_power_event(&self, power_monitor: &PowerMonitor) -> Result<(), Error> { info!(target: LOG_TARGET, "Reciving power event"); - if let Ok(event) = self.power_monitor.event_receiver().try_recv() { + if let Ok(event) = power_monitor.event_receiver().try_recv() { info!(target: LOG_TARGET, "Power event: {:?}", event); match event { PowerState::ScreenLocked => { From 0b28cbd70703810882355cecbdc7e175d5b02cf5 Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Fri, 21 Feb 2025 14:39:51 +0100 Subject: [PATCH 18/25] cleanup code --- src-tauri/src/commands.rs | 1 - src-tauri/src/main.rs | 27 ------------ src-tauri/src/utils/shutdown_utils.rs | 2 +- src-tauri/src/utils/system_status.rs | 43 ++----------------- .../ResumeApplicationModal.tsx | 3 -- .../components/MiningButton/MiningButton.tsx | 10 ----- 6 files changed, 4 insertions(+), 82 deletions(-) diff --git a/src-tauri/src/commands.rs b/src-tauri/src/commands.rs index e04f1528d..45e8670e7 100644 --- a/src-tauri/src/commands.rs +++ b/src-tauri/src/commands.rs @@ -37,7 +37,6 @@ use crate::p2pool::models::{Connections, P2poolStats}; use crate::progress_tracker::ProgressTracker; use crate::tor_adapter::TorConfig; use crate::utils::shutdown_utils::stop_all_processes; -use crate::utils::system_status::SystemStatus; use crate::wallet_adapter::TransactionInfo; use crate::wallet_manager::WalletManagerError; use crate::{airdrop, UniverseAppState, APPLICATION_FOLDER_ID}; diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 456370171..e477ca832 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -313,8 +313,6 @@ async fn setup_inner( state: tauri::State<'_, UniverseAppState>, app: tauri::AppHandle, ) -> Result<(), anyhow::Error> { - - app.emit( "setup_message", SetupStatusEvent { @@ -1388,29 +1386,4 @@ fn main() { } }; }); - - // let app_handle_clone: tauri::AppHandle = app.clone(); - // tauri::async_runtime::spawn(async move { - // let mut receiver = SystemStatus::current().get_sleep_mode_watcher(); - // let mut last_state = *receiver.borrow(); - // loop { - // if receiver.changed().await.is_ok() { - // let current_state = *receiver.borrow(); - - // if last_state && !current_state { - // info!(target: LOG_TARGET, "System is no longer in sleep mode"); - // let _unused = resume_all_processes(app_handle_clone.clone()).await; - // } - - // if !last_state && current_state { - // info!(target: LOG_TARGET, "System entered sleep mode"); - // let _unused = stop_all_processes(app_handle_clone.clone(), false).await; - // } - - // last_state = current_state; - // } else { - // error!(target: LOG_TARGET, "Failed to receive sleep mode change"); - // } - // } - // }); } diff --git a/src-tauri/src/utils/shutdown_utils.rs b/src-tauri/src/utils/shutdown_utils.rs index c2fd97263..c77cf81dd 100644 --- a/src-tauri/src/utils/shutdown_utils.rs +++ b/src-tauri/src/utils/shutdown_utils.rs @@ -137,7 +137,7 @@ pub async fn stop_all_processes( pub async fn resume_all_processes(app_handle: tauri::AppHandle) -> Result<(), anyhow::Error> { let state = app_handle.state::().inner(); - let (tx, rx) = watch::channel("".to_string()); + let (tx, _rx) = watch::channel("".to_string()); let progress = ProgressTracker::new(app_handle.clone(), Some(tx)); let data_dir = app_handle diff --git a/src-tauri/src/utils/system_status.rs b/src-tauri/src/utils/system_status.rs index 97d968e53..0f5c609f8 100644 --- a/src-tauri/src/utils/system_status.rs +++ b/src-tauri/src/utils/system_status.rs @@ -20,20 +20,18 @@ // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE // USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -use std::{sync::LazyLock, time::Duration}; +use std::sync::LazyLock; use anyhow::{anyhow, Error}; use log::info; use psp::monitor::{PowerMonitor, PowerState}; -use tokio::sync::{watch, RwLock}; -use tokio_util::sync::CancellationToken; +use tokio::sync::watch; const LOG_TARGET: &str = "tari::universe::external_dependencies"; static INSTANCE: LazyLock = LazyLock::new(SystemStatus::new); pub struct SystemStatus { - // cancelation_token: RwLock>, sleep_mode_watcher_sender: watch::Sender, sleep_mode_watcher_receiver: watch::Receiver, } @@ -43,7 +41,6 @@ impl SystemStatus { let (sleep_mode_watcher_sender, sleep_mode_watcher_receiver) = watch::channel(false); Self { - // cancelation_token: RwLock::new(None), sleep_mode_watcher_sender, sleep_mode_watcher_receiver, } @@ -51,9 +48,7 @@ impl SystemStatus { pub fn start_listener(&self) -> Result { let power_monitor = PowerMonitor::new(); - power_monitor - .start_listening() - .map_err(|e| anyhow!(e))?; + power_monitor.start_listening().map_err(|e| anyhow!(e))?; Ok(power_monitor) } @@ -88,38 +83,6 @@ impl SystemStatus { Ok(()) } - // pub async fn spawn_listener(&self) -> Result<(), Error> { - // let cancelation_token = CancellationToken::new(); - // *self.cancelation_token.write().await = Some(cancelation_token.clone()); - - // tokio::spawn(async move { - // tokio::select! { - // _ = cancelation_token.cancelled() => { - // info!(target: LOG_TARGET, "Listener canceled"); - // }, - // _ = async { - // loop { - // SystemStatus::current().recive_power_event().await.expect("Error reciving power event"); - // tokio::time::sleep(Duration::from_secs(5)).await; - // } - // } => { - // info!(target: LOG_TARGET, "Listener finished"); - // } - // } - // }); - - // Ok(()) - // } - - // pub async fn stop_listener(&self) -> Result<(), Error> { - // info!(target: LOG_TARGET, "Stopping listener"); - // if let Some(cancelation_token) = self.cancelation_token.read().await.as_ref() { - // cancelation_token.cancel(); - // info!(target: LOG_TARGET, "Listener canceled"); - // } - // Ok(()) - // } - pub fn get_sleep_mode_watcher(&self) -> watch::Receiver { self.sleep_mode_watcher_receiver.clone() } diff --git a/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx b/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx index 2fc1f313a..29ce71a25 100644 --- a/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx +++ b/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx @@ -15,8 +15,6 @@ const ResumeApplicationModal = memo(function ResumeApplicationModal() { const showModal = appResumePayload?.is_resuming; const wasMiningInitiatedRef = useRef(isMiningInitiated); - console.log('wasMiningInitiatedRef', wasMiningInitiatedRef.current); - useEffect(() => { if (appResumePayload?.is_resuming) { setMiningControlsEnabled(false); @@ -28,7 +26,6 @@ const ResumeApplicationModal = memo(function ResumeApplicationModal() { } if (wasMiningInitiatedRef.current && !appResumePayload?.is_resuming) { - console.log('wasMiningInitiatedRef in mining start', wasMiningInitiatedRef.current); startMining(); } if (!appResumePayload?.is_resuming) { diff --git a/src/containers/main/SideBar/components/MiningButton/MiningButton.tsx b/src/containers/main/SideBar/components/MiningButton/MiningButton.tsx index fb7d42f2f..534d39fe2 100644 --- a/src/containers/main/SideBar/components/MiningButton/MiningButton.tsx +++ b/src/containers/main/SideBar/components/MiningButton/MiningButton.tsx @@ -30,16 +30,6 @@ export default function MiningButton() { const isMiningButtonDisabled = isAppSettingUp || isMiningLoading || !isMiningControlsEnabled; const isAppLoading = isAppSettingUp || isMiningLoading; - console.log('isSettingUp', isAppSettingUp); - console.log('isMiningControlsEnabled', isMiningControlsEnabled); - console.log('isMiningInitiated', isMiningInitiated); - console.log('isCPUMining', isCPUMining); - console.log('isGPUMining', isGPUMining); - console.log('isMining', isMining); - console.log('isMiningLoading', isMiningLoading); - console.log('isMiningButtonDisabled', isMiningButtonDisabled); - console.log('isAppLoading', isAppLoading); - const miningButtonStateText = useMemo(() => { return isMining && isMiningInitiated ? MiningButtonStateText.STARTED : MiningButtonStateText.START; }, [isMining, isMiningInitiated]); From e353dc70fa0232c3b6f4fa4c3f7b34c3cc015a30 Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Fri, 21 Feb 2025 15:07:26 +0100 Subject: [PATCH 19/25] update localizations --- public/locales/af/components.json | 11 +++++++++++ public/locales/cn/components.json | 11 +++++++++++ public/locales/de/components.json | 11 +++++++++++ public/locales/fr/components.json | 11 +++++++++++ public/locales/hi/components.json | 11 +++++++++++ public/locales/id/components.json | 11 +++++++++++ public/locales/ja/components.json | 11 +++++++++++ public/locales/ko/components.json | 11 +++++++++++ public/locales/pl/components.json | 11 +++++++++++ public/locales/ru/components.json | 11 +++++++++++ public/locales/tr/components.json | 11 +++++++++++ 11 files changed, 121 insertions(+) diff --git a/public/locales/af/components.json b/public/locales/af/components.json index d81b23d25..c281aeeea 100644 --- a/public/locales/af/components.json +++ b/public/locales/af/components.json @@ -18,5 +18,16 @@ "releaseNotesDialog": { "close": "Got IT", "title": "Release Notes" + }, + "resume-app-modal": { + "title": "Resuming Tari Universe", + "resuming-all-processes": "Resuming all processes...", + "resuming-tor": "Resuming Tor...", + "resuming-node": "Resuming Node...", + "resuming-wallet": "Resuming Wallet...", + "syncing-node": "Syncing Node...", + "resuming-p2pool": "Resuming P2Pool...", + "resuming-mm-proxy": "Resuming MM Proxy...", + "finishing-resume": "Finishing Resume..." } } \ No newline at end of file diff --git a/public/locales/cn/components.json b/public/locales/cn/components.json index 3ed60ab4e..d0d8053ea 100644 --- a/public/locales/cn/components.json +++ b/public/locales/cn/components.json @@ -18,5 +18,16 @@ "releaseNotesDialog": { "close": "Got IT", "title": "Release Notes" + }, + "resume-app-modal": { + "title": "Resuming Tari Universe", + "resuming-all-processes": "Resuming all processes...", + "resuming-tor": "Resuming Tor...", + "resuming-node": "Resuming Node...", + "resuming-wallet": "Resuming Wallet...", + "syncing-node": "Syncing Node...", + "resuming-p2pool": "Resuming P2Pool...", + "resuming-mm-proxy": "Resuming MM Proxy...", + "finishing-resume": "Finishing Resume..." } } \ No newline at end of file diff --git a/public/locales/de/components.json b/public/locales/de/components.json index 625e15c1a..012330dab 100644 --- a/public/locales/de/components.json +++ b/public/locales/de/components.json @@ -18,5 +18,16 @@ "releaseNotesDialog": { "close": "Got IT", "title": "Release Notes" + }, + "resume-app-modal": { + "title": "Resuming Tari Universe", + "resuming-all-processes": "Resuming all processes...", + "resuming-tor": "Resuming Tor...", + "resuming-node": "Resuming Node...", + "resuming-wallet": "Resuming Wallet...", + "syncing-node": "Syncing Node...", + "resuming-p2pool": "Resuming P2Pool...", + "resuming-mm-proxy": "Resuming MM Proxy...", + "finishing-resume": "Finishing Resume..." } } \ No newline at end of file diff --git a/public/locales/fr/components.json b/public/locales/fr/components.json index 9af3fd11e..0e5cd2c9b 100644 --- a/public/locales/fr/components.json +++ b/public/locales/fr/components.json @@ -18,5 +18,16 @@ "releaseNotesDialog": { "close": "Got IT", "title": "Release Notes" + }, + "resume-app-modal": { + "title": "Resuming Tari Universe", + "resuming-all-processes": "Resuming all processes...", + "resuming-tor": "Resuming Tor...", + "resuming-node": "Resuming Node...", + "resuming-wallet": "Resuming Wallet...", + "syncing-node": "Syncing Node...", + "resuming-p2pool": "Resuming P2Pool...", + "resuming-mm-proxy": "Resuming MM Proxy...", + "finishing-resume": "Finishing Resume..." } } \ No newline at end of file diff --git a/public/locales/hi/components.json b/public/locales/hi/components.json index a14606570..537e51e9f 100644 --- a/public/locales/hi/components.json +++ b/public/locales/hi/components.json @@ -18,5 +18,16 @@ "releaseNotesDialog": { "close": "Got IT", "title": "Release Notes" + }, + "resume-app-modal": { + "title": "Resuming Tari Universe", + "resuming-all-processes": "Resuming all processes...", + "resuming-tor": "Resuming Tor...", + "resuming-node": "Resuming Node...", + "resuming-wallet": "Resuming Wallet...", + "syncing-node": "Syncing Node...", + "resuming-p2pool": "Resuming P2Pool...", + "resuming-mm-proxy": "Resuming MM Proxy...", + "finishing-resume": "Finishing Resume..." } } \ No newline at end of file diff --git a/public/locales/id/components.json b/public/locales/id/components.json index c78446cc9..180411b78 100644 --- a/public/locales/id/components.json +++ b/public/locales/id/components.json @@ -18,5 +18,16 @@ "releaseNotesDialog": { "close": "Got IT", "title": "Release Notes" + }, + "resume-app-modal": { + "title": "Resuming Tari Universe", + "resuming-all-processes": "Resuming all processes...", + "resuming-tor": "Resuming Tor...", + "resuming-node": "Resuming Node...", + "resuming-wallet": "Resuming Wallet...", + "syncing-node": "Syncing Node...", + "resuming-p2pool": "Resuming P2Pool...", + "resuming-mm-proxy": "Resuming MM Proxy...", + "finishing-resume": "Finishing Resume..." } } \ No newline at end of file diff --git a/public/locales/ja/components.json b/public/locales/ja/components.json index 5e9d7e0d2..03711a304 100644 --- a/public/locales/ja/components.json +++ b/public/locales/ja/components.json @@ -18,5 +18,16 @@ "releaseNotesDialog": { "close": "Got IT", "title": "Release Notes" + }, + "resume-app-modal": { + "title": "Resuming Tari Universe", + "resuming-all-processes": "Resuming all processes...", + "resuming-tor": "Resuming Tor...", + "resuming-node": "Resuming Node...", + "resuming-wallet": "Resuming Wallet...", + "syncing-node": "Syncing Node...", + "resuming-p2pool": "Resuming P2Pool...", + "resuming-mm-proxy": "Resuming MM Proxy...", + "finishing-resume": "Finishing Resume..." } } \ No newline at end of file diff --git a/public/locales/ko/components.json b/public/locales/ko/components.json index e64f3f0bd..89c100a65 100644 --- a/public/locales/ko/components.json +++ b/public/locales/ko/components.json @@ -18,5 +18,16 @@ "releaseNotesDialog": { "close": "Got IT", "title": "Release Notes" + }, + "resume-app-modal": { + "title": "Resuming Tari Universe", + "resuming-all-processes": "Resuming all processes...", + "resuming-tor": "Resuming Tor...", + "resuming-node": "Resuming Node...", + "resuming-wallet": "Resuming Wallet...", + "syncing-node": "Syncing Node...", + "resuming-p2pool": "Resuming P2Pool...", + "resuming-mm-proxy": "Resuming MM Proxy...", + "finishing-resume": "Finishing Resume..." } } \ No newline at end of file diff --git a/public/locales/pl/components.json b/public/locales/pl/components.json index 28836dfca..107ec0c85 100644 --- a/public/locales/pl/components.json +++ b/public/locales/pl/components.json @@ -18,5 +18,16 @@ "releaseNotesDialog": { "close": "Got IT", "title": "Release Notes" + }, + "resume-app-modal": { + "title": "Resuming Tari Universe", + "resuming-all-processes": "Resuming all processes...", + "resuming-tor": "Resuming Tor...", + "resuming-node": "Resuming Node...", + "resuming-wallet": "Resuming Wallet...", + "syncing-node": "Syncing Node...", + "resuming-p2pool": "Resuming P2Pool...", + "resuming-mm-proxy": "Resuming MM Proxy...", + "finishing-resume": "Finishing Resume..." } } \ No newline at end of file diff --git a/public/locales/ru/components.json b/public/locales/ru/components.json index 82afbecb1..7c43c80f9 100644 --- a/public/locales/ru/components.json +++ b/public/locales/ru/components.json @@ -18,5 +18,16 @@ "releaseNotesDialog": { "close": "Got IT", "title": "Release Notes" + }, + "resume-app-modal": { + "title": "Resuming Tari Universe", + "resuming-all-processes": "Resuming all processes...", + "resuming-tor": "Resuming Tor...", + "resuming-node": "Resuming Node...", + "resuming-wallet": "Resuming Wallet...", + "syncing-node": "Syncing Node...", + "resuming-p2pool": "Resuming P2Pool...", + "resuming-mm-proxy": "Resuming MM Proxy...", + "finishing-resume": "Finishing Resume..." } } \ No newline at end of file diff --git a/public/locales/tr/components.json b/public/locales/tr/components.json index 13b640346..6dadae73b 100644 --- a/public/locales/tr/components.json +++ b/public/locales/tr/components.json @@ -18,5 +18,16 @@ "releaseNotesDialog": { "close": "Got IT", "title": "Release Notes" + }, + "resume-app-modal": { + "title": "Resuming Tari Universe", + "resuming-all-processes": "Resuming all processes...", + "resuming-tor": "Resuming Tor...", + "resuming-node": "Resuming Node...", + "resuming-wallet": "Resuming Wallet...", + "syncing-node": "Syncing Node...", + "resuming-p2pool": "Resuming P2Pool...", + "resuming-mm-proxy": "Resuming MM Proxy...", + "finishing-resume": "Finishing Resume..." } } \ No newline at end of file From 59d72985466f97aef523902da324f57775c54e9b Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Fri, 21 Feb 2025 15:21:59 +0100 Subject: [PATCH 20/25] ui update --- .../floating/ResumeApplicationModal/ResumeApplicationModal.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx b/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx index 29ce71a25..564a3238a 100644 --- a/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx +++ b/src/containers/floating/ResumeApplicationModal/ResumeApplicationModal.tsx @@ -30,6 +30,7 @@ const ResumeApplicationModal = memo(function ResumeApplicationModal() { } if (!appResumePayload?.is_resuming) { wasMiningInitiatedRef.current = false; + setMiningControlsEnabled(true); } }, [isMiningInitiated, appResumePayload?.is_resuming]); From 715db8c84dd45581ba4c69df5f28c6d509fbe64b Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Mon, 24 Feb 2025 09:38:22 +0100 Subject: [PATCH 21/25] fix ui animation bug --- src/hooks/mining/useMiningUiStateMachine.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/hooks/mining/useMiningUiStateMachine.ts b/src/hooks/mining/useMiningUiStateMachine.ts index 2003bfa7c..d4faccc9a 100644 --- a/src/hooks/mining/useMiningUiStateMachine.ts +++ b/src/hooks/mining/useMiningUiStateMachine.ts @@ -9,6 +9,7 @@ export const useUiMiningStateMachine = () => { const isChangingMode = useMiningStore((s) => s.isChangingMode); const cpuIsMining = useMiningMetricsStore((s) => s.cpu_mining_status.is_mining); const gpuIsMining = useMiningMetricsStore((s) => s.gpu_mining_status.is_mining); + const isResuming = useAppStateStore((state) => state.appResumePayload?.is_resuming); const setupComplete = useAppStateStore((s) => s.setupComplete); const isMining = cpuIsMining || gpuIsMining; @@ -17,10 +18,10 @@ export const useUiMiningStateMachine = () => { useEffect(() => { const status = window?.glApp?.stateManager?.status; const notStarted = !status || status == 'not-started' || status == 'stop'; - if (isMining && notStarted) { + if (isMining && notStarted && !isResuming) { setAnimationState('start'); } - }, [statusIndex, isMining]); + }, [statusIndex, isMining, isResuming]); useEffect(() => { const notStopped = window?.glApp?.stateManager?.status !== 'not-started'; From bbbc8a2b1e5a5c21270c7fcd2d02125f20a095f8 Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Mon, 24 Feb 2025 10:18:13 +0100 Subject: [PATCH 22/25] add comment for implementation way --- src-tauri/src/main.rs | 4 +++- src-tauri/src/utils/system_status.rs | 11 +++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index e477ca832..51297c255 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1353,8 +1353,10 @@ fn main() { app.package_info().version ); - let power_monitor = SystemStatus::current().start_listener().expect("test"); + let power_monitor = SystemStatus::current().start_listener(); app.run(move |app_handle, event| { + + // We can only recive system events from the event loop so this needs to be here SystemStatus::current().recive_power_event(&power_monitor); match event { diff --git a/src-tauri/src/utils/system_status.rs b/src-tauri/src/utils/system_status.rs index 0f5c609f8..05af7bb35 100644 --- a/src-tauri/src/utils/system_status.rs +++ b/src-tauri/src/utils/system_status.rs @@ -23,7 +23,7 @@ use std::sync::LazyLock; use anyhow::{anyhow, Error}; -use log::info; +use log::{error, info}; use psp::monitor::{PowerMonitor, PowerState}; use tokio::sync::watch; @@ -46,10 +46,13 @@ impl SystemStatus { } } - pub fn start_listener(&self) -> Result { + pub fn start_listener(&self) -> PowerMonitor { let power_monitor = PowerMonitor::new(); - power_monitor.start_listening().map_err(|e| anyhow!(e))?; - Ok(power_monitor) + let _unused = power_monitor.start_listening().inspect_err(|e| { + error!(target: LOG_TARGET, "Failed to start power monitor: {:?}", e); + })?; + + power_monitor } pub fn recive_power_event(&self, power_monitor: &PowerMonitor) -> Result<(), Error> { From 974e4983fb6edb1e5ea197b2942faaed4658c7f4 Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Mon, 24 Feb 2025 10:53:10 +0100 Subject: [PATCH 23/25] fix lint --- src-tauri/src/main.rs | 1 - src-tauri/src/utils/system_status.rs | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 51297c255..e9b23552d 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1355,7 +1355,6 @@ fn main() { let power_monitor = SystemStatus::current().start_listener(); app.run(move |app_handle, event| { - // We can only recive system events from the event loop so this needs to be here SystemStatus::current().recive_power_event(&power_monitor); diff --git a/src-tauri/src/utils/system_status.rs b/src-tauri/src/utils/system_status.rs index 05af7bb35..7ec383a7c 100644 --- a/src-tauri/src/utils/system_status.rs +++ b/src-tauri/src/utils/system_status.rs @@ -22,7 +22,7 @@ use std::sync::LazyLock; -use anyhow::{anyhow, Error}; +use anyhow::Error; use log::{error, info}; use psp::monitor::{PowerMonitor, PowerState}; use tokio::sync::watch; @@ -50,7 +50,7 @@ impl SystemStatus { let power_monitor = PowerMonitor::new(); let _unused = power_monitor.start_listening().inspect_err(|e| { error!(target: LOG_TARGET, "Failed to start power monitor: {:?}", e); - })?; + }); power_monitor } From f201682a33f65062b865b5fe54d3ecbe0abd95ac Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Mon, 24 Feb 2025 11:08:09 +0100 Subject: [PATCH 24/25] fix clippy --- src-tauri/src/main.rs | 4 +++- src-tauri/src/updates_manager.rs | 5 +---- src-tauri/src/utils/shutdown_utils.rs | 1 + src-tauri/src/utils/system_status.rs | 10 +++++----- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index e9b23552d..8355796e7 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1356,7 +1356,9 @@ fn main() { let power_monitor = SystemStatus::current().start_listener(); app.run(move |app_handle, event| { // We can only recive system events from the event loop so this needs to be here - SystemStatus::current().recive_power_event(&power_monitor); + let _unused = SystemStatus::current().recive_power_event(&power_monitor).inspect_err(|e| { + error!(target: LOG_TARGET, "Could not recive power event: {:?}", e) + }); match event { tauri::RunEvent::Ready => { diff --git a/src-tauri/src/updates_manager.rs b/src-tauri/src/updates_manager.rs index 57fab8b94..f40bb1a29 100644 --- a/src-tauri/src/updates_manager.rs +++ b/src-tauri/src/updates_manager.rs @@ -126,10 +126,7 @@ impl UpdatesManager { if is_screen_locked && is_auto_update { info!(target: LOG_TARGET, "try_update: Screen is locked. Displaying notification"); - let payload = CouldNotUpdatePayload { - event_type: "could_not_update".to_string(), - version, - }; + let payload = CouldNotUpdatePayload::new(version); drop(app.emit("updates_event", payload).inspect_err(|e| { warn!(target: LOG_TARGET, "Failed to emit 'updates-event' with CouldNotUpdatePayload: {}", e); })); diff --git a/src-tauri/src/utils/shutdown_utils.rs b/src-tauri/src/utils/shutdown_utils.rs index c77cf81dd..cbaa40cf4 100644 --- a/src-tauri/src/utils/shutdown_utils.rs +++ b/src-tauri/src/utils/shutdown_utils.rs @@ -135,6 +135,7 @@ pub async fn stop_all_processes( Ok(()) } +#[allow(clippy::too_many_lines)] pub async fn resume_all_processes(app_handle: tauri::AppHandle) -> Result<(), anyhow::Error> { let state = app_handle.state::().inner(); let (tx, _rx) = watch::channel("".to_string()); diff --git a/src-tauri/src/utils/system_status.rs b/src-tauri/src/utils/system_status.rs index 7ec383a7c..917d61439 100644 --- a/src-tauri/src/utils/system_status.rs +++ b/src-tauri/src/utils/system_status.rs @@ -62,23 +62,23 @@ impl SystemStatus { match event { PowerState::ScreenLocked => { info!(target: LOG_TARGET, "Screen locked"); - self.sleep_mode_watcher_sender.send(true); + self.sleep_mode_watcher_sender.send(true)?; } PowerState::Suspend => { info!(target: LOG_TARGET, "Suspend"); - self.sleep_mode_watcher_sender.send(true); + self.sleep_mode_watcher_sender.send(true)?; } PowerState::Resume => { info!(target: LOG_TARGET, "Resume"); - self.sleep_mode_watcher_sender.send(false); + self.sleep_mode_watcher_sender.send(false)?; } PowerState::ScreenUnlocked => { info!(target: LOG_TARGET, "Screen unlocked"); - self.sleep_mode_watcher_sender.send(false); + self.sleep_mode_watcher_sender.send(false)?; } _ => { info!(target: LOG_TARGET, "Other event"); - self.sleep_mode_watcher_sender.send(false); + self.sleep_mode_watcher_sender.send(false)?; } } } From 13a4b3768394ebd10fa6e21695f1a5ead1d3d7e6 Mon Sep 17 00:00:00 2001 From: Misieq01 Date: Wed, 26 Feb 2025 09:21:43 +0100 Subject: [PATCH 25/25] change logs --- src-tauri/src/main.rs | 6 +++--- src-tauri/src/utils/shutdown_utils.rs | 1 - src-tauri/src/utils/system_status.rs | 3 +-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 8355796e7..86c49d221 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1355,9 +1355,9 @@ fn main() { let power_monitor = SystemStatus::current().start_listener(); app.run(move |app_handle, event| { - // We can only recive system events from the event loop so this needs to be here - let _unused = SystemStatus::current().recive_power_event(&power_monitor).inspect_err(|e| { - error!(target: LOG_TARGET, "Could not recive power event: {:?}", e) + // We can only receive system events from the event loop so this needs to be here + let _unused = SystemStatus::current().receive_power_event(&power_monitor).inspect_err(|e| { + error!(target: LOG_TARGET, "Could not receive power event: {:?}", e) }); match event { diff --git a/src-tauri/src/utils/shutdown_utils.rs b/src-tauri/src/utils/shutdown_utils.rs index cbaa40cf4..2291c6270 100644 --- a/src-tauri/src/utils/shutdown_utils.rs +++ b/src-tauri/src/utils/shutdown_utils.rs @@ -180,7 +180,6 @@ pub async fn resume_all_processes(app_handle: tauri::AppHandle) -> Result<(), an stage_progress += 1; let cpu_miner_config = state.cpu_miner_config.read().await; - let mm_proxy_manager = state.mm_proxy_manager.clone(); let mut tor_control_port = None; diff --git a/src-tauri/src/utils/system_status.rs b/src-tauri/src/utils/system_status.rs index 917d61439..60a7dc858 100644 --- a/src-tauri/src/utils/system_status.rs +++ b/src-tauri/src/utils/system_status.rs @@ -55,8 +55,7 @@ impl SystemStatus { power_monitor } - pub fn recive_power_event(&self, power_monitor: &PowerMonitor) -> Result<(), Error> { - info!(target: LOG_TARGET, "Reciving power event"); + pub fn receive_power_event(&self, power_monitor: &PowerMonitor) -> Result<(), Error> { if let Ok(event) = power_monitor.event_receiver().try_recv() { info!(target: LOG_TARGET, "Power event: {:?}", event); match event {