From 842cf1a3e8f6b2047017992824e8bbdd41074676 Mon Sep 17 00:00:00 2001 From: kurihada Date: Mon, 15 Dec 2025 10:05:17 +0800 Subject: [PATCH] =?UTF-8?q?fix(ui):=20=E4=BC=98=E5=8C=96=E4=BC=9A=E8=AF=9D?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 首次启动时自动创建会话 - 用户删除所有会话后不再自动创建,显示空状态 - 使用 localStorage 记录是否曾有会话 --- packages/desktop/src/App.tsx | 20 +++++++++++++++----- packages/web/src/App.tsx | 20 +++++++++++++++----- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/packages/desktop/src/App.tsx b/packages/desktop/src/App.tsx index cc67cd1..5ba1e94 100644 --- a/packages/desktop/src/App.tsx +++ b/packages/desktop/src/App.tsx @@ -33,19 +33,29 @@ export function App() { const [showProviders, setShowProviders] = useState(false); const [sessionTitleUpdate, setSessionTitleUpdate] = useState<{ sessionId: string; name: string } | null>(null); - // 初始化:加载或创建会话 + // 初始化:加载会话(只在首次启动时自动创建) useEffect(() => { + const HAS_SESSIONS_KEY = 'ai-assistant-has-sessions'; + async function init() { try { const { data: sessions } = await listSessions(); if (sessions.length > 0) { - // 选择最近的会话 + // 有会话,选择最近的 setCurrentSessionId(sessions[0].id); + localStorage.setItem(HAS_SESSIONS_KEY, 'true'); } else { - // 创建新会话 - const { data: newSession } = await createSession(); - setCurrentSessionId(newSession.id); + // 无会话:检查是否是首次启动 + const hasHadSessions = localStorage.getItem(HAS_SESSIONS_KEY); + + if (!hasHadSessions) { + // 首次启动,自动创建会话 + const { data: newSession } = await createSession(); + setCurrentSessionId(newSession.id); + localStorage.setItem(HAS_SESSIONS_KEY, 'true'); + } + // 用户删除了所有会话:不自动创建,显示空状态 } } catch (error) { console.error('Failed to initialize:', error); diff --git a/packages/web/src/App.tsx b/packages/web/src/App.tsx index c82ce9a..a9c0c18 100644 --- a/packages/web/src/App.tsx +++ b/packages/web/src/App.tsx @@ -35,19 +35,29 @@ export function App() { const [showProviders, setShowProviders] = useState(false); const [sessionTitleUpdate, setSessionTitleUpdate] = useState<{ sessionId: string; name: string } | null>(null); - // 初始化:加载或创建会话 + // 初始化:加载会话(只在首次启动时自动创建) useEffect(() => { + const HAS_SESSIONS_KEY = 'ai-assistant-has-sessions'; + async function init() { try { const { data: sessions } = await listSessions(); if (sessions.length > 0) { - // 选择最近的会话 + // 有会话,选择最近的 setCurrentSessionId(sessions[0].id); + localStorage.setItem(HAS_SESSIONS_KEY, 'true'); } else { - // 创建新会话 - const { data: newSession } = await createSession(); - setCurrentSessionId(newSession.id); + // 无会话:检查是否是首次启动 + const hasHadSessions = localStorage.getItem(HAS_SESSIONS_KEY); + + if (!hasHadSessions) { + // 首次启动,自动创建会话 + const { data: newSession } = await createSession(); + setCurrentSessionId(newSession.id); + localStorage.setItem(HAS_SESSIONS_KEY, 'true'); + } + // 用户删除了所有会话:不自动创建,显示空状态 } } catch (error) { console.error('Failed to initialize:', error);