fix(agent): 会话列表分栏跟随当前会话并进 URL,保留滚动位置

- 打开巡检会话(含巡检的子会话)时左栏自动切到「自动巡检」并选中当前项;
  手动切换分栏写进 ?tab=,刷新、窄屏「全部会话」返回都保持
- 列表页 / 会话页之间保留搜索、筛选和各分栏的滚动位置;当前会话看不见时滚进可见区
- 跳到子会话时展开父会话
- 演示模式的分栏筛选与服务端一致:子会话随父会话

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Cxwgnn2pbzQ7rXv3rq7fei
This commit is contained in:
rootandClaude Opus 5.5 committed 2026-10-06 18:00:14 +08:00
1 parent 177d21c26b
commit f5234cbcb9
7 files changed
+257 -30

No files matched your search

@@ -14,7 +14,7 @@ import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from "
import { errorMessage } from "~/lib/api.ts";
import { capabilityMeta, isDenied, RunStatusBadge } from "./agent-conversation.tsx";
import { AgentRunPanel, GoalComposer } from "./agent-run-panel.tsx";
import { AgentSessionList } from "./agent-session-list.tsx";
import { AgentSessionList, drawerListMemory } from "./agent-session-list.tsx";
import {
type AgentContext,
agentShortcutLabel,
@@ -71,7 +71,7 @@ function HistoryPopover({ activeId }: { activeId: string | null }) {
</PopoverTrigger>
<PopoverContent align="end" className="flex h-[min(32rem,70dvh)] w-[min(22rem,calc(100vw-2rem))] flex-col p-2">
<AgentSessionList
remember
memory={drawerListMemory}
limit={20}
activeId={activeId ?? undefined}
onOpen={(id) => {