Restore fuzzy project folder search and desktop browsing (#1968)

* fix(projects): restore folder search and browsing

* fix(projects): preserve fuzzy search edge cases

* test(projects): move picker cleanup into fixture

* fix(projects): preserve absolute path descendants

* test(server): compare canonical search paths

* fix(projects): anchor root path suggestions

* fix(projects): anchor Windows root suggestions

* fix(projects): anchor directory search paths

* test(server): canonicalize directory search root

* fix(app): anchor rooted basename suggestions

* refactor(search): unify directory suggestions

Use one parameterized daemon search engine for project paths and workspace entries. Keep local recommendations as a small client overlay and remove unnecessary response metadata.

* fix(search): preserve filesystem root semantics

Accept absolute queries through configured root aliases while keeping traversal and output canonical. Keep blank suffix browsing matcher-independent and avoid metadata-keyed listing caches where Windows cannot invalidate them reliably.
This commit is contained in:
Mohamed Boudra
2026-07-10 17:52:55 +08:00
committed by GitHub
parent 1f0285c06b
commit 61a9117a6b
30 changed files with 1552 additions and 1465 deletions
+1
View File
@@ -1094,6 +1094,7 @@ export const ar: TranslationResources = {
},
projectPicker: {
placeholder: "اكتب مسار الدليل...",
browse: "استعراض…",
opening: "افتتاح المشروع...",
searching: "جارٍ البحث...",
empty: "ابدأ بكتابة المسار",
+1
View File
@@ -1101,6 +1101,7 @@ export const en = {
},
projectPicker: {
placeholder: "Type a directory path...",
browse: "Browse…",
opening: "Opening project...",
searching: "Searching...",
empty: "Start typing a path",
+1
View File
@@ -1130,6 +1130,7 @@ export const es: TranslationResources = {
},
projectPicker: {
placeholder: "Escriba una ruta de directorio...",
browse: "Explorar…",
opening: "Proyecto de apertura...",
searching: "Buscando...",
empty: "Comience a escribir una ruta",
+1
View File
@@ -1132,6 +1132,7 @@ export const fr: TranslationResources = {
},
projectPicker: {
placeholder: "Tapez un chemin de répertoire...",
browse: "Parcourir…",
opening: "Projet d'ouverture...",
searching: "Recherche en cours...",
empty: "Commencez à taper un chemin",
+1
View File
@@ -1108,6 +1108,7 @@ export const ja: TranslationResources = {
},
projectPicker: {
placeholder: "ディレクトリパスを入力...",
browse: "参照…",
opening: "プロジェクトを開いています...",
searching: "検索中...",
empty: "パスを入力してください",
+1
View File
@@ -1116,6 +1116,7 @@ export const ptBR: TranslationResources = {
},
projectPicker: {
placeholder: "Digite um caminho de diretório...",
browse: "Procurar…",
opening: "Abrindo projeto...",
searching: "Buscando...",
empty: "Comece digitando um caminho",
+1
View File
@@ -1120,6 +1120,7 @@ export const ru: TranslationResources = {
},
projectPicker: {
placeholder: "Введите путь к каталогу...",
browse: "Обзор…",
opening: "Открытие проекта...",
searching: "Идет поиск...",
empty: "Начните вводить путь",
+1
View File
@@ -1079,6 +1079,7 @@ export const zhCN: TranslationResources = {
},
projectPicker: {
placeholder: "输入目录路径...",
browse: "浏览…",
opening: "正在打开 project...",
searching: "正在搜索...",
empty: "开始输入路径",