Radish alpha
r
rad:z4D5UCArafTzTQpDZNQRuqswh3ury
Radicle desktop app
Radicle
Git
Remove double navigation on app load
Merged did:key:z6MkkfM3...sVz5 opened 1 year ago

We where navigating to the home route twice on load.

Once with router.loadFromLocation and then during onMount with navigate("home") which triggered the repo listing twice.

Add CrabNebula dev tools

Allowed to see the time it takes for each tauri command to be processed, is helpful for optimizing the desktop app

check

👉 Workflow runs 👉 Branch on GitHub

4 files changed +543 -50 5b33e1ec 0a059da7
modified src-tauri/Cargo.lock
@@ -148,6 +148,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16"

[[package]]
+
name = "async-stream"
+
version = "0.3.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
+
dependencies = [
+
 "async-stream-impl",
+
 "futures-core",
+
 "pin-project-lite",
+
]
+

+
[[package]]
+
name = "async-stream-impl"
+
version = "0.3.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.72",
+
]
+

+
[[package]]
+
name = "async-trait"
+
version = "0.1.82"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.72",
+
]
+

+
[[package]]
name = "atk"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -177,6 +210,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"

[[package]]
+
name = "axum"
+
version = "0.6.20"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
+
dependencies = [
+
 "async-trait",
+
 "axum-core",
+
 "bitflags 1.3.2",
+
 "bytes",
+
 "futures-util",
+
 "http 0.2.12",
+
 "http-body 0.4.6",
+
 "hyper 0.14.30",
+
 "itoa 1.0.11",
+
 "matchit",
+
 "memchr",
+
 "mime",
+
 "percent-encoding",
+
 "pin-project-lite",
+
 "rustversion",
+
 "serde",
+
 "sync_wrapper 0.1.2",
+
 "tower",
+
 "tower-layer",
+
 "tower-service",
+
]
+

+
[[package]]
+
name = "axum-core"
+
version = "0.3.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
+
dependencies = [
+
 "async-trait",
+
 "bytes",
+
 "futures-util",
+
 "http 0.2.12",
+
 "http-body 0.4.6",
+
 "mime",
+
 "rustversion",
+
 "tower-layer",
+
 "tower-service",
+
]
+

+
[[package]]
name = "backtrace"
version = "0.3.73"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -343,9 +421,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"

[[package]]
name = "bytes"
-
version = "1.6.1"
+
version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952"
+
checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
dependencies = [
 "serde",
]
@@ -570,6 +648,16 @@ dependencies = [
]

[[package]]
+
name = "colored"
+
version = "2.1.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
+
dependencies = [
+
 "lazy_static",
+
 "windows-sys 0.48.0",
+
]
+

+
[[package]]
name = "combine"
version = "4.6.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -901,6 +989,48 @@ dependencies = [
]

[[package]]
+
name = "devtools-core"
+
version = "0.3.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e78cdd51f6f62ad4eb9b6581d7e238e1779db3144ddbd711388f552e6ed3194b"
+
dependencies = [
+
 "async-stream",
+
 "bytes",
+
 "devtools-wire-format",
+
 "futures",
+
 "http 0.2.12",
+
 "hyper 0.14.30",
+
 "log",
+
 "prost-types",
+
 "ringbuf",
+
 "thiserror",
+
 "tokio",
+
 "tokio-stream",
+
 "tonic",
+
 "tonic-health",
+
 "tonic-web",
+
 "tower",
+
 "tower-http",
+
 "tower-layer",
+
 "tracing",
+
 "tracing-core",
+
 "tracing-subscriber",
+
]
+

+
[[package]]
+
name = "devtools-wire-format"
+
version = "0.5.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a1c0de542960449c9566001c1879d10ede95f3f2e0013fdae0cc3b153bfabb0d"
+
dependencies = [
+
 "bitflags 2.6.0",
+
 "prost",
+
 "prost-types",
+
 "tonic",
+
 "tracing-core",
+
]
+

+
[[package]]
name = "digest"
version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1033,6 +1163,12 @@ dependencies = [
]

[[package]]
+
name = "either"
+
version = "1.13.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
+

+
[[package]]
name = "elliptic-curve"
version = "0.13.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1225,12 +1361,28 @@ dependencies = [
]

[[package]]
+
name = "futures"
+
version = "0.3.30"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+
dependencies = [
+
 "futures-channel",
+
 "futures-core",
+
 "futures-executor",
+
 "futures-io",
+
 "futures-sink",
+
 "futures-task",
+
 "futures-util",
+
]
+

+
[[package]]
name = "futures-channel"
version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
dependencies = [
 "futures-core",
+
 "futures-sink",
]

[[package]]
@@ -1285,6 +1437,7 @@ version = "0.3.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
dependencies = [
+
 "futures-channel",
 "futures-core",
 "futures-io",
 "futures-macro",
@@ -1671,6 +1824,25 @@ dependencies = [
]

[[package]]
+
name = "h2"
+
version = "0.3.26"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
+
dependencies = [
+
 "bytes",
+
 "fnv",
+
 "futures-core",
+
 "futures-sink",
+
 "futures-util",
+
 "http 0.2.12",
+
 "indexmap 2.2.6",
+
 "slab",
+
 "tokio",
+
 "tokio-util",
+
 "tracing",
+
]
+

+
[[package]]
name = "hashbrown"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1731,6 +1903,17 @@ dependencies = [

[[package]]
name = "http"
+
version = "0.2.12"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
+
dependencies = [
+
 "bytes",
+
 "fnv",
+
 "itoa 1.0.11",
+
]
+

+
[[package]]
+
name = "http"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
@@ -1742,12 +1925,23 @@ dependencies = [

[[package]]
name = "http-body"
+
version = "0.4.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+
dependencies = [
+
 "bytes",
+
 "http 0.2.12",
+
 "pin-project-lite",
+
]
+

+
[[package]]
+
name = "http-body"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
dependencies = [
 "bytes",
-
 "http",
+
 "http 1.1.0",
]

[[package]]
@@ -1758,18 +1952,54 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f"
dependencies = [
 "bytes",
 "futures-util",
-
 "http",
-
 "http-body",
+
 "http 1.1.0",
+
 "http-body 1.0.1",
 "pin-project-lite",
]

[[package]]
+
name = "http-range-header"
+
version = "0.3.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f"
+

+
[[package]]
name = "httparse"
version = "1.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9"

[[package]]
+
name = "httpdate"
+
version = "1.0.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+

+
[[package]]
+
name = "hyper"
+
version = "0.14.30"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9"
+
dependencies = [
+
 "bytes",
+
 "futures-channel",
+
 "futures-core",
+
 "futures-util",
+
 "h2",
+
 "http 0.2.12",
+
 "http-body 0.4.6",
+
 "httparse",
+
 "httpdate",
+
 "itoa 1.0.11",
+
 "pin-project-lite",
+
 "socket2",
+
 "tokio",
+
 "tower-service",
+
 "tracing",
+
 "want",
+
]
+

+
[[package]]
name = "hyper"
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1778,8 +2008,8 @@ dependencies = [
 "bytes",
 "futures-channel",
 "futures-util",
-
 "http",
-
 "http-body",
+
 "http 1.1.0",
+
 "http-body 1.0.1",
 "httparse",
 "itoa 1.0.11",
 "pin-project-lite",
@@ -1789,6 +2019,18 @@ dependencies = [
]

[[package]]
+
name = "hyper-timeout"
+
version = "0.4.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
+
dependencies = [
+
 "hyper 0.14.30",
+
 "pin-project-lite",
+
 "tokio",
+
 "tokio-io-timeout",
+
]
+

+
[[package]]
name = "hyper-util"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1797,9 +2039,9 @@ dependencies = [
 "bytes",
 "futures-channel",
 "futures-util",
-
 "http",
-
 "http-body",
-
 "hyper",
+
 "http 1.1.0",
+
 "http-body 1.0.1",
+
 "hyper 1.4.1",
 "pin-project-lite",
 "socket2",
 "tokio",
@@ -1881,9 +2123,9 @@ dependencies = [

[[package]]
name = "infer"
-
version = "0.15.0"
+
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "cb33622da908807a06f9513c19b3c1ad50fab3e4137d82a78107d502075aa199"
+
checksum = "bc150e5ce2330295b8616ce0e3f53250e53af31759a9dbedad1621ba29151847"
dependencies = [
 "cfb",
]
@@ -1933,6 +2175,15 @@ dependencies = [
]

[[package]]
+
name = "itertools"
+
version = "0.12.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+
dependencies = [
+
 "either",
+
]
+

+
[[package]]
name = "itoa"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2160,6 +2411,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"

[[package]]
+
name = "local-ip-address"
+
version = "0.5.7"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "612ed4ea9ce5acfb5d26339302528a5e1e59dfed95e9e11af3c083236ff1d15d"
+
dependencies = [
+
 "libc",
+
 "neli",
+
 "thiserror",
+
 "windows-sys 0.48.0",
+
]
+

+
[[package]]
name = "localtime"
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2244,6 +2507,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"

[[package]]
+
name = "matchit"
+
version = "0.7.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
+

+
[[package]]
name = "memchr"
version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2347,6 +2616,31 @@ dependencies = [
]

[[package]]
+
name = "neli"
+
version = "0.6.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "1100229e06604150b3becd61a4965d5c70f3be1759544ea7274166f4be41ef43"
+
dependencies = [
+
 "byteorder",
+
 "libc",
+
 "log",
+
 "neli-proc-macros",
+
]
+

+
[[package]]
+
name = "neli-proc-macros"
+
version = "0.1.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c168194d373b1e134786274020dae7fc5513d565ea2ebb9bc9ff17ffb69106d4"
+
dependencies = [
+
 "either",
+
 "proc-macro2",
+
 "quote",
+
 "serde",
+
 "syn 1.0.109",
+
]
+

+
[[package]]
name = "new_debug_unreachable"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3084,6 +3378,38 @@ dependencies = [
]

[[package]]
+
name = "prost"
+
version = "0.12.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29"
+
dependencies = [
+
 "bytes",
+
 "prost-derive",
+
]
+

+
[[package]]
+
name = "prost-derive"
+
version = "0.12.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
+
dependencies = [
+
 "anyhow",
+
 "itertools",
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.72",
+
]
+

+
[[package]]
+
name = "prost-types"
+
version = "0.12.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0"
+
dependencies = [
+
 "prost",
+
]
+

+
[[package]]
name = "quick-xml"
version = "0.32.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3190,6 +3516,7 @@ dependencies = [
 "serde_json",
 "tauri",
 "tauri-build",
+
 "tauri-plugin-devtools",
 "tauri-plugin-shell",
 "tauri-plugin-window-state",
 "thiserror",
@@ -3408,10 +3735,10 @@ dependencies = [
 "bytes",
 "futures-core",
 "futures-util",
-
 "http",
-
 "http-body",
+
 "http 1.1.0",
+
 "http-body 1.0.1",
 "http-body-util",
-
 "hyper",
+
 "hyper 1.4.1",
 "hyper-util",
 "ipnet",
 "js-sys",
@@ -3423,7 +3750,7 @@ dependencies = [
 "serde",
 "serde_json",
 "serde_urlencoded",
-
 "sync_wrapper",
+
 "sync_wrapper 1.0.1",
 "tokio",
 "tokio-util",
 "tower-service",
@@ -3446,6 +3773,15 @@ dependencies = [
]

[[package]]
+
name = "ringbuf"
+
version = "0.4.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "46f7f1b88601a8ee13cabf203611ccdf64345dc1c5d24de8b11e1a678ee619b6"
+
dependencies = [
+
 "crossbeam-utils",
+
]
+

+
[[package]]
name = "rsa"
version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4052,9 +4388,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"

[[package]]
name = "swift-rs"
-
version = "1.0.6"
+
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "1bbdb58577b6301f8d17ae2561f32002a5bae056d444e0f69e611e504a276204"
+
checksum = "4057c98e2e852d51fdcfca832aac7b571f6b351ad159f9eda5db1655f8d0c4d7"
dependencies = [
 "base64 0.21.7",
 "serde",
@@ -4085,6 +4421,12 @@ dependencies = [

[[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.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394"
@@ -4104,9 +4446,9 @@ dependencies = [

[[package]]
name = "tao"
-
version = "0.29.0"
+
version = "0.30.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "6775bcf3c1da33f848ede9cff5883ed1e45a29f66533ce42ad06c93ae514ed59"
+
checksum = "2a93f2c6b8fdaeb7f417bda89b5bc767999745c3052969664ae1fa65892deb7e"
dependencies = [
 "bitflags 2.6.0",
 "cocoa 0.26.0",
@@ -4171,9 +4513,9 @@ checksum = "4873307b7c257eddcb50c9bedf158eb669578359fb28428bef438fec8e6ba7c2"

[[package]]
name = "tauri"
-
version = "2.0.0-rc.4"
+
version = "2.0.0-rc.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "089bfbc9893d4129d73190496982c4d1ac0b02a9a7460a85d49c748e473c2f2e"
+
checksum = "a6327f79726c508efbbc3826b343fd7d39ebce786bdeff5881077b35d335d9e0"
dependencies = [
 "anyhow",
 "bytes",
@@ -4186,7 +4528,7 @@ dependencies = [
 "glob",
 "gtk",
 "heck 0.5.0",
-
 "http",
+
 "http 1.1.0",
 "jni",
 "libc",
 "log",
@@ -4209,6 +4551,7 @@ dependencies = [
 "tauri-utils",
 "thiserror",
 "tokio",
+
 "tracing",
 "tray-icon",
 "url",
 "urlpattern",
@@ -4221,9 +4564,9 @@ dependencies = [

[[package]]
name = "tauri-build"
-
version = "2.0.0-rc.4"
+
version = "2.0.0-rc.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "a7abd4a3003014ed609030cb670ab666991bb794f4a927935f0a7ae0404f65d8"
+
checksum = "7938a610d1474435fa38dfba66c95ce9be7f17b500672b6e00072bca5e52fef3"
dependencies = [
 "anyhow",
 "cargo_toml",
@@ -4244,9 +4587,9 @@ dependencies = [

[[package]]
name = "tauri-codegen"
-
version = "2.0.0-rc.4"
+
version = "2.0.0-rc.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "175a0cc0f11d4278123144daa571bb72be333376b8f4ca52ce6b9504e43caafc"
+
checksum = "467d3e95b57c860bea13b7c812820d9e7425e4b700e5e69b358d906f22022007"
dependencies = [
 "base64 0.22.1",
 "brotli",
@@ -4271,9 +4614,9 @@ dependencies = [

[[package]]
name = "tauri-macros"
-
version = "2.0.0-rc.4"
+
version = "2.0.0-rc.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "cfa65710d73b174d152a3bd48ab6e9e994ea32cd052473c223325ea10ca229b4"
+
checksum = "c4585a906bd96bf57d063c3d60c52577ccc5de592d08f9d112e873ada79af9b9"
dependencies = [
 "heck 0.5.0",
 "proc-macro2",
@@ -4285,9 +4628,9 @@ dependencies = [

[[package]]
name = "tauri-plugin"
-
version = "2.0.0-rc.4"
+
version = "2.0.0-rc.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "e9997e2801118206cd344e30b8b837ba8668aa52c4cdc3a14c1d44560dcce540"
+
checksum = "b905ecef194245bb35baba0447703f9fe40e4c03e946c7aba54c21c23e3452c7"
dependencies = [
 "anyhow",
 "glob",
@@ -4301,6 +4644,33 @@ dependencies = [
]

[[package]]
+
name = "tauri-plugin-devtools"
+
version = "2.0.0-rc.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4db4d0b3a0b5cd49d77900a236da574f717cc89919f64b6e030bf2990bd73cce"
+
dependencies = [
+
 "async-stream",
+
 "bytes",
+
 "cocoa 0.26.0",
+
 "colored",
+
 "devtools-core",
+
 "futures",
+
 "local-ip-address",
+
 "log",
+
 "objc",
+
 "serde",
+
 "serde_json",
+
 "swift-rs",
+
 "tauri",
+
 "tauri-plugin",
+
 "tokio",
+
 "tonic",
+
 "tonic-health",
+
 "tracing",
+
 "tracing-subscriber",
+
]
+

+
[[package]]
name = "tauri-plugin-shell"
version = "2.0.0-rc.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4338,13 +4708,13 @@ dependencies = [

[[package]]
name = "tauri-runtime"
-
version = "2.0.0-rc.4"
+
version = "2.0.0-rc.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "ef9dcd87245b84eb27724de1108c0a1a19e826dae36a2f86c9efe94963b3cc3c"
+
checksum = "b72cd110a6699ef44963504d4fa4f6c535677bb0177da2d178f4f822a53058ed"
dependencies = [
 "dpi",
 "gtk",
-
 "http",
+
 "http 1.1.0",
 "jni",
 "raw-window-handle",
 "serde",
@@ -4357,13 +4727,13 @@ dependencies = [

[[package]]
name = "tauri-runtime-wry"
-
version = "2.0.0-rc.4"
+
version = "2.0.0-rc.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "02a73e75d1d0204f69efff29ade79299623eb140e0266856c68b880dad632457"
+
checksum = "1eb325cca17496ccbb469e7e2fef7f3e31a1005ab0c658dc3331c7781a573401"
dependencies = [
 "cocoa 0.26.0",
 "gtk",
-
 "http",
+
 "http 1.1.0",
 "jni",
 "log",
 "percent-encoding",
@@ -4372,6 +4742,7 @@ dependencies = [
 "tao",
 "tauri-runtime",
 "tauri-utils",
+
 "tracing",
 "url",
 "webkit2gtk",
 "webview2-com",
@@ -4381,9 +4752,9 @@ dependencies = [

[[package]]
name = "tauri-utils"
-
version = "2.0.0-rc.4"
+
version = "2.0.0-rc.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "62e4c7855f6d4270361dd55edd92ccaa91e17c4d08aae30b1fedeb8a155b8b3c"
+
checksum = "6746b87c4755f493b94920622e245aef2d771f001ddeffc203e315872d323e1c"
dependencies = [
 "aes-gcm",
 "brotli",
@@ -4553,10 +4924,43 @@ dependencies = [
 "mio",
 "pin-project-lite",
 "socket2",
+
 "tokio-macros",
 "windows-sys 0.52.0",
]

[[package]]
+
name = "tokio-io-timeout"
+
version = "1.2.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf"
+
dependencies = [
+
 "pin-project-lite",
+
 "tokio",
+
]
+

+
[[package]]
+
name = "tokio-macros"
+
version = "2.4.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.72",
+
]
+

+
[[package]]
+
name = "tokio-stream"
+
version = "0.1.16"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1"
+
dependencies = [
+
 "futures-core",
+
 "pin-project-lite",
+
 "tokio",
+
]
+

+
[[package]]
name = "tokio-util"
version = "0.7.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4629,6 +5033,66 @@ dependencies = [
]

[[package]]
+
name = "tonic"
+
version = "0.10.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e"
+
dependencies = [
+
 "async-stream",
+
 "async-trait",
+
 "axum",
+
 "base64 0.21.7",
+
 "bytes",
+
 "h2",
+
 "http 0.2.12",
+
 "http-body 0.4.6",
+
 "hyper 0.14.30",
+
 "hyper-timeout",
+
 "percent-encoding",
+
 "pin-project",
+
 "prost",
+
 "tokio",
+
 "tokio-stream",
+
 "tower",
+
 "tower-layer",
+
 "tower-service",
+
 "tracing",
+
]
+

+
[[package]]
+
name = "tonic-health"
+
version = "0.10.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "f80db390246dfb46553481f6024f0082ba00178ea495dbb99e70ba9a4fafb5e1"
+
dependencies = [
+
 "async-stream",
+
 "prost",
+
 "tokio",
+
 "tokio-stream",
+
 "tonic",
+
]
+

+
[[package]]
+
name = "tonic-web"
+
version = "0.10.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0fddb2a37b247e6adcb9f239f4e5cefdcc5ed526141a416b943929f13aea2cce"
+
dependencies = [
+
 "base64 0.21.7",
+
 "bytes",
+
 "http 0.2.12",
+
 "http-body 0.4.6",
+
 "hyper 0.14.30",
+
 "pin-project",
+
 "tokio-stream",
+
 "tonic",
+
 "tower-http",
+
 "tower-layer",
+
 "tower-service",
+
 "tracing",
+
]
+

+
[[package]]
name = "tower"
version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4636,9 +5100,32 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
dependencies = [
 "futures-core",
 "futures-util",
+
 "indexmap 1.9.3",
 "pin-project",
 "pin-project-lite",
+
 "rand 0.8.5",
+
 "slab",
 "tokio",
+
 "tokio-util",
+
 "tower-layer",
+
 "tower-service",
+
 "tracing",
+
]
+

+
[[package]]
+
name = "tower-http"
+
version = "0.4.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140"
+
dependencies = [
+
 "bitflags 2.6.0",
+
 "bytes",
+
 "futures-core",
+
 "futures-util",
+
 "http 0.2.12",
+
 "http-body 0.4.6",
+
 "http-range-header",
+
 "pin-project-lite",
 "tower-layer",
 "tower-service",
]
@@ -4661,6 +5148,7 @@ version = "0.1.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
dependencies = [
+
 "log",
 "pin-project-lite",
 "tracing-attributes",
 "tracing-core",
@@ -4718,9 +5206,9 @@ dependencies = [

[[package]]
name = "tray-icon"
-
version = "0.15.1"
+
version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "2b92252d649d771105448969f2b2dda4342ba48b77731b60d37c93665e26615b"
+
checksum = "044d7738b3d50f288ddef035b793228740ad4d927f5466b0af55dc15e7e03cfe"
dependencies = [
 "core-graphics 0.24.0",
 "crossbeam-channel",
@@ -4870,11 +5358,10 @@ dependencies = [

[[package]]
name = "urlpattern"
-
version = "0.2.0"
+
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "f9bd5ff03aea02fa45b13a7980151fe45009af1980ba69f651ec367121a31609"
+
checksum = "70acd30e3aa1450bc2eece896ce2ad0d178e9c079493819301573dae3c37ba6d"
dependencies = [
-
 "derive_more",
 "regex",
 "serde",
 "unic-ucd-ident",
@@ -5510,9 +5997,9 @@ dependencies = [

[[package]]
name = "wry"
-
version = "0.42.0"
+
version = "0.43.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-
checksum = "49b8049c8f239cdbfaaea4bacb9646f6b208938ceec0acd5b3e99cd05f70903f"
+
checksum = "f4d715cf5fe88e9647f3d17b207b6d060d4a88e7171d4ccb2d2c657dd1d44728"
dependencies = [
 "base64 0.22.1",
 "block",
@@ -5524,7 +6011,7 @@ dependencies = [
 "gdkx11",
 "gtk",
 "html5ever",
-
 "http",
+
 "http 1.1.0",
 "javascriptcore-rs",
 "jni",
 "kuchikiki",
@@ -5539,6 +6026,7 @@ dependencies = [
 "soup3",
 "tao-macros",
 "thiserror",
+
 "tracing",
 "webkit2gtk",
 "webkit2gtk-sys",
 "webview2-com",
modified src-tauri/Cargo.toml
@@ -25,6 +25,7 @@ radicle-surf = { version = "0.21.0" }
serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0" }
tauri = { version = "2.0.0-rc.0", features = ["isolation"] }
+
tauri-plugin-devtools = { version = "2.0.0-rc" }
tauri-plugin-shell = { version = "2.0.0-rc.0" }
tauri-plugin-window-state = "2.0.0-rc.1"
thiserror = { version = "1.0.63" }
modified src-tauri/src/lib.rs
@@ -79,7 +79,12 @@ impl AppState {

#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
-
    tauri::Builder::default()
+
    #[cfg(debug_assertions)]
+
    let builder = tauri::Builder::default().plugin(tauri_plugin_devtools::init());
+
    #[cfg(not(debug_assertions))]
+
    let builder = tauri::Builder::default();
+

+
    builder
        .setup(|app| {
            let profile: radicle::Profile = match radicle::Profile::load() {
                Ok(profile) => Ok::<radicle::Profile, error::Error>(profile),
modified src/App.svelte
@@ -11,7 +11,6 @@
  import Home from "@app/views/Home.svelte";

  const activeRouteStore = router.activeRouteStore;
-
  void router.loadFromLocation();

  onMount(async () => {
    try {
@@ -21,7 +20,7 @@
        await invoke("authenticate");
      }

-
      void router.push({ resource: "home" });
+
      void router.loadFromLocation();
      // eslint-disable-next-line @typescript-eslint/no-explicit-any
    } catch (e: any) {
      void router.push({