Fix empty path being shown as an item in the recent projects picker (#53400)

Danilo Leal created

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:

<img width="400" height="1042" alt="Screenshot 2026-04-08 at 11  06@2x"
src="https://github.com/user-attachments/assets/4d96cc53-5b03-445c-968b-8a8edec559da"
/>

Release Notes:

- N/A

Change summary

crates/workspace/src/multi_workspace.rs | 3 +++
crates/workspace/src/workspace.rs       | 3 +++
2 files changed, 6 insertions(+)

Detailed changes

crates/workspace/src/multi_workspace.rs 🔗

@@ -586,6 +586,9 @@ impl MultiWorkspace {
     pub fn restore_project_group_keys(&mut self, keys: Vec<ProjectGroupKey>) {
         let mut restored: Vec<ProjectGroupKey> = Vec::with_capacity(keys.len());
         for key in keys {
+            if key.path_list().paths().is_empty() {
+                continue;
+            }
             if !restored.contains(&key) {
                 restored.push(key);
             }

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<ProjectGroupKey> = 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) =