feat: add svelte web workspace shell
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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 列表、任务列表、快速收集表单的组件测试。
|
||||
|
||||
Reference in New Issue
Block a user