From de81d610992e25918b07aebb2a49500107c76b64 Mon Sep 17 00:00:00 2001
From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Date: Wed, 8 Apr 2026 14:33:54 -0300
Subject: [PATCH] Fix empty path being shown as an item in the recent projects
picker (#53400)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
A couple of restore project group/workspaces functions weren't filtering
out project groups with empty paths, leading to an empty being shown in
the recent projects picker. This is the problem this PR solves:
Release Notes:
- N/A
---
crates/workspace/src/multi_workspace.rs | 3 +++
crates/workspace/src/workspace.rs | 3 +++
2 files changed, 6 insertions(+)
diff --git a/crates/workspace/src/multi_workspace.rs b/crates/workspace/src/multi_workspace.rs
index aad5207e8b8d119ed6381a59665782c2b1e540d1..fa4f29ecad1ef37852b779837c58e4925840bf23 100644
--- a/crates/workspace/src/multi_workspace.rs
+++ b/crates/workspace/src/multi_workspace.rs
@@ -586,6 +586,9 @@ impl MultiWorkspace {
pub fn restore_project_group_keys(&mut self, keys: Vec) {
let mut restored: Vec = Vec::with_capacity(keys.len());
for key in keys {
+ if key.path_list().paths().is_empty() {
+ continue;
+ }
if !restored.contains(&key) {
restored.push(key);
}
diff --git a/crates/workspace/src/workspace.rs b/crates/workspace/src/workspace.rs
index 3d1f67bf69fb818e6155782fdb4779365098cb20..e6244f63b8b45e39b61b2a1c3f4cf2ff27c8609a 100644
--- a/crates/workspace/src/workspace.rs
+++ b/crates/workspace/src/workspace.rs
@@ -8778,6 +8778,9 @@ pub async fn restore_multiworkspace(
// stale keys from previous sessions get normalized and deduped.
let mut resolved_keys: Vec = Vec::new();
for key in project_group_keys.into_iter().map(ProjectGroupKey::from) {
+ if key.path_list().paths().is_empty() {
+ continue;
+ }
let mut resolved_paths = Vec::new();
for path in key.path_list().paths() {
if let Some(common_dir) =