feat: 重构项目心跳数据结构并实现项目列表API

- 新增统一项目列表Redis键和迁移工具
- 实现GET /api/projects端点获取项目列表
- 实现POST /api/projects/migrate端点支持数据迁移
- 更新前端ProjectSelector组件使用真实项目数据
- 扩展projectStore状态管理
- 更新相关文档和OpenSpec规范
- 添加测试用例验证新功能
This commit is contained in:
2026-01-13 19:45:05 +08:00
parent 19e65d78dc
commit 282f7268ed
66 changed files with 4378 additions and 456 deletions

View File

@@ -0,0 +1,55 @@
## 1. Redis数据结构重构
- [x] 1.1 在redisKeys.js中添加projectsListKey()函数
- [x] 1.2 创建数据迁移工具migrateHeartbeatData.js
- [x] 1.3 实现从分散键到统一列表的迁移逻辑
- [x] 1.4 实现getProjectsList()函数
- [x] 1.5 实现updateProjectHeartbeat()函数
## 2. 后端API开发
- [x] 2.1 创建项目列表API routes/projects.js
- [x] 2.2 实现GET /api/projects端点
- [x] 2.3 实现POST /api/projects/migrate端点
- [x] 2.4 更新logs.js兼容新数据结构
- [x] 2.5 更新commands.js兼容新数据结构
- [x] 2.6 在server.js中注册项目列表路由
## 3. 前端代码修改
- [x] 3.1 更新ProjectSelector.vue移除假数据
- [x] 3.2 实现从API获取项目列表
- [x] 3.3 实现项目状态显示
- [x] 3.4 实现自动刷新功能
- [x] 3.5 更新projectStore.js扩展状态管理
- [x] 3.6 更新LogView.vue连接真实API
- [x] 3.7 更新CommandView.vue连接真实API
- [x] 3.8 更新MainView.vue传递项目名称
- [x] 3.9 更新Console.vue接受项目名称属性
- [x] 3.10 修正App.vue健康检查端点
## 4. 文档更新
- [x] 4.1 创建Redis数据结构文档
- [x] 4.2 更新logging OpenSpec规范
- [x] 4.3 更新command OpenSpec规范
- [x] 4.4 更新redis-connection OpenSpec规范
- [x] 4.5 创建OpenSpec变更提案proposal.md
- [x] 4.6 创建OpenSpec变更提案tasks.md
## 5. 测试开发
- [ ] 5.1 编写数据迁移单元测试
- [ ] 5.2 编写项目列表API集成测试
- [ ] 5.3 编写ProjectSelector组件测试
- [ ] 5.4 编写性能测试
## 6. 代码质量与验证
- [ ] 6.1 运行ESLint检查
- [ ] 6.2 运行Prettier格式化
- [ ] 6.3 验证项目选择功能
- [ ] 6.4 验证日志读取功能
- [ ] 6.5 验证命令发送功能
- [ ] 6.6 验证数据迁移功能
- [ ] 6.7 性能测试和优化