From beace1e320c34f5ef8a2c75aa290c59c82d5e678 Mon Sep 17 00:00:00 2001 From: Serhii Vecherenko Date: Mon, 24 Aug 2026 01:56:30 -0700 Subject: [PATCH] feat(sidebar): show WSL markers in flat thread list --- .../parts/SidebarFlatThreadList.test.tsx | 34 +++++++++++++++++++ .../Sidebar/parts/SidebarFlatThreadList.tsx | 5 +++ 2 files changed, 39 insertions(+) diff --git a/src/renderer/views/MainView/parts/Sidebar/parts/SidebarFlatThreadList.test.tsx b/src/renderer/views/MainView/parts/Sidebar/parts/SidebarFlatThreadList.test.tsx index e8a5ebf2f..8fe4e6928 100644 --- a/src/renderer/views/MainView/parts/Sidebar/parts/SidebarFlatThreadList.test.tsx +++ b/src/renderer/views/MainView/parts/Sidebar/parts/SidebarFlatThreadList.test.tsx @@ -225,6 +225,40 @@ describe("SidebarFlatThreadList", () => { expect(glyph?.getAttribute("class")).toContain("size-3"); }); + it("tags WSL project rows with the WSL marker; native rows carry none", () => { + useAppStore.setState({ + projects: [ + homeProject, + localProject, + { + ...localProject, + id: "wsl-1", + name: "Ubuntu Repo", + location: { + kind: "wsl", + distro: "Ubuntu", + linuxPath: "/home/me/repo", + uncPath: "\\\\wsl.localhost\\Ubuntu\\home\\me\\repo", + }, + }, + ], + threads: [ + makeThread("p1", "local-1", "2026-08-01T10:00:00.000Z"), + makeThread("w1", "wsl-1", "2026-08-02T10:00:00.000Z"), + ], + }); + + render(); + + const wslRow = screen.getByText(/thread:w1 in Ubuntu Repo/).closest("[data-testid=row]"); + expect(wslRow).toHaveTextContent("WSL"); + expect(wslRow?.querySelector('svg[viewBox="0 0 40 16"]')?.getAttribute("class")).toContain( + "h-2.5", + ); + const localRow = screen.getByText(/thread:p1 in Poracode/).closest("[data-testid=row]"); + expect(localRow).not.toHaveTextContent("WSL"); + }); + it("hides Home threads when home scope is disabled", () => { useSharedSettings.setState({ homeScopeEnabled: false } as never); useAppStore.setState({ diff --git a/src/renderer/views/MainView/parts/Sidebar/parts/SidebarFlatThreadList.tsx b/src/renderer/views/MainView/parts/Sidebar/parts/SidebarFlatThreadList.tsx index f26021a3c..f01952dbd 100644 --- a/src/renderer/views/MainView/parts/Sidebar/parts/SidebarFlatThreadList.tsx +++ b/src/renderer/views/MainView/parts/Sidebar/parts/SidebarFlatThreadList.tsx @@ -2,6 +2,7 @@ import { useShallow } from "zustand/shallow"; import type { Project } from "@/shared/contracts"; import { isHomeProject } from "@/shared/homeScope"; import { ProjectIcon } from "@/renderer/components/common/ProjectIcon"; +import { TuxIcon } from "@/renderer/components/common/TuxIcon"; import { ProjectRemoteServerChip, ProjectSelectorIcon, @@ -244,6 +245,10 @@ export function SidebarFlatThreadList(props: { sortMode: ThreadSortMode }) { {project.name} + {/* Mirrors the grouped header's trailing WSL marker. */} + {project.location.kind === "wsl" ? ( + + ) : null} ), }