UI 模块实施状态
最后更新:2026-04-22 关联里程碑:M2 TypeScript 客户端迁移
1. 模块概览
UI 模块已完成从 Python Flet 到 TypeScript 客户端的迁移:
- Web 客户端:Next.js 15 + React 18 + Tailwind CSS
- 桌面客户端:Tauri 2.x(Rust + React)
- 移动客户端:Expo React Native
源码位置:apps/web/, apps/desktop/, apps/mobile/
2. TypeScript 客户端状态
2.1 Web (Next.js)
| 页面 | 文件 | 状态 | 功能说明 |
| Dashboard | app/dashboard/page.tsx | ✅ 完成 | 概览、快速操作 |
| Chat | app/chat/page.tsx | ✅ 完成 | 流式消息、中断 |
| Agents | app/agents/page.tsx | ✅ 完成 | Agent列表、详情 |
| Sessions | app/sessions/page.tsx | ✅ 完成 | 会话管理 |
| Channels | app/channels/page.tsx | ✅ 完成 | 通道状态 |
| Settings | app/settings/page.tsx | ✅ 完成 | 配置管理 |
2.2 Desktop (Tauri)
| 功能 | 状态 | 说明 |
| 基础架构 | ✅ 完成 | Tauri 2.x 配置 |
| 系统托盘 | 📋 待开始 | - |
| 原生菜单 | 📋 待开始 | - |
2.3 Mobile (Expo)
| 功能 | 状态 | 说明 |
| 基础架构 | ✅ 完成 | Expo SDK 配置 |
| Tab 导航 | ✅ 完成 | 底部 Tab 栏 |
| 原生能力 | 📋 待开始 | 推送、相机等 |
3. 共享包状态
3.1 packages/shared
| 模块 | 状态 | 功能说明 |
| 类型定义 | ✅ 完成 | TypeScript 类型 |
| API 客户端 | ✅ 完成 | Gateway RPC 客户端 |
| Stores | ✅ 完成 | Zustand 状态管理 |
| 工具函数 | ✅ 完成 | 通用工具 |
3.2 packages/ui
| 组件 | 状态 | 功能说明 |
| 基础组件 | ✅ 完成 | Button, Card, Input 等 |
| 复合组件 | ✅ 完成 | Sidebar, Shell 等 |
| 主题 | ✅ 完成 | Tailwind + CSS 变量 |
4. 已移除的 Flet UI
Python Flet UI 已从项目中移除(2026-04-22),相关文件:
src/pyclaw/ui/ — 已删除 flet_app.py — 已删除 main.py — 已删除 tests/pyclaw/ui/ — 已删除 [tool.flet] 配置 — 已删除
5. 关键文件索引
| 文件 | 职责 |
apps/web/app/layout.tsx | Web 应用入口 |
apps/web/components/sidebar.tsx | 侧边导航栏 |
apps/desktop/src-tauri/tauri.conf.json | Tauri 配置 |
apps/mobile/app/_layout.tsx | 移动端布局 |
packages/shared/src/api/ | Gateway API 客户端 |
6. 待办事项
P0 高优先级
- [ ] 移动端原生能力集成(推送、相机)
- [ ] 桌面端系统托盘实现
P1 中优先级
P2 低优先级