diff --git a/.changeset/worktree-history-default.md b/.changeset/worktree-history-default.md new file mode 100644 index 00000000000..2241a12d90d --- /dev/null +++ b/.changeset/worktree-history-default.md @@ -0,0 +1,5 @@ +--- +"kilo-code": patch +--- + +Open `/sessions` on a git worktree with the Worktree history filter selected by default. diff --git a/packages/kilo-vscode/tests/history-accessibility.spec.ts b/packages/kilo-vscode/tests/history-accessibility.spec.ts index 230bc7e47f9..3840ab30a24 100644 --- a/packages/kilo-vscode/tests/history-accessibility.spec.ts +++ b/packages/kilo-vscode/tests/history-accessibility.spec.ts @@ -105,6 +105,9 @@ test.describe("history session accessibility", () => { const local = page.getByRole("tab", { name: "Local" }) const worktree = page.getByRole("tab", { name: "Worktree" }) + await expect(worktree).toHaveAttribute("aria-selected", "true") + await expect(page.getByRole("tabpanel", { name: "Worktree" })).toBeVisible() + await local.focus() await page.keyboard.press("End") await expect(worktree).toBeFocused() diff --git a/packages/kilo-vscode/webview-ui/src/components/history/HistoryView.tsx b/packages/kilo-vscode/webview-ui/src/components/history/HistoryView.tsx index 9f31a31115a..53a111ff2a7 100644 --- a/packages/kilo-vscode/webview-ui/src/components/history/HistoryView.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/history/HistoryView.tsx @@ -29,7 +29,8 @@ const HistoryView: Component = (props) => { const dialog = useDialog() const session = useSession() const tabs = useLocalTabs() - const [tab, setTab] = createSignal("local") + const worktreeIds = () => props.worktreeSessionIds?.() + const [tab, setTab] = createSignal(worktreeIds() ? "worktree" : "local") let local: HTMLButtonElement | undefined let cloud: HTMLButtonElement | undefined let worktree: HTMLButtonElement | undefined @@ -37,8 +38,6 @@ const HistoryView: Component = (props) => { let cloudPanel: HTMLDivElement | undefined let worktreePanel: HTMLDivElement | undefined - const worktreeIds = () => props.worktreeSessionIds?.() - createEffect(() => { if (tab() === "worktree" && !worktreeIds()) setTab("local") })