feat: add svelte web workspace shell

This commit is contained in:
2026-07-18 16:40:09 +08:00
parent 833d9f094f
commit a758996799
26 changed files with 3090 additions and 7 deletions

View File

@@ -4,9 +4,9 @@
**Goal:** 构建一个以项目为中心的私有部署工作台 MVP包含项目、Inbox、任务、Markdown 笔记资料、AI 会话、全文搜索、任务分发和 Tauri 桌面壳。
**Architecture:** 使用前后端分离 monorepo。`backend` 提供 Go Gin + Gorm + PostgreSQL API`apps/web` 提供响应式 React Web 客户端,`apps/desktop` 用 Tauri 包装 Web 客户端并提供桌面能力。先实现清晰模块边界,再逐步接入 AI、搜索和桌面特性。
**Architecture:** 使用前后端分离 monorepo。`backend` 提供 Go Gin + Gorm + PostgreSQL API`apps/web` 提供响应式 Svelte Web 客户端,`apps/desktop` 用 Tauri 包装 Web 客户端并提供桌面能力。先实现清晰模块边界,再逐步接入 AI、搜索和桌面特性。
**Tech Stack:** Go 1.22+, Gin, Gorm, PostgreSQL 16+, React, TypeScript, Vite, TanStack Query, Tauri 2, Vitest, Playwright, Docker Compose.
**Tech Stack:** Go 1.22+, Gin, Gorm, PostgreSQL 16+, Svelte, TypeScript, Vite, Tauri 2, Vitest, Testing Library for Svelte, Playwright, Docker Compose.
## Global Constraints
@@ -18,6 +18,9 @@
- AI 不得自动创建正式对象Inbox 分析结果必须由用户确认。
- 任务分发只面向系统内用户,接收者只能看到任务和显式共享的关联对象。
- 全局搜索使用 PostgreSQL 关键词和全文搜索,语义搜索不进入 MVP。
- 前端只使用 Svelte不使用 React。
- 登录页必须允许用户填写服务器 IP 或域名,并将其保存为 API base URL。
- PostgreSQL 集成验证使用 `postgres://postgres:Weidong2023~!@8.137.107.29:19432/agent_dev?sslmode=disable`
- 前端桌面优先,同时保持移动浏览器可用。
- 每个任务结束时运行该任务列出的验证命令并提交。
@@ -540,8 +543,9 @@ git commit -m "feat: add core data model"
- Produces: `api.getProjectDashboard(projectID: number): Promise<ProjectDashboardSummary>`
- Produces: `openTab(existing: WorkspaceTab[], next: WorkspaceTab): WorkspaceTab[]`
- [ ] Scaffold Vite React TypeScript app.
- [ ] Install TanStack Query, lucide-react, Vitest, Testing Library, jsdom.
- [ ] Scaffold Vite Svelte TypeScript app.
- [ ] Install Svelte, Vitest, Testing Library for Svelte, jest-dom, jsdom.
- [ ] Implement server address input on the login shell and persist it as API base URL.
- [ ] Test dashboard renders pending inbox, current tasks, notes, and AI sessions.
- [ ] Implement API client.
- [ ] Implement browser-style tab state helper.

View File

@@ -29,7 +29,8 @@
- 跨项目关键词搜索和全文搜索。
- 向系统内用户分发任务。
- 显式共享任务关联对象。
- 响应式 Web 前端,并由 Tauri 包装为桌面客户端。
- 响应式 Svelte Web 前端,并由 Tauri 包装为桌面客户端。
- 客户端登录时需要填写服务器 IP 或域名,作为 API 服务地址。
- Tauri 桌面能力:登录持久化、文件拖拽上传、系统通知、全局快捷键快速收集。
- Go Gin + Gorm 后端,数据库使用 PostgreSQL。
- 服务端本地文件存储。
@@ -201,7 +202,7 @@ MVP 中的 AI session 是普通项目聊天,不是自主 Agent 运行。模型
## 前端与 Tauri 设计
前端是响应式 Web 应用桌面优先同时保证移动浏览器可用。Tauri 包装同一套前端作为桌面客户端。
前端是响应式 Svelte Web 应用桌面优先同时保证移动浏览器可用。Tauri 包装同一套前端作为桌面客户端。登录页必须允许用户填写服务器 IP 或域名,并将其作为后续 API 请求的服务器地址。
Tauri MVP 能力:
- 登录状态持久化。
@@ -224,6 +225,7 @@ MVP 使用保守共享模型:
后端:
- AI key 选择、inbox 处理、任务共享可见性、标签项目隔离、文件元数据处理的单元测试。
- 项目搜索、任务分发、inbox 转对象的集成测试。
- 需要真实 PostgreSQL 时,使用测试服务器 `postgres://postgres:Weidong2023~!@8.137.107.29:19432/agent_dev?sslmode=disable`
前端:
- 项目 Dashboard、inbox 建议确认、AI session 列表、任务列表、快速收集表单的组件测试。