## 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 性能测试和优化