diff --git a/Cargo.lock b/Cargo.lock
index 91b2e796c..4afa40c62 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3342,7 +3342,7 @@ checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
[[package]]
name = "yazi-adapter"
-version = "0.3.3"
+version = "0.4.0"
dependencies = [
"ansi-to-tui",
"anyhow",
@@ -3362,7 +3362,7 @@ dependencies = [
[[package]]
name = "yazi-boot"
-version = "0.3.3"
+version = "0.4.0"
dependencies = [
"clap",
"clap_complete",
@@ -3380,7 +3380,7 @@ dependencies = [
[[package]]
name = "yazi-cli"
-version = "0.3.3"
+version = "0.4.0"
dependencies = [
"anyhow",
"clap",
@@ -3402,7 +3402,7 @@ dependencies = [
[[package]]
name = "yazi-codegen"
-version = "0.3.3"
+version = "0.4.0"
dependencies = [
"quote",
"syn",
@@ -3410,7 +3410,7 @@ dependencies = [
[[package]]
name = "yazi-config"
-version = "0.3.3"
+version = "0.4.0"
dependencies = [
"anyhow",
"bitflags 2.6.0",
@@ -3430,7 +3430,7 @@ dependencies = [
[[package]]
name = "yazi-core"
-version = "0.3.3"
+version = "0.4.0"
dependencies = [
"anyhow",
"bitflags 2.6.0",
@@ -3463,7 +3463,7 @@ dependencies = [
[[package]]
name = "yazi-dds"
-version = "0.3.3"
+version = "0.4.0"
dependencies = [
"anyhow",
"mlua",
@@ -3484,7 +3484,7 @@ dependencies = [
[[package]]
name = "yazi-fm"
-version = "0.3.3"
+version = "0.4.0"
dependencies = [
"anyhow",
"better-panic",
@@ -3518,7 +3518,7 @@ dependencies = [
[[package]]
name = "yazi-fs"
-version = "0.3.3"
+version = "0.4.0"
dependencies = [
"anyhow",
"arc-swap",
@@ -3537,11 +3537,11 @@ dependencies = [
[[package]]
name = "yazi-macro"
-version = "0.3.3"
+version = "0.4.0"
[[package]]
name = "yazi-plugin"
-version = "0.3.3"
+version = "0.4.0"
dependencies = [
"ansi-to-tui",
"anyhow",
@@ -3581,7 +3581,7 @@ checksum = "f4b6c8e12e39ac0f79fa96f36e5b88e0da8d230691abd729eec709b43c74f632"
[[package]]
name = "yazi-proxy"
-version = "0.3.3"
+version = "0.4.0"
dependencies = [
"anyhow",
"mlua",
@@ -3594,7 +3594,7 @@ dependencies = [
[[package]]
name = "yazi-scheduler"
-version = "0.3.3"
+version = "0.4.0"
dependencies = [
"anyhow",
"async-priority-channel",
@@ -3616,7 +3616,7 @@ dependencies = [
[[package]]
name = "yazi-shared"
-version = "0.3.3"
+version = "0.4.0"
dependencies = [
"anyhow",
"crossterm",
diff --git a/README.md b/README.md
index b4a858f00..e580b191f 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,3 @@
-## The main branch is the upcoming v0.4 development version. Please see [the `shipped` tag](https://github.com/sxyazi/yazi/tree/shipped) for the stable version of Yazi.
-
-For breaking changes, see [Migrating to Yazi v0.4.0](https://github.com/sxyazi/yazi/issues/1772).
-
-
-
diff --git a/yazi-adapter/Cargo.toml b/yazi-adapter/Cargo.toml
index 274c6ae23..e7144cdea 100644
--- a/yazi-adapter/Cargo.toml
+++ b/yazi-adapter/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "yazi-adapter"
-version = "0.3.3"
+version = "0.4.0"
edition = "2021"
license = "MIT"
authors = [ "sxyazi " ]
@@ -9,9 +9,9 @@ homepage = "https://yazi-rs.github.io"
repository = "https://github.com/sxyazi/yazi"
[dependencies]
-yazi-config = { path = "../yazi-config", version = "0.3.3" }
-yazi-macro = { path = "../yazi-macro", version = "0.3.3" }
-yazi-shared = { path = "../yazi-shared", version = "0.3.3" }
+yazi-config = { path = "../yazi-config", version = "0.4.0" }
+yazi-macro = { path = "../yazi-macro", version = "0.4.0" }
+yazi-shared = { path = "../yazi-shared", version = "0.4.0" }
# External dependencies
ansi-to-tui = { workspace = true }
diff --git a/yazi-boot/Cargo.toml b/yazi-boot/Cargo.toml
index 618ad0748..ecc7cd076 100644
--- a/yazi-boot/Cargo.toml
+++ b/yazi-boot/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "yazi-boot"
-version = "0.3.3"
+version = "0.4.0"
edition = "2021"
license = "MIT"
authors = [ "sxyazi " ]
@@ -9,11 +9,11 @@ homepage = "https://yazi-rs.github.io"
repository = "https://github.com/sxyazi/yazi"
[dependencies]
-yazi-adapter = { path = "../yazi-adapter", version = "0.3.3" }
-yazi-config = { path = "../yazi-config", version = "0.3.3" }
-yazi-fs = { path = "../yazi-fs", version = "0.3.3" }
-yazi-macro = { path = "../yazi-macro", version = "0.3.3" }
-yazi-shared = { path = "../yazi-shared", version = "0.3.3" }
+yazi-adapter = { path = "../yazi-adapter", version = "0.4.0" }
+yazi-config = { path = "../yazi-config", version = "0.4.0" }
+yazi-fs = { path = "../yazi-fs", version = "0.4.0" }
+yazi-macro = { path = "../yazi-macro", version = "0.4.0" }
+yazi-shared = { path = "../yazi-shared", version = "0.4.0" }
# External dependencies
clap = { workspace = true }
diff --git a/yazi-cli/Cargo.toml b/yazi-cli/Cargo.toml
index 127577b3b..e5e7d3bd7 100644
--- a/yazi-cli/Cargo.toml
+++ b/yazi-cli/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "yazi-cli"
-version = "0.3.3"
+version = "0.4.0"
edition = "2021"
license = "MIT"
authors = [ "sxyazi " ]
@@ -9,11 +9,11 @@ homepage = "https://yazi-rs.github.io"
repository = "https://github.com/sxyazi/yazi"
[dependencies]
-yazi-boot = { path = "../yazi-boot", version = "0.3.3" }
-yazi-dds = { path = "../yazi-dds", version = "0.3.3" }
-yazi-fs = { path = "../yazi-fs", version = "0.3.3" }
-yazi-macro = { path = "../yazi-macro", version = "0.3.3" }
-yazi-shared = { path = "../yazi-shared", version = "0.3.3" }
+yazi-boot = { path = "../yazi-boot", version = "0.4.0" }
+yazi-dds = { path = "../yazi-dds", version = "0.4.0" }
+yazi-fs = { path = "../yazi-fs", version = "0.4.0" }
+yazi-macro = { path = "../yazi-macro", version = "0.4.0" }
+yazi-shared = { path = "../yazi-shared", version = "0.4.0" }
# External dependencies
anyhow = { workspace = true }
@@ -25,7 +25,7 @@ tokio = { workspace = true }
toml_edit = "0.22.22"
[build-dependencies]
-yazi-shared = { path = "../yazi-shared", version = "0.3.3" }
+yazi-shared = { path = "../yazi-shared", version = "0.4.0" }
# External build dependencies
anyhow = { workspace = true }
diff --git a/yazi-codegen/Cargo.toml b/yazi-codegen/Cargo.toml
index 8bb0ab447..d4397a0b9 100644
--- a/yazi-codegen/Cargo.toml
+++ b/yazi-codegen/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "yazi-codegen"
-version = "0.3.3"
+version = "0.4.0"
edition = "2021"
license = "MIT"
authors = [ "sxyazi " ]
diff --git a/yazi-config/Cargo.toml b/yazi-config/Cargo.toml
index d81855115..d34d0e042 100644
--- a/yazi-config/Cargo.toml
+++ b/yazi-config/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "yazi-config"
-version = "0.3.3"
+version = "0.4.0"
edition = "2021"
license = "MIT"
authors = [ "sxyazi " ]
@@ -9,9 +9,9 @@ homepage = "https://yazi-rs.github.io"
repository = "https://github.com/sxyazi/yazi"
[dependencies]
-yazi-fs = { path = "../yazi-fs", version = "0.3.3" }
-yazi-macro = { path = "../yazi-macro", version = "0.3.3" }
-yazi-shared = { path = "../yazi-shared", version = "0.3.3" }
+yazi-fs = { path = "../yazi-fs", version = "0.4.0" }
+yazi-macro = { path = "../yazi-macro", version = "0.4.0" }
+yazi-shared = { path = "../yazi-shared", version = "0.4.0" }
# External dependencies
anyhow = { workspace = true }
diff --git a/yazi-core/Cargo.toml b/yazi-core/Cargo.toml
index fc7bb8044..9560adeea 100644
--- a/yazi-core/Cargo.toml
+++ b/yazi-core/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "yazi-core"
-version = "0.3.3"
+version = "0.4.0"
edition = "2021"
license = "MIT"
authors = [ "sxyazi " ]
@@ -9,17 +9,17 @@ homepage = "https://yazi-rs.github.io"
repository = "https://github.com/sxyazi/yazi"
[dependencies]
-yazi-adapter = { path = "../yazi-adapter", version = "0.3.3" }
-yazi-boot = { path = "../yazi-boot", version = "0.3.3" }
-yazi-codegen = { path = "../yazi-codegen", version = "0.3.3" }
-yazi-config = { path = "../yazi-config", version = "0.3.3" }
-yazi-dds = { path = "../yazi-dds", version = "0.3.3" }
-yazi-fs = { path = "../yazi-fs", version = "0.3.3" }
-yazi-macro = { path = "../yazi-macro", version = "0.3.3" }
-yazi-plugin = { path = "../yazi-plugin", version = "0.3.3" }
-yazi-proxy = { path = "../yazi-proxy", version = "0.3.3" }
-yazi-scheduler = { path = "../yazi-scheduler", version = "0.3.3" }
-yazi-shared = { path = "../yazi-shared", version = "0.3.3" }
+yazi-adapter = { path = "../yazi-adapter", version = "0.4.0" }
+yazi-boot = { path = "../yazi-boot", version = "0.4.0" }
+yazi-codegen = { path = "../yazi-codegen", version = "0.4.0" }
+yazi-config = { path = "../yazi-config", version = "0.4.0" }
+yazi-dds = { path = "../yazi-dds", version = "0.4.0" }
+yazi-fs = { path = "../yazi-fs", version = "0.4.0" }
+yazi-macro = { path = "../yazi-macro", version = "0.4.0" }
+yazi-plugin = { path = "../yazi-plugin", version = "0.4.0" }
+yazi-proxy = { path = "../yazi-proxy", version = "0.4.0" }
+yazi-scheduler = { path = "../yazi-scheduler", version = "0.4.0" }
+yazi-shared = { path = "../yazi-shared", version = "0.4.0" }
# External dependencies
anyhow = { workspace = true }
diff --git a/yazi-core/src/tab/tab.rs b/yazi-core/src/tab/tab.rs
index 3f6f62852..4cf9b0e3d 100644
--- a/yazi-core/src/tab/tab.rs
+++ b/yazi-core/src/tab/tab.rs
@@ -54,9 +54,8 @@ impl Default for Tab {
impl Tab {
pub fn shutdown(&mut self) {
- if let Some(handle) = self.search.take() {
- handle.abort();
- }
+ self.search.take().map(|h| h.abort());
+ self.preview.reset();
}
}
diff --git a/yazi-dds/Cargo.toml b/yazi-dds/Cargo.toml
index ea1aafcdb..cb5f27634 100644
--- a/yazi-dds/Cargo.toml
+++ b/yazi-dds/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "yazi-dds"
-version = "0.3.3"
+version = "0.4.0"
edition = "2021"
license = "MIT"
authors = [ "sxyazi " ]
@@ -13,10 +13,10 @@ default = [ "vendored-lua" ]
vendored-lua = [ "mlua/vendored" ]
[dependencies]
-yazi-boot = { path = "../yazi-boot", version = "0.3.3" }
-yazi-fs = { path = "../yazi-fs", version = "0.3.3" }
-yazi-macro = { path = "../yazi-macro", version = "0.3.3" }
-yazi-shared = { path = "../yazi-shared", version = "0.3.3" }
+yazi-boot = { path = "../yazi-boot", version = "0.4.0" }
+yazi-fs = { path = "../yazi-fs", version = "0.4.0" }
+yazi-macro = { path = "../yazi-macro", version = "0.4.0" }
+yazi-shared = { path = "../yazi-shared", version = "0.4.0" }
# External dependencies
anyhow = { workspace = true }
diff --git a/yazi-fm/Cargo.toml b/yazi-fm/Cargo.toml
index ff25bc994..d9560dbe4 100644
--- a/yazi-fm/Cargo.toml
+++ b/yazi-fm/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "yazi-fm"
-version = "0.3.3"
+version = "0.4.0"
edition = "2021"
license = "MIT"
authors = [ "sxyazi " ]
@@ -13,17 +13,17 @@ default = [ "vendored-lua" ]
vendored-lua = [ "mlua/vendored" ]
[dependencies]
-yazi-adapter = { path = "../yazi-adapter", version = "0.3.3" }
-yazi-boot = { path = "../yazi-boot", version = "0.3.3" }
-yazi-codegen = { path = "../yazi-codegen", version = "0.3.3" }
-yazi-config = { path = "../yazi-config", version = "0.3.3" }
-yazi-core = { path = "../yazi-core", version = "0.3.3" }
-yazi-dds = { path = "../yazi-dds", version = "0.3.3" }
-yazi-fs = { path = "../yazi-fs", version = "0.3.3" }
-yazi-macro = { path = "../yazi-macro", version = "0.3.3" }
-yazi-plugin = { path = "../yazi-plugin", version = "0.3.3" }
-yazi-proxy = { path = "../yazi-proxy", version = "0.3.3" }
-yazi-shared = { path = "../yazi-shared", version = "0.3.3" }
+yazi-adapter = { path = "../yazi-adapter", version = "0.4.0" }
+yazi-boot = { path = "../yazi-boot", version = "0.4.0" }
+yazi-codegen = { path = "../yazi-codegen", version = "0.4.0" }
+yazi-config = { path = "../yazi-config", version = "0.4.0" }
+yazi-core = { path = "../yazi-core", version = "0.4.0" }
+yazi-dds = { path = "../yazi-dds", version = "0.4.0" }
+yazi-fs = { path = "../yazi-fs", version = "0.4.0" }
+yazi-macro = { path = "../yazi-macro", version = "0.4.0" }
+yazi-plugin = { path = "../yazi-plugin", version = "0.4.0" }
+yazi-proxy = { path = "../yazi-proxy", version = "0.4.0" }
+yazi-shared = { path = "../yazi-shared", version = "0.4.0" }
# External dependencies
anyhow = { workspace = true }
diff --git a/yazi-fs/Cargo.toml b/yazi-fs/Cargo.toml
index 153899175..5d46d4734 100644
--- a/yazi-fs/Cargo.toml
+++ b/yazi-fs/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "yazi-fs"
-version = "0.3.3"
+version = "0.4.0"
edition = "2021"
license = "MIT"
authors = [ "sxyazi " ]
@@ -9,8 +9,8 @@ homepage = "https://yazi-rs.github.io"
repository = "https://github.com/sxyazi/yazi"
[dependencies]
-yazi-macro = { path = "../yazi-macro", version = "0.3.3" }
-yazi-shared = { path = "../yazi-shared", version = "0.3.3" }
+yazi-macro = { path = "../yazi-macro", version = "0.4.0" }
+yazi-shared = { path = "../yazi-shared", version = "0.4.0" }
# External dependencies
anyhow = { workspace = true }
diff --git a/yazi-macro/Cargo.toml b/yazi-macro/Cargo.toml
index 13177518c..0c7bacb07 100644
--- a/yazi-macro/Cargo.toml
+++ b/yazi-macro/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "yazi-macro"
-version = "0.3.3"
+version = "0.4.0"
edition = "2021"
license = "MIT"
authors = [ "sxyazi " ]
diff --git a/yazi-plugin/Cargo.toml b/yazi-plugin/Cargo.toml
index 8e1c97e7b..64e54de30 100644
--- a/yazi-plugin/Cargo.toml
+++ b/yazi-plugin/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "yazi-plugin"
-version = "0.3.3"
+version = "0.4.0"
edition = "2021"
license = "MIT"
authors = [ "sxyazi " ]
@@ -13,14 +13,14 @@ default = [ "vendored-lua" ]
vendored-lua = [ "mlua/vendored" ]
[dependencies]
-yazi-adapter = { path = "../yazi-adapter", version = "0.3.3" }
-yazi-boot = { path = "../yazi-boot", version = "0.3.3" }
-yazi-config = { path = "../yazi-config", version = "0.3.3" }
-yazi-dds = { path = "../yazi-dds", version = "0.3.3" }
-yazi-fs = { path = "../yazi-fs", version = "0.3.3" }
-yazi-macro = { path = "../yazi-macro", version = "0.3.3" }
-yazi-proxy = { path = "../yazi-proxy", version = "0.3.3" }
-yazi-shared = { path = "../yazi-shared", version = "0.3.3" }
+yazi-adapter = { path = "../yazi-adapter", version = "0.4.0" }
+yazi-boot = { path = "../yazi-boot", version = "0.4.0" }
+yazi-config = { path = "../yazi-config", version = "0.4.0" }
+yazi-dds = { path = "../yazi-dds", version = "0.4.0" }
+yazi-fs = { path = "../yazi-fs", version = "0.4.0" }
+yazi-macro = { path = "../yazi-macro", version = "0.4.0" }
+yazi-proxy = { path = "../yazi-proxy", version = "0.4.0" }
+yazi-shared = { path = "../yazi-shared", version = "0.4.0" }
# External dependencies
ansi-to-tui = { workspace = true }
diff --git a/yazi-proxy/Cargo.toml b/yazi-proxy/Cargo.toml
index 600bc398f..5cae37c89 100644
--- a/yazi-proxy/Cargo.toml
+++ b/yazi-proxy/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "yazi-proxy"
-version = "0.3.3"
+version = "0.4.0"
edition = "2021"
license = "MIT"
authors = [ "sxyazi " ]
@@ -13,9 +13,9 @@ default = [ "vendored-lua" ]
vendored-lua = [ "mlua/vendored" ]
[dependencies]
-yazi-config = { path = "../yazi-config", version = "0.3.3" }
-yazi-macro = { path = "../yazi-macro", version = "0.3.3" }
-yazi-shared = { path = "../yazi-shared", version = "0.3.3" }
+yazi-config = { path = "../yazi-config", version = "0.4.0" }
+yazi-macro = { path = "../yazi-macro", version = "0.4.0" }
+yazi-shared = { path = "../yazi-shared", version = "0.4.0" }
# External dependencies
anyhow = { workspace = true }
diff --git a/yazi-scheduler/Cargo.toml b/yazi-scheduler/Cargo.toml
index ef1d9e4b4..52b9fc32d 100644
--- a/yazi-scheduler/Cargo.toml
+++ b/yazi-scheduler/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "yazi-scheduler"
-version = "0.3.3"
+version = "0.4.0"
edition = "2021"
license = "MIT"
authors = [ "sxyazi " ]
@@ -9,13 +9,13 @@ homepage = "https://yazi-rs.github.io"
repository = "https://github.com/sxyazi/yazi"
[dependencies]
-yazi-config = { path = "../yazi-config", version = "0.3.3" }
-yazi-dds = { path = "../yazi-dds", version = "0.3.3" }
-yazi-fs = { path = "../yazi-fs", version = "0.3.3" }
-yazi-macro = { path = "../yazi-macro", version = "0.3.3" }
-yazi-plugin = { path = "../yazi-plugin", version = "0.3.3" }
-yazi-proxy = { path = "../yazi-proxy", version = "0.3.3" }
-yazi-shared = { path = "../yazi-shared", version = "0.3.3" }
+yazi-config = { path = "../yazi-config", version = "0.4.0" }
+yazi-dds = { path = "../yazi-dds", version = "0.4.0" }
+yazi-fs = { path = "../yazi-fs", version = "0.4.0" }
+yazi-macro = { path = "../yazi-macro", version = "0.4.0" }
+yazi-plugin = { path = "../yazi-plugin", version = "0.4.0" }
+yazi-proxy = { path = "../yazi-proxy", version = "0.4.0" }
+yazi-shared = { path = "../yazi-shared", version = "0.4.0" }
# External dependencies
anyhow = { workspace = true }
diff --git a/yazi-shared/Cargo.toml b/yazi-shared/Cargo.toml
index ddacc32a8..a4a2fbb2b 100644
--- a/yazi-shared/Cargo.toml
+++ b/yazi-shared/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "yazi-shared"
-version = "0.3.3"
+version = "0.4.0"
edition = "2021"
license = "MIT"
authors = [ "sxyazi " ]
@@ -10,7 +10,7 @@ repository = "https://github.com/sxyazi/yazi"
rust-version = "1.78.0"
[dependencies]
-yazi-macro = { path = "../yazi-macro", version = "0.3.3" }
+yazi-macro = { path = "../yazi-macro", version = "0.4.0" }
# External dependencies
anyhow = { workspace = true }