From cc8441d9cbdb0da1bbb6c2572042ac4d03c5011d Mon Sep 17 00:00:00 2001 From: Andrew Avsenin Date: Fri, 24 Apr 2026 22:15:07 +0300 Subject: [PATCH] fix(app): preserve per-workspace icon override from localStorage Commit 6002500bc accidentally removed local icon override fallback from childStore.icon when enriching project metadata. This caused different subdirectories of the same git repo to share the same icon from the database instead of using their individual overrides stored in per-workspace localStorage. --- packages/app/src/context/layout.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/app/src/context/layout.tsx b/packages/app/src/context/layout.tsx index 97d9cacbbe15..cacc875c54d6 100644 --- a/packages/app/src/context/layout.tsx +++ b/packages/app/src/context/layout.tsx @@ -391,7 +391,14 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext( ? globalSync.data.project.find((x) => x.id === projectID) : globalSync.data.project.find((x) => x.worktree === project.worktree) - return { ...metadata, ...project } + // Preserve local icon override from per-workspace localStorage cache (childStore.icon). + // Without this, different subdirectories of the same git repo would share the same + // icon from the database instead of using their individual overrides. + const base = { ...metadata, ...project } + if (childStore.icon) { + return { ...base, icon: { ...base.icon, override: childStore.icon } } + } + return base } const roots = createMemo(() => {