diff --git a/Cargo.lock b/Cargo.lock
index 91b2e796..4afa40c6 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 b4a858f0..e580b191 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 274c6ae2..e7144cde 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 618ad074..ecc7cd07 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 127577b3..e5e7d3bd 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 8bb0ab44..d4397a0b 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 d8185511..d34d0e04 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 fc7bb804..9560adee 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 3f6f6285..4cf9b0e3 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 ea1aafcd..cb5f2763 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 ff25bc99..d9560dbe 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 15389917..5d46d473 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 13177518..0c7bacb0 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 8e1c97e7..64e54de3 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 600bc398..5cae37c8 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 ef1d9e4b..52b9fc32 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 ddacc32a..a4a2fbb2 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 }