feat(desktop): 同步 web 模块界面和修复会话初始化

- App.tsx: 添加 IDE 面板、StatusBar、Resizer 等组件
- App.tsx: 添加连接错误处理和用户友好提示
- App.tsx: 修复新 project 目录下不自动创建会话的问题
- Chat.tsx: 同步 web 版本的所有 UI 组件和功能
- tailwind.config.js: 添加语义化颜色 (surface, fg, line, code)
- index.css: 精简为仅包含桌面端特有样式
- ThemeProvider 设置 defaultTheme='dark' 修复代码编辑器主题
- web/App.tsx: 同步修复会话初始化逻辑
This commit is contained in:
2025-12-18 17:48:46 +08:00
parent 3ff489fbc0
commit 243f8dc860
5 changed files with 387 additions and 328 deletions
+4 -13
View File
@@ -64,8 +64,6 @@ export function App() {
// 初始化:加载会话
useEffect(() => {
const HAS_SESSIONS_KEY = 'ai-assistant-has-sessions';
async function init() {
try {
const sessionsResult = await listSessions();
@@ -74,18 +72,11 @@ export function App() {
if (sessions.length > 0) {
// 有会话,选择最近的
setCurrentSessionId(sessions[0].id);
localStorage.setItem(HAS_SESSIONS_KEY, 'true');
} else {
// 无会话:检查是否是首次启动
const hasHadSessions = localStorage.getItem(HAS_SESSIONS_KEY);
if (!hasHadSessions) {
// 首次启动,自动创建会话
const { data: newSession } = await createSession();
setCurrentSessionId(newSession.id);
localStorage.setItem(HAS_SESSIONS_KEY, 'true');
}
// 用户删除了所有会话:不自动创建,显示空状态
// 无会话,自动创建一个新会话
// 这处理了新 project 目录的情况
const { data: newSession } = await createSession();
setCurrentSessionId(newSession.id);
}
} catch (error) {
console.error('Failed to initialize:', error);