From b29e71124d10ccb6a9258930f25f0c99848a8bec Mon Sep 17 00:00:00 2001 From: Linus Rath <139418639+rathlinus@users.noreply.github.com> Date: Wed, 8 Apr 2026 13:22:51 +0200 Subject: [PATCH] fix: prune recent files against server nodes on refresh #146 --- stores/file-store.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/stores/file-store.ts b/stores/file-store.ts index 5b78e175..5fbabeca 100644 --- a/stores/file-store.ts +++ b/stores/file-store.ts @@ -234,7 +234,17 @@ export const useFileStore = create((set, get) => ({ if (a.isDirectory !== b.isDirectory) return a.isDirectory ? -1 : 1; return a.name.localeCompare(b.name); }); - set({ resources, isLoading: false }); + + // Prune recent files whose backing node no longer exists on the server + const { recentFiles } = get(); + const existingIds = new Set(allNodes.map(n => n.id)); + const prunedRecent = recentFiles.filter(r => existingIds.has(r.id)); + if (prunedRecent.length !== recentFiles.length) { + try { localStorage.setItem('files-recent-files', JSON.stringify(prunedRecent)); } catch { /* ignore */ } + set({ resources, recentFiles: prunedRecent, isLoading: false }); + } else { + set({ resources, isLoading: false }); + } } catch (error) { set({ error: error instanceof Error ? error.message : 'Failed to list directory',