Files
st/docs/重构进度管理.md
2026-02-11 23:44:09 +08:00

2597 lines
72 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 云酒馆项目重构进度管理
> **项目目标**:将 web-app 从 Node.js 后端改造为纯前端,所有接口由 Go 后端提供
> **开始日期**2026-02-10
> **预计完成**40-58 天
> **当前状态**:阶段三进行中 - 角色卡管理模块已完成(含导入导出功能)
---
## 📊 总体进度
| 阶段 | 进度 | 状态 | 开始日期 | 完成日期 |
|------|------|------|----------|----------|
| 阶段一:数据库设计 | 100% | 🟢 已完成 | 2026-02-10 | 2026-02-10 |
| 阶段二Go后端API开发 | 65% | 🔵 进行中 | 2026-02-10 | - |
| 阶段三Vue3前台开发 | 70% | 🔵 进行中 | 2026-02-10 | - |
| 阶段四:前端改造(旧版) | 0% | ⚪ 暂停 | - | - |
| 阶段五:数据迁移 | 0% | ⚪ 未开始 | - | - |
| 阶段六:测试与优化 | 0% | ⚪ 未开始 | - | - |
| 阶段七:部署上线 | 0% | ⚪ 未开始 | - | - |
**图例**
- ⚪ 未开始
- 🟡 待开始(已规划)
- 🔵 进行中
- 🟢 已完成
- 🔴 受阻
---
## 🎯 阶段一:数据库设计(预计 3-5 天)
### 1.1 环境准备
- [ ] **T1.1.1** 安装 PostgreSQL 14+
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 备注:
- [ ] **T1.1.2** 安装 pgvector 扩展
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T1.1.1
- 状态:⚪ 未开始
- 备注:
- [ ] **T1.1.3** 配置 PostgreSQL 连接
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T1.1.1
- 状态:⚪ 未开始
- 备注:修改 `server/config.yaml`
- [ ] **T1.1.4** 安装 Redis 7+(可选)
- 负责人:
- 优先级P2推荐
- 预计时间0.5天
- 状态:⚪ 未开始
- 备注:
### 1.2 数据表设计与创建
- [ ] **T1.2.1** 创建前台用户表app_users
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T1.1.2
- 状态:⚪ 未开始
- SQL 文件:`server/initialize/sql/app_users.sql`
- 验证方式:查询表结构
- [ ] **T1.2.2** 创建用户会话表app_user_sessions
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T1.2.1
- 状态:⚪ 未开始
- [ ] **T1.2.3** 创建 AI 角色表ai_characters
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T1.2.1
- 状态:⚪ 未开始
- [ ] **T1.2.4** 创建对话表ai_chats
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T1.2.3
- 状态:⚪ 未开始
- [ ] **T1.2.5** 创建消息表ai_messages
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T1.2.4
- 状态:⚪ 未开始
- [ ] **T1.2.6** 创建消息变体表ai_message_swipes
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 依赖T1.2.5
- 状态:⚪ 未开始
- [ ] **T1.2.7** 创建群聊成员表ai_chat_members
- 负责人:
- 优先级P2推荐
- 预计时间0.5天
- 依赖T1.2.3, T1.2.4
- 状态:⚪ 未开始
- [ ] **T1.2.8** 创建向量记忆表ai_memory_vectors
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 依赖T1.1.2, T1.2.1
- 状态:⚪ 未开始
- 备注:需要 pgvector 扩展
- [ ] **T1.2.9** 创建 AI 提供商配置表ai_providers
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T1.2.1
- 状态:⚪ 未开始
- [ ] **T1.2.10** 创建 AI 模型配置表ai_models
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 依赖T1.2.9
- 状态:⚪ 未开始
- [ ] **T1.2.11** 创建文件表ai_files
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 依赖T1.2.1
- 状态:⚪ 未开始
- [ ] **T1.2.12** 创建预设表ai_presets
- 负责人:
- 优先级P2推荐
- 预计时间0.5天
- 依赖T1.2.1
- 状态:⚪ 未开始
- [ ] **T1.2.13** 创建世界书表ai_world_info
- 负责人:
- 优先级P2推荐
- 预计时间0.5天
- 依赖T1.2.1
- 状态:⚪ 未开始
- [ ] **T1.2.14** 创建使用统计表ai_usage_stats
- 负责人:
- 优先级P3可选
- 预计时间0.5天
- 依赖T1.2.1
- 状态:⚪ 未开始
- [ ] **T1.2.15** 创建用户收藏表app_user_favorite_characters
- 负责人:
- 优先级P2推荐
- 预计时间0.5天
- 依赖T1.2.1, T1.2.3
- 状态:⚪ 未开始
### 1.3 Gorm 模型创建
- [ ] **T1.3.1** 创建 AppUser 模型
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T1.2.1
- 状态:⚪ 未开始
- 文件:`server/model/app/user.go`
- [ ] **T1.3.2** 创建 AppUserSession 模型
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T1.2.2
- 状态:⚪ 未开始
- [ ] **T1.3.3** 创建 Character 模型
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T1.2.3
- 状态:⚪ 未开始
- 文件:`server/model/app/character.go`
- [ ] **T1.3.4** 创建 Chat 模型
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T1.2.4
- 状态:⚪ 未开始
- 文件:`server/model/app/chat.go`
- [ ] **T1.3.5** 创建 Message 模型
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T1.2.5
- 状态:⚪ 未开始
- 文件:`server/model/app/message.go`
- [ ] **T1.3.6** 创建其他辅助模型Provider、File、Preset 等)
- 负责人:
- 优先级P1重要
- 预计时间1天
- 状态:⚪ 未开始
### 1.4 数据库初始化
- [ ] **T1.4.1** 编写数据库自动迁移脚本
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T1.3.*
- 状态:⚪ 未开始
- 文件:`server/initialize/gorm_app.go`
- [ ] **T1.4.2** 测试数据库表创建
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T1.4.1
- 状态:⚪ 未开始
- 验证:所有表成功创建,外键关系正确
---
## 🎯 阶段二Go 后端 API 开发(预计 15-20 天)
### 2.1 基础设施搭建
- [x] **T2.1.1** 安装 Go 依赖包
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 命令:
```bash
go get github.com/sashabaranov/go-openai@latest
go get github.com/gorilla/websocket@latest
go get github.com/pgvector/pgvector-go@latest
go get github.com/pkoukk/tiktoken-go@latest
```
- [x] **T2.1.2** 创建项目目录结构
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 目录:`api/v1/app/`, `service/app/`, `router/app/`, `pkg/`
- [x] **T2.1.3** 配置文件扩展
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 文件:`server/config.yaml`
- 内容AI API Keys、向量数据库配置等
### 2.2 前台用户认证模块
- [x] **T2.2.1** 实现前台用户 JWT 中间件AppJWTAuth
- 负责人AI助手
- 优先级P0必须
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:
- `server/middleware/app_jwt.go`(中间件)
- `server/utils/app_jwt.go`JWT工具函数
- [x] **T2.2.2** 实现用户注册 API
- 负责人AI助手
- 优先级P0必须
- 预计时间1天
- 依赖T2.2.1, T1.3.1
- 状态:🟢 已完成
- 完成日期2026-02-10
- 接口:`POST /app/auth/register`
- 文件:
- `server/api/v1/app/auth.go`
- `server/service/app/auth.go`
- `server/model/app/request/auth.go`
- [x] **T2.2.3** 实现用户登录 API
- 负责人AI助手
- 优先级P0必须
- 预计时间1天
- 依赖T2.2.1
- 状态:🟢 已完成
- 完成日期2026-02-10
- 接口:`POST /app/auth/login`
- [x] **T2.2.4** 实现用户登出 API
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 依赖T2.2.1
- 状态:🟢 已完成
- 完成日期2026-02-10
- 接口:`POST /app/auth/logout`
- [x] **T2.2.5** 实现 Token 刷新 API
- 负责人AI助手
- 优先级P1重要
- 预计时间1天
- 依赖T2.2.1
- 状态:🟢 已完成
- 完成日期2026-02-10
- 接口:`POST /app/auth/refresh`
- [x] **T2.2.6** 实现获取用户信息 API
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 依赖T2.2.1
- 状态:🟢 已完成
- 完成日期2026-02-10
- 接口:`GET /app/auth/userinfo`
- [x] **T2.2.7** 实现用户信息更新 API
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 接口:`PUT /app/user/profile`
- [x] **T2.2.8** 实现密码修改 API
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 接口:`POST /app/user/change-password`
### 2.3 AI 服务集成
- [ ] **T2.3.1** 封装 OpenAI SDK
- 负责人:
- 优先级P0必须
- 预计时间2天
- 状态:⚪ 未开始
- 文件:`server/pkg/ai/openai.go`
- 功能:对话补全、流式输出、向量嵌入
- [ ] **T2.3.2** 封装 Anthropic SDKClaude
- 负责人:
- 优先级P1重要
- 预计时间2天
- 状态:⚪ 未开始
- 文件:`server/pkg/ai/anthropic.go`
- [ ] **T2.3.3** 封装 Google AI SDKGemini
- 负责人:
- 优先级P2推荐
- 预计时间2天
- 状态:⚪ 未开始
- 文件:`server/pkg/ai/google.go`
- [ ] **T2.3.4** 实现 AI 服务统一接口
- 负责人:
- 优先级P0必须
- 预计时间1天
- 依赖T2.3.1
- 状态:⚪ 未开始
- 文件:`server/service/app/ai_service.go`
- [ ] **T2.3.5** 实现向量嵌入服务
- 负责人:
- 优先级P1重要
- 预计时间1天
- 依赖T2.3.1
- 状态:⚪ 未开始
- 文件:`server/service/app/embedding.go`
### 2.4 AI 提供商配置管理
- [ ] **T2.4.1** 实现创建提供商配置 API
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`POST /app/provider/create`
- [ ] **T2.4.2** 实现获取提供商列表 API
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`GET /app/provider/list`
- [ ] **T2.4.3** 实现更新提供商配置 API
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`PUT /app/provider/:id`
- [ ] **T2.4.4** 实现删除提供商配置 API
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`DELETE /app/provider/:id`
- [ ] **T2.4.5** 实现测试提供商连接 API
- 负责人:
- 优先级P1重要
- 预计时间1天
- 依赖T2.3.1
- 状态:⚪ 未开始
- 接口:`POST /app/provider/test`
- [ ] **T2.4.6** 实现获取可用模型列表 API
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`GET /app/provider/:id/models`
### 2.5 AI 角色管理
- [ ] **T2.5.1** 实现创建角色 API
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 接口:`POST /app/character/create`
- 文件:
- `server/api/v1/app/character.go`
- `server/service/app/character.go`
- [ ] **T2.5.2** 实现获取角色列表 API
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 接口:`GET /app/character/list`
- 功能:支持分页、搜索、筛选
- [ ] **T2.5.3** 实现获取角色详情 API
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`GET /app/character/:id`
- [ ] **T2.5.4** 实现更新角色 API
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 接口:`PUT /app/character/:id`
- [ ] **T2.5.5** 实现删除角色 API
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`DELETE /app/character/:id`
- [ ] **T2.5.6** 实现导入角色 APICharacter Card
- 负责人:
- 优先级P0必须
- 预计时间2天
- 状态:⚪ 未开始
- 接口:`POST /app/character/import`
- 功能:解析 PNG、JSON 格式的角色卡片
- [ ] **T2.5.7** 实现导出角色 API
- 负责人:
- 优先级P1重要
- 预计时间1天
- 状态:⚪ 未开始
- 接口:`GET /app/character/export/:id`
- [ ] **T2.5.8** 实现角色收藏/取消收藏 API
- 负责人:
- 优先级P2推荐
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`POST /app/character/:id/favorite`
### 2.6 对话管理
- [ ] **T2.6.1** 实现创建对话 API
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 接口:`POST /app/chat/create`
- 文件:
- `server/api/v1/app/chat.go`
- `server/service/app/chat.go`
- [ ] **T2.6.2** 实现获取对话列表 API
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 接口:`GET /app/chat/list`
- 功能:支持分页、筛选、排序
- [ ] **T2.6.3** 实现获取对话详情 API
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`GET /app/chat/:id`
- [ ] **T2.6.4** 实现更新对话 API
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`PUT /app/chat/:id`
- [ ] **T2.6.5** 实现删除对话 API
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`DELETE /app/chat/:id`
- [ ] **T2.6.6** 实现获取对话消息历史 API
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 接口:`GET /app/chat/:id/messages`
- 功能:支持分页、倒序加载
### 2.7 消息管理与 AI 对话
- [ ] **T2.7.1** 实现发送消息 API调用 AI
- 负责人:
- 优先级P0必须
- 预计时间3天
- 依赖T2.3.4
- 状态:⚪ 未开始
- 接口:`POST /app/chat/:id/send`
- 功能:
- 调用 AI API
- 保存用户消息和 AI 回复
- 支持流式输出
- Token 计数
- [ ] **T2.7.2** 实现流式消息推送SSE
- 负责人:
- 优先级P0必须
- 预计时间2天
- 依赖T2.7.1
- 状态:⚪ 未开始
- 接口:`GET /app/chat/:id/stream`
- [ ] **T2.7.3** 实现重新生成消息 API
- 负责人:
- 优先级P1重要
- 预计时间1天
- 依赖T2.7.1
- 状态:⚪ 未开始
- 接口:`POST /app/chat/:id/regenerate/:messageId`
- [ ] **T2.7.4** 实现编辑消息 API
- 负责人:
- 优先级P1重要
- 预计时间1天
- 状态:⚪ 未开始
- 接口:`PUT /app/chat/:id/message/:messageId`
- [ ] **T2.7.5** 实现删除消息 API
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`DELETE /app/chat/:id/message/:messageId`
- [ ] **T2.7.6** 实现消息变体Swipe功能
- 负责人:
- 优先级P1重要
- 预计时间2天
- 状态:⚪ 未开始
- 接口:
- `POST /app/chat/:id/message/:messageId/swipe`(创建变体)
- `GET /app/chat/:id/message/:messageId/swipes`(获取所有变体)
- `PUT /app/chat/:id/message/:messageId/swipe/:swipeId`(切换变体)
### 2.8 向量记忆管理
- [ ] **T2.8.1** 实现创建记忆 API
- 负责人:
- 优先级P1重要
- 预计时间2天
- 依赖T2.3.5
- 状态:⚪ 未开始
- 接口:`POST /app/memory/create`
- 功能:自动生成向量嵌入
- [ ] **T2.8.2** 实现搜索相似记忆 API
- 负责人:
- 优先级P1重要
- 预计时间2天
- 依赖T2.8.1
- 状态:⚪ 未开始
- 接口:`POST /app/memory/search`
- 功能:向量相似度搜索
- [ ] **T2.8.3** 实现获取记忆列表 API
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`GET /app/memory/list`
- [ ] **T2.8.4** 实现删除记忆 API
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`DELETE /app/memory/:id`
- [ ] **T2.8.5** 对话时自动检索相关记忆
- 负责人:
- 优先级P1重要
- 预计时间1天
- 依赖T2.7.1, T2.8.2
- 状态:⚪ 未开始
- 集成到发送消息流程
### 2.9 文件管理
- [ ] **T2.9.1** 实现文件上传 API
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 接口:`POST /app/file/upload`
- 功能:支持本地存储和对象存储
- [ ] **T2.9.2** 实现文件列表 API
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`GET /app/file/list`
- [ ] **T2.9.3** 实现文件删除 API
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- 接口:`DELETE /app/file/:id`
- [ ] **T2.9.4** 实现头像上传专用接口
- 负责人:
- 优先级P1重要
- 预计时间1天
- 状态:⚪ 未开始
- 接口:`POST /app/file/upload/avatar`
### 2.10 WebSocket 实时通信
- [ ] **T2.10.1** 实现 WebSocket Hub
- 负责人:
- 优先级P1重要
- 预计时间2天
- 状态:⚪ 未开始
- 文件:`server/pkg/websocket/hub.go`
- [ ] **T2.10.2** 实现 WebSocket 连接认证
- 负责人:
- 优先级P1重要
- 预计时间1天
- 依赖T2.10.1, T2.2.1
- 状态:⚪ 未开始
- [ ] **T2.10.3** 实现消息推送功能
- 负责人:
- 优先级P1重要
- 预计时间1天
- 依赖T2.10.1
- 状态:⚪ 未开始
- 功能AI 回复实时推送
- [ ] **T2.10.4** 实现心跳检测和断线重连
- 负责人:
- 优先级P1重要
- 预计时间1天
- 依赖T2.10.1
- 状态:⚪ 未开始
### 2.11 路由注册
- [ ] **T2.11.1** 注册认证路由
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 文件:`server/router/app/auth.go`
- [ ] **T2.11.2** 注册角色路由
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 文件:`server/router/app/character.go`
- [ ] **T2.11.3** 注册对话路由
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 文件:`server/router/app/chat.go`
- [ ] **T2.11.4** 注册其他路由Provider、File、Memory 等)
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T2.11.5** 集成到主路由
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T2.11.1-4
- 状态:⚪ 未开始
- 文件:`server/initialize/router.go`
### 2.12 Swagger 文档
- [ ] **T2.12.1** 为所有 API 添加 Swagger 注释
- 负责人:
- 优先级P2推荐
- 预计时间2天
- 状态:⚪ 未开始
- [ ] **T2.12.2** 生成 Swagger 文档
- 负责人:
- 优先级P2推荐
- 预计时间0.5天
- 依赖T2.12.1
- 状态:⚪ 未开始
- 命令:`swag init`
### 2.13 世界书管理
- [x] **T2.13.1** 完善 AIWorldInfo 数据模型
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`server/model/app/ai_world_info.go`
- 功能:支持 SillyTavern 完整规范递归激活、Token预算、正则表达式等
- [x] **T2.13.2** 创建世界书请求/响应结构体
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:
- `server/model/app/request/world_info.go`
- `server/model/app/response/world_info.go`
- [x] **T2.13.3** 创建世界书 Service 层
- 负责人AI助手
- 优先级P1重要
- 预计时间2天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`server/service/app/world_info.go`
- 功能:
- CRUD 操作
- 导入导出JSON
- 关键词匹配引擎(支持正则、大小写、整词匹配)
- 递归激活
- 分组过滤
- Token 预算管理
- [x] **T2.13.4** 创建世界书 API 层
- 负责人AI助手
- 优先级P1重要
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`server/api/v1/app/world_info.go`
- 接口:创建、更新、删除、列表、详情、复制、导入导出、匹配
- [x] **T2.13.5** 创建世界书路由
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`server/router/app/world_info.go`
- [x] **T2.13.6** 注册世界书路由
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 在 `server/initialize/router.go` 中注册 `/app/worldbook` 路由组
### 2.14 正则脚本管理
- [x] **T2.14.1** 创建正则脚本数据模型
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`server/model/app/ai_regex_script.go`
- 功能:支持 SillyTavern Regex Scripts 完整规范(查找/替换、深度控制、应用位置等)
- [x] **T2.14.2** 创建正则脚本请求/响应结构体
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:
- `server/model/app/request/regex_script.go`
- `server/model/app/response/regex_script.go`
- [x] **T2.14.3** 创建正则脚本 Service 层
- 负责人AI助手
- 优先级P1重要
- 预计时间2天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`server/service/app/regex_script.go`
- 功能:
- CRUD 操作
- 导入导出JSON
- 测试功能
- 应用功能(批量处理文本)
- 关联角色管理
- 复制功能
- [x] **T2.14.4** 创建正则脚本 API 层
- 负责人AI助手
- 优先级P1重要
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`server/api/v1/app/regex_script.go`
- 接口:创建、更新、删除、列表、详情、复制、导入导出、测试、应用
- [x] **T2.14.5** 创建正则脚本路由
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`server/router/app/regex_script.go`
- [x] **T2.14.6** 注册正则脚本路由
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 在 `server/initialize/router.go` 中注册 `/app/regex` 路由组
- [x] **T2.14.7** 实现角色卡导入时自动导入正则脚本
- 负责人AI助手
- 优先级P1重要
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 功能:
- 导入角色卡时自动解析 Extensions 中的 regex_scripts 数据
- 将正则脚本转换并保存到 `ai_regex_scripts` 表
- 自动关联脚本到角色
- 导出角色卡时自动包含关联的正则脚本数据
- 完全兼容 SillyTavern CharacterCard V2 规范
### 2.15 扩展管理
- [x] **T2.15.1** 创建扩展数据模型
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`server/model/app/ai_extension.go`
- 功能:支持 SillyTavern Extension 完整规范manifest.json、UI/Server/Hybrid 类型、依赖管理等)
- [x] **T2.15.2** 创建扩展请求/响应结构体
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:
- `server/model/app/request/extension.go`
- `server/model/app/response/extension.go`
- [x] **T2.15.3** 创建扩展 Service 层
- 负责人AI助手
- 优先级P1重要
- 预计时间2天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`server/service/app/extension.go`
- 功能:
- CRUD 操作
- 导入导出manifest.json
- 启用/禁用管理
- 依赖检查和冲突检测
- 配置管理
- 统计信息
- [x] **T2.15.4** 创建扩展 API 层
- 负责人AI助手
- 优先级P1重要
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`server/api/v1/app/extension.go`
- 接口:创建、更新、删除、列表、详情、启用/禁用、配置、导入导出、统计
- [x] **T2.15.5** 创建扩展路由
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`server/router/app/extension.go`
- [x] **T2.15.6** 注册扩展路由
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 在 `server/initialize/router.go` 中注册 `/app/extension` 路由组
- [x] **T2.15.7** 修复扩展 API 路径参数解析错误
- 负责人AI助手
- 优先级P0紧急
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 问题:点击扩展详情和配置按钮时报错 `扩展不存在`SQL 查询显示 `id = 0`
- 原因:使用 `c.GetUint("id")` 无法获取 URL 路径参数
- 解决方案:改用 `c.Param("id")` 获取路径参数并转换为 uint
- 影响范围:`UpdateExtension`、`DeleteExtension`、`GetExtension`、`ToggleExtension`、`UpdateExtensionSettings`、`GetExtensionSettings`、`GetExtensionManifest`、`ExportExtension`
- 文件:`server/api/v1/app/extension.go`
- [x] **T2.15.8** 重构扩展 UI 为折叠面板式并简化配置存储
- 负责人AI助手
- 优先级P0紧急
- 预计时间2天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 问题:
1. 数据库错误:`ERROR: relation "ai_extension_settings" does not exist`
2. UI 不符合预期:表格式而非折叠面板式
- 解决方案:
1. **简化数据库设计**:取消 `ai_extension_settings` 表,配置直接存储在 `ai_extensions.settings` 字段
2. **重新设计 UI**:采用折叠面板式布局,完全仿照 SillyTavern 原版设计
- 修改文件:
- `server/model/app/ai_extension.go` - 注释 AIExtensionSettings 结构体
- `server/initialize/gorm.go` - 移除表注册
- `server/service/app/extension.go` - 简化配置 CRUD 逻辑
- `web-app-vue/src/views/extension/ExtensionListNew.vue` - 全新折叠面板界面
- `web-app-vue/src/router/index.ts` - 更新路由
- 新特性:
- ✅ 折叠面板布局el-collapse
- ✅ 配置项根据 manifest.json 动态生成
- ✅ 支持多种配置类型text、number、boolean、select、textarea、slider
- ✅ 自动保存配置
- ✅ 扩展详情内联展示
- 文档:`docs/扩展模块修复说明.md`
---
## 🎯 阶段三Vue 3 前台开发(预计 15-20 天)
> **重要决策**:使用 Vue 3 + TypeScript 重构前台,而非改造旧的 jQuery 代码
> **原因**旧代码过于混乱index.html 7978行226+ JS文件维护成本极高
> **优势**:与管理后台技术统一,易于维护,性能更好
### 3.1 Vue 项目初始化
- [x] **T3.1.1** 创建 Vue 3 + TypeScript 项目
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 技术栈Vue 3 + Vite + TypeScript + Element Plus
- 项目目录:`web-app-vue/`
- [x] **T3.1.2** 配置项目基础设施
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 内容:
- Vite 配置(代理、别名、插件)
- TypeScript 配置
- Element Plus 自动导入
- Pinia + Vue Router 配置
- [x] **T3.1.3** 创建项目目录结构
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 目录api/, stores/, types/, utils/, layouts/, views/, composables/
### 3.2 Vue 认证模块开发
- [x] **T3.2.1** 创建 TypeScript 类型定义
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:
- `src/types/user.d.ts`(用户、登录、注册类型)
- `src/types/api.d.ts`API响应类型
- [x] **T3.2.2** 封装 HTTP 请求工具
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`src/utils/request.ts`
- 功能请求拦截、响应拦截、自动添加Token、统一错误处理
- [x] **T3.2.3** 创建认证 API 接口
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`src/api/auth.ts`
- 接口login, register, logout, getUserInfo, refreshToken
- [x] **T3.2.4** 创建认证状态管理Pinia
- 负责人AI助手
- 优先级P0必须
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`src/stores/auth.ts`
- 功能登录、注册、登出、Token管理、用户信息管理
- [x] **T3.2.5** 创建认证布局组件
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`src/layouts/AuthLayout.vue`
- 特性:渐变背景动画、居中布局、响应式设计
- [x] **T3.2.6** 创建默认布局组件
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`src/layouts/DefaultLayout.vue`
- 特性:顶部导航、用户菜单、主内容区
- [x] **T3.2.7** 开发登录页面
- 负责人AI助手
- 优先级P0必须
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`src/views/auth/Login.vue`
- 功能:用户名密码登录、表单验证、回车登录
- [x] **T3.2.8** 开发注册页面
- 负责人AI助手
- 优先级P0必须
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`src/views/auth/Register.vue`
- 功能:用户注册、确认密码、邮箱验证、表单验证
- [x] **T3.2.9** 配置路由和路由守卫
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`src/router/index.ts`
- 功能:路由配置、认证守卫、自动跳转、页面标题
- [x] **T3.2.10** 开发首页
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`src/views/home/Index.vue`
- 功能:欢迎信息、用户统计、快捷入口
### 3.3 Vue 角色管理模块
- [x] **T3.3.1** 完善 AICharacter 数据模型
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 添加字段totalChats, totalLikes, isPublic, creatorName 等
- [x] **T3.3.2** 创建角色卡请求/响应结构体
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`server/model/app/request/character.go`, `response/character.go`
- [x] **T3.3.3** 创建角色卡 Service 层
- 负责人AI助手
- 优先级P0必须
- 预计时间2天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`server/service/app/character.go`
- 功能CRUD、收藏、点赞、导入导出
- [x] **T3.3.4** 创建角色卡 API 层
- 负责人AI助手
- 优先级P0必须
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`server/api/v1/app/character.go`
- 包含公开接口和需鉴权接口
- [x] **T3.3.5** 创建角色卡路由
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`server/router/app/character.go`
- [x] **T3.3.6** 创建 Vue 角色卡类型定义
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`web-app-vue/src/types/character.d.ts`
- [x] **T3.3.7** 创建 Vue 角色卡 API 接口
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`web-app-vue/src/api/character.ts`
- [x] **T3.3.8** 创建 Vue 角色卡状态管理
- 负责人AI助手
- 优先级P0必须
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`web-app-vue/src/stores/character.ts`
- [x] **T3.3.9** 开发首页角色列表(瀑布流)
- 负责人AI助手
- 优先级P0必须
- 预计时间2天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`web-app-vue/src/views/home/CharacterList.vue`
- 特性:瀑布流布局、搜索、排序、收藏、点赞
- [x] **T3.3.10** 开发角色详情页面
- 负责人AI助手
- 优先级P0必须
- 预计时间1.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`web-app-vue/src/views/character/Detail.vue`
- 功能:详情展示、编辑、删除、导出
- [x] **T3.3.11** 开发"我的角色卡"页面
- 负责人AI助手
- 优先级P0必须
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`web-app-vue/src/views/character/MyCharacters.vue`
- [x] **T3.3.12** 开发角色卡编辑页面
- 负责人AI助手
- 优先级P0必须
- 预计时间2天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`web-app-vue/src/views/character/Edit.vue`
- 功能:创建、编辑、表单验证
- [x] **T3.3.13** 更新路由配置
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 添加角色卡相关路由
- [x] **T3.3.14** 更新导航布局
- 负责人AI助手
- 优先级P0必须
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 添加主导航菜单、登录/注册按钮
- [x] **T3.3.15** 实现角色卡导入导出功能
- 负责人AI助手
- 优先级P0必须
- 预计时间2天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 功能:
- 支持 PNG 和 JSON 格式导入
- 支持导出为 PNG含嵌入数据和 JSON
- 兼容 SillyTavern CharacterCard V2 规范
- 自动从 PNG 提取 tEXt chunk
- [x] **T3.3.16** 优化 Token 有效期
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 修改Token 有效期从配置文件控制改为固定 7 天
- [x] **T3.3.17** 修复头像显示问题
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 优化:无头像时显示首字母占位符,不再请求不存在的文件
- [x] **T3.3.18** 实现角色卡导入时自动导入世界书
- 负责人AI助手
- 优先级P1重要
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 功能:
- 导入角色卡时自动解析 CharacterBook 数据
- 将世界书条目转换并保存到 `ai_world_info` 表
- 自动关联世界书到角色
- 导出角色卡时自动包含关联的世界书数据
- 完全兼容 SillyTavern CharacterCard V2 规范
- 使用数据库事务确保原子性(世界书导入失败时回滚角色卡)
### 3.4 Vue 对话功能模块(待开发)
- [ ] **T3.4.1** 创建对话类型定义
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 文件:`src/types/chat.d.ts`
- [ ] **T3.4.2** 创建对话 API 接口
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 文件:`src/api/chat.ts`
- [ ] **T3.4.3** 创建对话状态管理
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 文件:`src/stores/chat.ts`
- [ ] **T3.4.4** 封装 WebSocket 工具
- 负责人:
- 优先级P0必须
- 预计时间2天
- 状态:⚪ 未开始
- 文件:`src/utils/websocket.ts`
- [ ] **T3.4.5** 开发对话主界面
- 负责人:
- 优先级P0必须
- 预计时间3天
- 状态:⚪ 未开始
- 文件:`src/views/chat/Index.vue`
- [ ] **T3.4.6** 开发消息组件
- 负责人:
- 优先级P0必须
- 预计时间2天
- 状态:⚪ 未开始
- 文件:`src/components/chat/ChatMessage.vue`
- [ ] **T3.4.7** 开发消息输入组件
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 文件:`src/components/chat/ChatInput.vue`
- [ ] **T3.4.8** 实现 Swipe 功能
- 负责人:
- 优先级P1重要
- 预计时间1天
- 状态:⚪ 未开始
### 3.5 Vue 设置和其他页面(待开发)
- [ ] **T3.5.1** 开发设置页面
- 负责人:
- 优先级P1重要
- 预计时间2天
- 状态:⚪ 未开始
- 文件:`src/views/settings/Index.vue`
- [ ] **T3.5.2** 开发用户中心页面
- 负责人:
- 优先级P1重要
- 预计时间1天
- 状态:⚪ 未开始
- 文件:`src/views/user/Profile.vue`
### 3.6 Vue 世界书模块
- [x] **T3.6.1** 创建世界书类型定义
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`web-app-vue/src/types/worldInfo.d.ts`
- [x] **T3.6.2** 创建世界书 API 接口
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`web-app-vue/src/api/worldInfo.ts`
- [x] **T3.6.3** 创建世界书状态管理
- 负责人AI助手
- 优先级P1重要
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`web-app-vue/src/stores/worldInfo.ts`
- [x] **T3.6.4** 开发世界书列表页面
- 负责人AI助手
- 优先级P1重要
- 预计时间1.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`web-app-vue/src/views/worldbook/WorldBookList.vue`
- 功能:列表展示、搜索、筛选、导入导出、复制、删除
- [x] **T3.6.5** 开发世界书编辑页面
- 负责人AI助手
- 优先级P1重要
- 预计时间2天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`web-app-vue/src/views/worldbook/WorldBookEdit.vue`
- 功能:创建、编辑世界书,管理条目列表
- [x] **T3.6.6** 开发世界书条目编辑表单组件
- 负责人AI助手
- 优先级P1重要
- 预计时间2天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 文件:`web-app-vue/src/views/worldbook/WorldInfoEntryForm.vue`
- 功能:
- 完整的条目编辑表单
- 支持所有 SillyTavern 特性(递归、概率、正则、分组等)
- 表单验证和提示
- [x] **T3.6.7** 更新路由配置
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 添加世界书相关路由(列表、创建、编辑)
- [x] **T3.6.8** 更新导航菜单
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-10
- 在主导航菜单中添加"世界书"入口
- [x] **T3.6.9** 修复世界书 API 路径参数解析错误
- 负责人AI助手
- 优先级P0紧急
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 问题:编辑世界书时报错 `record not found`SQL 查询显示 `id = 0`
- 原因:使用 `c.GetUint("id")` 无法获取 URL 路径参数
- 解决方案:改用 `c.Param("id")` 获取路径参数并转换为 uint
- 影响范围:`UpdateWorldBook`、`DeleteWorldBook`、`GetWorldBook`、`ExportWorldBook`、`DuplicateWorldBook`、`GetCharacterWorldBooks`
### 3.7 Vue 扩展模块
- [x] **T3.7.1** 创建扩展类型定义
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`web-app-vue/src/types/extension.d.ts`
- [x] **T3.7.2** 创建扩展 API 接口
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`web-app-vue/src/api/extension.ts`
- [x] **T3.7.3** 创建扩展状态管理
- 负责人AI助手
- 优先级P1重要
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`web-app-vue/src/stores/extension.ts`
- [x] **T3.7.4** 开发扩展列表页面
- 负责人AI助手
- 优先级P1重要
- 预计时间1.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`web-app-vue/src/views/extension/ExtensionList.vue`
- 功能:列表展示、搜索、筛选、安装、卸载、启用/禁用、导入导出
- [x] **T3.7.5** 开发扩展配置页面
- 负责人AI助手
- 优先级P1重要
- 预计时间2天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`web-app-vue/src/views/extension/ExtensionSettings.vue`
- 功能:
- 完整的扩展配置管理
- 支持动态表单生成
- 依赖和冲突显示
- 统计信息展示
- [x] **T3.7.6** 更新路由配置
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 添加扩展相关路由(列表、配置)
- [x] **T3.7.7** 更新导航菜单
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 在主导航菜单中添加"扩展管理"入口
### 3.8 Vue 正则脚本模块
- [x] **T3.8.1** 创建正则脚本类型定义
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`web-app-vue/src/types/regexScript.d.ts`
- [x] **T3.8.2** 创建正则脚本 API 接口
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`web-app-vue/src/api/regexScript.ts`
- [x] **T3.8.3** 创建正则脚本状态管理
- 负责人AI助手
- 优先级P1重要
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`web-app-vue/src/stores/regexScript.ts`
- [x] **T3.8.4** 开发正则脚本列表页面
- 负责人AI助手
- 优先级P1重要
- 预计时间1.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`web-app-vue/src/views/regex/RegexScriptList.vue`
- 功能:列表展示、搜索、筛选、导入导出、复制、删除、启用/禁用切换
- [x] **T3.8.5** 开发正则脚本编辑页面
- 负责人AI助手
- 优先级P1重要
- 预计时间2天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`web-app-vue/src/views/regex/RegexScriptEdit.vue`
- 功能:
- 完整的脚本编辑表单
- 实时测试功能(显示匹配次数、匹配内容、处理结果)
- 支持所有 SillyTavern 特性(深度控制、应用位置、替换选项等)
- 表单验证和提示
- 正则表达式在线工具链接
- [x] **T3.8.6** 更新路由配置
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 添加正则脚本相关路由(列表、创建、编辑)
- [x] **T3.8.7** 更新导航菜单
- 负责人AI助手
- 优先级P1重要
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 在主导航菜单中添加"正则脚本"入口
### 3.9 扩展运行时与抽屉组件
- [x] **T3.9.1** 创建扩展运行时管理器
- 负责人AI助手
- 优先级P0紧急
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`web-app-vue/src/utils/extensionRuntime.ts`
- 功能:
- 动态加载扩展的 JavaScript/CSS 文件
- 提供 SillyTavern 兼容的 API (window.SillyTavern)
- 管理扩展生命周期load, unload, enable, disable
- 扩展事件系统
- 扩展设置管理
- [x] **T3.9.2** 创建扩展抽屉组件
- 负责人AI助手
- 优先级P0紧急
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 文件:`web-app-vue/src/components/ExtensionDrawer.vue`
- 功能:
- 可在任何页面调用的抽屉式扩展面板
- 折叠面板式扩展列表
- 实时显示扩展运行状态
- 内联配置编辑和保存
- 扩展启用/禁用/重载/卸载
- 扩展安装(文件上传/URL
- 特点:
- 不跳转页面,直接在当前页面打开抽屉
- 可在对话页面、角色页面等任何地方使用
- 自动加载已启用的扩展
- 配置修改后实时通知扩展
- [x] **T3.9.3** 优化和修复扩展功能
- 负责人AI助手
- 优先级P0紧急
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 修复和实现内容:
1. 移除独立的扩展管理页面,改为抽屉按钮
2. 修复启用/禁用扩展的验证错误(后端字段类型 + 前端传参)
3. 实现智能 URL 安装(自动识别 Git 仓库 URL 或 Manifest URL完全兼容 SillyTavern
4. 支持 Git 分支选择(可指定分支或标签)
5. 记录安装来源sourceUrl, branch, autoUpdate用于后续更新
6. 增强 SillyTavern API 兼容性(添加更多 API 方法)
7. 支持内联脚本inline_script
- 修改文件:
- `server/model/app/ai_extension.go` - 添加更新相关字段sourceUrl, branch, autoUpdate 等)
- `server/model/app/request/extension.go` - 修复 IsEnabled + 添加智能安装请求 + 添加更新字段
- `server/api/v1/app/extension.go` - 智能安装 API自动识别 URL 类型)
- `server/service/app/extension.go` - 实现智能安装逻辑isGitURL 判断)+ 记录安装来源
- `server/router/app/extension.go` - 注册智能安装路由
- `web-app-vue/src/api/extension.ts` - 支持分支参数
- `web-app-vue/src/stores/extension.ts` - 支持分支参数
- `web-app-vue/src/components/ExtensionDrawer.vue` - 添加分支输入框 + UI 优化
- `web-app-vue/src/layouts/DefaultLayout.vue` - 移除扩展管理菜单项
- `web-app-vue/src/utils/extensionRuntime.ts` - 增强 API 兼容性
- 支持的 URL 格式:
- ✅ `https://github.com/user/extension.git`
- ✅ `https://gitlab.com/user/extension`
- ✅ `https://gitee.com/user/extension`
- ✅ `https://example.com/manifest.json`
- [x] **T3.9.4** 实现扩展运行时配置 UI 注入(兼容原版 SillyTavern
- 负责人AI助手
- 优先级P0紧急
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 实现内容:
1. 在 ExtensionDrawer 中为每个扩展添加自定义配置容器(`extension-settings-${name}`
2. 在 extensionRuntime 中提供 `extension_settings` 代理对象(兼容原版 API
3. 提供 `getExtensionSettingsContainer()` 方法让扩展获取配置容器
4. 自动加载/保存扩展设置到 localStorage
5. 扩展可以通过 `SillyTavern.getContext().extension_settings[名称]` 访问配置
6. 扩展可以向配置容器注入自己的 HTML UI
- 修改文件:
- `web-app-vue/src/components/ExtensionDrawer.vue` - 添加自定义配置容器
- `web-app-vue/src/utils/extensionRuntime.ts` - 实现 extension_settings 和配置容器 API
- 兼容性:完全兼容原版 SillyTavern 扩展配置系统
- [x] **T3.9.5** 实现扩展更新功能git pull 或重新下载)
- 负责人AI助手
- 优先级P1重要
- 预计时间1天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 实现内容:
1. 后端 API`POST /app/extension/:id/update`
2. 根据 `installSource` 自动选择更新方式
3. Git 来源:重新克隆仓库(简单可靠)
4. URL 来源:重新下载 manifest.json
5. 前端 UI每个扩展显示"更新"按钮(仅当有 sourceUrl 时)
6. 更新后自动重新加载扩展(如果正在运行)
- 修改文件:
- `server/model/app/request/extension.go` - 添加 UpdateExtensionRequest
- `server/service/app/extension.go` - 实现 UpdateExtension 逻辑
- `server/api/v1/app/extension.go` - 添加 UpdateExtensionAPI
- `server/router/app/extension.go` - 注册更新路由
- `web-app-vue/src/api/extension.ts` - 添加 updateExtension API
- `web-app-vue/src/stores/extension.ts` - 添加 upgradeExtension 方法
- `web-app-vue/src/components/ExtensionDrawer.vue` - 添加更新按钮和逻辑
- `web-app-vue/src/types/extension.d.ts` - 添加更新相关字段
- [x] **T3.9.6** 实现批量更新功能
- 负责人AI助手
- 优先级P2一般
- 预计时间0.5天
- 状态:🟢 已完成
- 完成日期2026-02-11
- 实现内容:
1. "全部更新"按钮(批量更新所有可更新的扩展)
2. 自动过滤出有 sourceUrl 的扩展
3. 显示更新进度和结果统计
4. 更新后自动刷新扩展列表
- 修改文件:
- `web-app-vue/src/components/ExtensionDrawer.vue` - 添加全部更新按钮和逻辑
---
## 🎯 阶段四:前端改造(旧版 jQuery暂停
> **已决定**:不再改造旧版 web-app直接使用 Vue 3 重构
> **状态**本阶段暂停优先完成阶段三Vue 版本)
### 3.1 web-app 前端改造准备
- [ ] **T3.1.1** 备份原有 web-app 项目
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 备份位置:`web-app-backup/`
- [ ] **T3.1.2** 分析现有前端代码结构
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 输出:前端功能清单
- [ ] **T3.1.3** 规划前端目录结构
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
### 3.2 移除 Node.js 后端
- [ ] **T3.2.1** 删除 server.js 和后端相关文件
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 删除文件:
- `server.js`
- `src/` 目录(所有后端代码)
- `webpack.config.js`(如不需要)
- [ ] **T3.2.2** 保留必要的前端文件
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 保留:`public/` 目录下所有文件
### 3.3 API 客户端封装
- [ ] **T3.3.1** 创建 HTTP 客户端基类
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 文件:`public/scripts/api/client.js`
- 功能:
- 统一的请求/响应处理
- Token 管理
- 错误处理
- [ ] **T3.3.2** 封装认证相关 API
- 负责人:
- 优先级P0必须
- 预计时间1天
- 依赖T3.3.1
- 状态:⚪ 未开始
- 文件:`public/scripts/api/auth.js`
- 接口注册、登录、登出、刷新Token
- [ ] **T3.3.3** 封装角色管理 API
- 负责人:
- 优先级P0必须
- 预计时间1天
- 依赖T3.3.1
- 状态:⚪ 未开始
- 文件:`public/scripts/api/character.js`
- [ ] **T3.3.4** 封装对话管理 API
- 负责人:
- 优先级P0必须
- 预计时间1天
- 依赖T3.3.1
- 状态:⚪ 未开始
- 文件:`public/scripts/api/chat.js`
- [ ] **T3.3.5** 封装消息管理 API
- 负责人:
- 优先级P0必须
- 预计时间1天
- 依赖T3.3.1
- 状态:⚪ 未开始
- 文件:`public/scripts/api/message.js`
- [ ] **T3.3.6** 封装 AI 提供商配置 API
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 依赖T3.3.1
- 状态:⚪ 未开始
- 文件:`public/scripts/api/provider.js`
- [ ] **T3.3.7** 封装文件上传 API
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 依赖T3.3.1
- 状态:⚪ 未开始
- 文件:`public/scripts/api/file.js`
### 3.4 WebSocket 客户端
- [ ] **T3.4.1** 实现 WebSocket 客户端
- 负责人:
- 优先级P1重要
- 预计时间2天
- 状态:⚪ 未开始
- 文件:`public/scripts/utils/websocket.js`
- 功能:
- 连接管理
- 自动重连
- 消息订阅/发布
- [ ] **T3.4.2** 集成 WebSocket 到对话界面
- 负责人:
- 优先级P1重要
- 预计时间1天
- 依赖T3.4.1
- 状态:⚪ 未开始
### 3.5 前端页面适配
- [ ] **T3.5.1** 适配登录/注册页面
- 负责人:
- 优先级P0必须
- 预计时间1天
- 依赖T3.3.2
- 状态:⚪ 未开始
- [ ] **T3.5.2** 适配角色列表页面
- 负责人:
- 优先级P0必须
- 预计时间1天
- 依赖T3.3.3
- 状态:⚪ 未开始
- [ ] **T3.5.3** 适配角色详情/编辑页面
- 负责人:
- 优先级P0必须
- 预计时间1天
- 依赖T3.3.3
- 状态:⚪ 未开始
- [ ] **T3.5.4** 适配对话列表页面
- 负责人:
- 优先级P0必须
- 预计时间1天
- 依赖T3.3.4
- 状态:⚪ 未开始
- [ ] **T3.5.5** 适配对话界面
- 负责人:
- 优先级P0必须
- 预计时间2天
- 依赖T3.3.5, T3.4.2
- 状态:⚪ 未开始
- 功能:
- 消息发送
- 流式显示
- Swipe 功能
- 消息编辑
- [ ] **T3.5.6** 适配设置页面
- 负责人:
- 优先级P1重要
- 预计时间1天
- 依赖T3.3.6
- 状态:⚪ 未开始
- [ ] **T3.5.7** 适配个人中心页面
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
### 3.6 环境配置
- [ ] **T3.6.1** 创建配置文件
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 文件:`public/scripts/config.js`
- 内容API 地址、WebSocket 地址等
- [ ] **T3.6.2** 配置开发环境
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 开发服务器:使用 live-server 或类似工具
- [ ] **T3.6.3** 配置生产环境
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 文件:`web-app/nginx.conf`
### 3.7 web 管理后台扩展
- [ ] **T3.7.1** 创建 AI 管理模块目录
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- 目录:`web/src/view/aiManage/`
- [ ] **T3.7.2** 添加角色管理页面
- 负责人:
- 优先级P1重要
- 预计时间2天
- 状态:⚪ 未开始
- 文件:`web/src/view/aiManage/character/index.vue`
- [ ] **T3.7.3** 添加对话管理页面
- 负责人:
- 优先级P1重要
- 预计时间2天
- 状态:⚪ 未开始
- 文件:`web/src/view/aiManage/chat/index.vue`
- [ ] **T3.7.4** 添加用户管理页面
- 负责人:
- 优先级P1重要
- 预计时间1天
- 状态:⚪ 未开始
- 文件:`web/src/view/aiManage/user/index.vue`
- [ ] **T3.7.5** 添加数据统计页面
- 负责人:
- 优先级P2推荐
- 预计时间2天
- 状态:⚪ 未开始
- 文件:`web/src/view/aiManage/statistics/index.vue`
- [ ] **T3.7.6** 添加 API 接口
- 负责人:
- 优先级P1重要
- 预计时间1天
- 状态:⚪ 未开始
- 文件:`web/src/api/ai.js`
- [ ] **T3.7.7** 添加路由配置
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- 文件:`web/src/router/index.js`
---
## 🎯 阶段五:数据迁移(预计 3-5 天)
### 4.1 迁移准备
- [ ] **T4.1.1** 备份 SillyTavern 原始数据
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 备份位置:指定安全位置
- [ ] **T4.1.2** 创建测试用前台用户
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T2.2.2
- 状态:⚪ 未开始
- 用于数据迁移目标账号
### 4.2 角色数据迁移
- [ ] **T4.2.1** 编写角色迁移脚本
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 文件:`server/utils/migrate/migrate_sillytavern.go`
- 功能:从文件系统读取角色 JSON写入数据库
- [ ] **T4.2.2** 测试角色迁移
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T4.2.1
- 状态:⚪ 未开始
- 验证:数据完整性、关联关系
- [ ] **T4.2.3** 执行角色正式迁移
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T4.2.2
- 状态:⚪ 未开始
### 4.3 对话数据迁移
- [ ] **T4.3.1** 编写对话迁移脚本
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 功能:从 JSONL 文件读取对话,写入数据库
- [ ] **T4.3.2** 测试对话迁移
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T4.3.1
- 状态:⚪ 未开始
- [ ] **T4.3.3** 执行对话正式迁移
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T4.3.2
- 状态:⚪ 未开始
### 4.4 文件数据迁移
- [ ] **T4.4.1** 编写文件迁移脚本
- 负责人:
- 优先级P1重要
- 预计时间1天
- 状态:⚪ 未开始
- 功能:上传到对象存储,记录到数据库
- [ ] **T4.4.2** 迁移头像文件
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 依赖T4.4.1
- 状态:⚪ 未开始
- [ ] **T4.4.3** 迁移背景文件
- 负责人:
- 优先级P2推荐
- 预计时间0.5天
- 依赖T4.4.1
- 状态:⚪ 未开始
- [ ] **T4.4.4** 迁移其他附件文件
- 负责人:
- 优先级P2推荐
- 预计时间0.5天
- 依赖T4.4.1
- 状态:⚪ 未开始
### 4.5 数据验证
- [ ] **T4.5.1** 验证角色数据完整性
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T4.2.3
- 状态:⚪ 未开始
- 检查项:数量、字段完整性、关联关系
- [ ] **T4.5.2** 验证对话数据完整性
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T4.3.3
- 状态:⚪ 未开始
- [ ] **T4.5.3** 验证文件数据完整性
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 依赖T4.4.*
- 状态:⚪ 未开始
---
## 🎯 阶段六:测试与优化(预计 7-10 天)
### 5.1 功能测试
#### 5.1.1 用户认证测试
- [ ] **T5.1.1** 用户注册功能测试
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 测试用例:正常注册、重复用户名、无效邮箱等
- [ ] **T5.1.2** 用户登录功能测试
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 测试用例:正确密码、错误密码、不存在用户等
- [ ] **T5.1.3** Token 刷新测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.1.4** 登出功能测试
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
#### 5.1.2 角色管理测试
- [ ] **T5.1.5** 创建角色测试
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.1.6** 编辑角色测试
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.1.7** 删除角色测试
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.1.8** 导入导出角色测试
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 测试PNG、JSON 格式
#### 5.1.3 对话功能测试
- [ ] **T5.1.9** 创建对话测试
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.1.10** 发送消息测试
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 测试:普通消息、长文本、特殊字符
- [ ] **T5.1.11** AI 回复测试
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 测试OpenAI、Claude 等不同模型
- [ ] **T5.1.12** 流式输出测试
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- [ ] **T5.1.13** 消息重新生成测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.1.14** 消息编辑测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.1.15** Swipe 功能测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.1.16** 对话历史加载测试
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 测试:分页、倒序加载
#### 5.1.4 向量记忆测试
- [ ] **T5.1.17** 创建记忆测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.1.18** 向量搜索测试
- 负责人:
- 优先级P1重要
- 预计时间1天
- 状态:⚪ 未开始
- 验证:搜索准确性、性能
- [ ] **T5.1.19** 记忆召回测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- 测试:对话时自动召回相关记忆
#### 5.1.5 WebSocket 测试
- [ ] **T5.1.20** WebSocket 连接测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.1.21** 消息推送测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.1.22** 断线重连测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.1.23** 多客户端测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
#### 5.1.6 文件管理测试
- [ ] **T5.1.24** 文件上传测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- 测试:大文件、不同格式
- [ ] **T5.1.25** 文件下载测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.1.26** 文件删除测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
### 5.2 性能测试
- [ ] **T5.2.1** 登录接口压力测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- 工具Apache Bench / wrk
- [ ] **T5.2.2** 对话接口压力测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.2.3** 数据库查询性能测试
- 负责人:
- 优先级P1重要
- 预计时间1天
- 状态:⚪ 未开始
- 检查:慢查询、索引优化
- [ ] **T5.2.4** 向量搜索性能测试
- 负责人:
- 优先级P1重要
- 预计时间1天
- 状态:⚪ 未开始
- [ ] **T5.2.5** WebSocket 并发测试
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
### 5.3 性能优化
- [ ] **T5.3.1** 添加 Redis 缓存
- 负责人:
- 优先级P1重要
- 预计时间2天
- 状态:⚪ 未开始
- 缓存对象:角色数据、用户配置等
- [ ] **T5.3.2** 数据库索引优化
- 负责人:
- 优先级P1重要
- 预计时间1天
- 依赖T5.2.3
- 状态:⚪ 未开始
- [ ] **T5.3.3** SQL 查询优化
- 负责人:
- 优先级P1重要
- 预计时间1天
- 依赖T5.2.3
- 状态:⚪ 未开始
- [ ] **T5.3.4** 前端资源优化
- 负责人:
- 优先级P2推荐
- 预计时间1天
- 状态:⚪ 未开始
- 内容:压缩、合并、懒加载
### 5.4 安全加固
- [ ] **T5.4.1** 实现 API 限流
- 负责人:
- 优先级P1重要
- 预计时间1天
- 状态:⚪ 未开始
- 文件:`server/middleware/limiter.go`
- [ ] **T5.4.2** 加密存储 API Keys
- 负责人:
- 优先级P0必须
- 预计时间1天
- 状态:⚪ 未开始
- 文件:`server/utils/crypto/encrypt.go`
- [ ] **T5.4.3** SQL 注入防护验证
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.4.4** XSS 防护验证
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- [ ] **T5.4.5** CSRF 防护验证
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
---
## 🎯 阶段七:部署上线(预计 2-3 天)
### 6.1 Docker 部署
- [ ] **T6.1.1** 编写 Go 后端 Dockerfile
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 文件:`server/Dockerfile`
- [ ] **T6.1.2** 编写 web-app Dockerfile
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 文件:`web-app/Dockerfile`
- [ ] **T6.1.3** 编写 web 管理后台 Dockerfile
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- 文件:`web/Dockerfile`
- [ ] **T6.1.4** 编写 docker-compose.yml
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 文件:`docker-compose.yml`
- 服务PostgreSQL、Redis、Server、Web、Web-App、Nginx
- [ ] **T6.1.5** 测试 Docker 部署
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T6.1.1-4
- 状态:⚪ 未开始
### 6.2 Nginx 配置
- [ ] **T6.2.1** 编写 Nginx 配置文件
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 文件:`deploy/nginx/nginx.conf`
- 内容反向代理、WebSocket 支持
- [ ] **T6.2.2** 配置 SSL 证书
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- 使用 Let's Encrypt
- [ ] **T6.2.3** 测试 Nginx 配置
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T6.2.1
- 状态:⚪ 未开始
### 6.3 环境配置
- [ ] **T6.3.1** 创建 .env 文件模板
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 文件:`.env.example`
- [ ] **T6.3.2** 配置生产环境变量
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 状态:⚪ 未开始
- 内容数据库、Redis、AI API Keys 等
- [ ] **T6.3.3** 配置日志系统
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
### 6.4 数据库备份
- [ ] **T6.4.1** 设置数据库自动备份
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 状态:⚪ 未开始
- 工具pg_dump + crontab
- [ ] **T6.4.2** 测试数据库恢复
- 负责人:
- 优先级P1重要
- 预计时间0.5天
- 依赖T6.4.1
- 状态:⚪ 未开始
### 6.5 监控与日志
- [ ] **T6.5.1** 配置应用监控(可选)
- 负责人:
- 优先级P3可选
- 预计时间1天
- 状态:⚪ 未开始
- 工具Prometheus + Grafana
- [ ] **T6.5.2** 配置日志聚合(可选)
- 负责人:
- 优先级P3可选
- 预计时间1天
- 状态:⚪ 未开始
- 工具ELK Stack
- [ ] **T6.5.3** 配置告警系统(可选)
- 负责人:
- 优先级P3可选
- 预计时间0.5天
- 状态:⚪ 未开始
### 6.6 上线验证
- [ ] **T6.6.1** 生产环境部署
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖:所有前置任务
- 状态:⚪ 未开始
- [ ] **T6.6.2** 烟雾测试
- 负责人:
- 优先级P0必须
- 预计时间0.5天
- 依赖T6.6.1
- 状态:⚪ 未开始
- 测试:核心功能可用性
- [ ] **T6.6.3** 性能监控
- 负责人:
- 优先级P0必须
- 预计时间1天
- 依赖T6.6.1
- 状态:⚪ 未开始
- 监控:响应时间、错误率、资源使用
- [ ] **T6.6.4** 用户验收测试
- 负责人:
- 优先级P0必须
- 预计时间1天
- 依赖T6.6.1
- 状态:⚪ 未开始
---
## 📝 文档完善
- [ ] **TD.1** 完善 API 文档
- 负责人:
- 优先级P2推荐
- 预计时间2天
- 状态:⚪ 未开始
- [ ] **TD.2** 编写部署文档
- 负责人:
- 优先级P1重要
- 预计时间1天
- 状态:⚪ 未开始
- [ ] **TD.3** 编写用户使用手册
- 负责人:
- 优先级P2推荐
- 预计时间1天
- 状态:⚪ 未开始
- [ ] **TD.4** 编写开发者文档
- 负责人:
- 优先级P2推荐
- 预计时间1天
- 状态:⚪ 未开始
---
## 🎉 项目完成
- [ ] **Final.1** 项目总结会议
- [ ] **Final.2** 经验教训总结
- [ ] **Final.3** 技术债务整理
- [ ] **Final.4** 后续优化规划
---
## 📊 优先级说明
- **P0必须**:核心功能,必须完成
- **P1重要**:重要功能,强烈建议完成
- **P2推荐**:增强功能,建议完成
- **P3可选**:可选功能,时间允许再做
---
## 📅 里程碑
| 里程碑 | 预期完成日期 | 实际完成日期 | 状态 |
|--------|-------------|-------------|------|
| M1: 数据库设计完成 | - | - | ⚪ |
| M2: 核心 API 开发完成 | - | - | ⚪ |
| M3: 前端改造完成 | - | - | ⚪ |
| M4: 数据迁移完成 | - | - | ⚪ |
| M5: 测试通过 | - | - | ⚪ |
| M6: 生产环境上线 | - | - | ⚪ |
---
## 📌 注意事项
### 重要约束
1. ❌ **禁止修改** `server/api/v1/system/` 下的任何文件
2. ❌ **禁止修改** `sys_users` 表结构
3. ✅ **所有新功能** 都在 `app/` 目录下实现
4. ✅ **所有新表** 使用 `app_` 或 `ai_` 前缀
5. ✅ **所有新路由** 使用 `/app/` 前缀
### 开发建议
1. 每完成一个任务,及时更新状态
2. 遇到问题及时记录在备注中
3. 定期 review 进度,调整计划
4. 重要节点完成后进行备份
---
**文档创建日期**: 2026-02-10
**最后更新**: 2026-02-10
**维护者**: 开发团队