Files
Nexus/docs/changelog/fix-plan-full-2026-05-20.md
T

176 lines
6.0 KiB
Markdown
Raw Normal View History

# Nexus 全量未完成项修复计划
> **提交部门**: 管理组
> **部门负责人**: 项目经理
> **报告日期**: 2026-05-20
> **状态**: 待审查 ⏳
---
## 执行总览
| 优先级 | 数量 | 预估工时 | 说明 |
|--------|------|---------|------|
| P0 安全底线 | 3 项 | 0.5h | API认证/导入修复/重复close |
| P1 高优先级 | 6 项 | 2h | WebSocket推送/类型转换/缓存优化 |
| P2 中等优先级 | 10 项 | 3h | 前端统一/索引/连接池/移动端 |
| P3 WebFM+其他 | 5 项 | 2h | 图标/快捷键/持久化/文档 |
---
## 人员分工
### 工程部
| 人员/技能 | 分配任务 |
|-----------|---------|
| **PHP 开发者** | P0-1 Nginx路径隔离 / P1-4 WebSocket进度条(PHP端) / P2-11 前端统一 / P2-19 curl_multi |
| **Python 开发者** | P0-2 timedelta / P0-3 双重close / P1-5 类型转换 / P1-8 COUNT合并 / P1-9 Redis缓存 / P2-12 防火墙 / P2-18 httpx单例 |
| **Frontend Developer** | P3-1 图标升级 / P3-2 快捷键 / P3-3 状态持久化 / P2-14 WebSocket仪表盘 / P2-15 移动端 |
| **DBA** | P2-16 idx_is_online / P2-17 idx_server_started |
| **安全工程师** | P2-13 会话超时审计 |
| **Senior Developer** | P1-6 install脚本 / P1-7 test清理 / P2-10 agent残留清理 / 代码审查 |
### 测试部
| 人员/技能 | 分配任务 |
|-----------|---------|
| **Verify** | 逐项验证修复到位 |
| **安全测试** | P0-1 API认证回归 |
| **测试结果分析师** | 输出验证报告 |
| **现实检验者** | 实际运行检查 |
---
## 详细修复方案
### P0 — 安全底线(3项,0.5h
#### P0-1 API 公网暴露加认证
- **现状**: Nginx 未对 `/api/` 路径做认证隔离,公网可直接访问
- **修复方案**: Nginx location 限制 `/api/` 仅内网或加 auth
- **负责**: PHP 开发者
- **预估**: 30min
#### P0-2 scheduler.py timedelta import
- **现状**: `from datetime import datetime, timedelta` 已正确(之前验证确认)
- **修复方案**: 确认无误则标记关闭
- **负责**: Python 开发者
- **预估**: 5min
#### P0-3 health_checker.py 双重 finally: db.close()
- **现状**: 函数内 `try/finally` 嵌套导致 `db.close()` 可能被调用两次
- **修复方案**: 删除内层多余的 close 或改用单一 finally
- **负责**: Python 开发者
- **预估**: 10min
### P1 — 高优先级(6项,2h)
#### P1-4 WebSocket 实时推送进度条
- **现状**: 同步操作无实时进度反馈
- **修复方案**: sync_engine 推送 WebSocket 事件,前端显示进度条
- **负责**: Python 开发者 + PHP 开发者
- **预估**: 1h
#### P1-5 类型转换修复
- **现状**: settings 从 DB/Redis 读取为字符串,未转 int/bool
- **修复方案**: `config.py``load_settings_from_db` 加类型转换
- **负责**: Python 开发者
- **预估**: 15min
#### P1-6 install_central.sh 模块名修正
- **现状**: 脚本中模块名可能拼写错误
- **修复方案**: 修正模块名
- **负责**: Senior Developer
- **预估**: 5min
#### P1-7 test_api.py 加 DELETE 清理
- **现状**: 测试创建服务器后未清理
- **修复方案**: 添加 DELETE 请求清理测试数据
- **负责**: Senior Developer
- **预估**: 10min
#### P1-8 3 次 COUNT 合并为 1 次
- **现状**: 仪表盘 3 次独立 COUNT 查询
- **修复方案**: 合并为单次 `SELECT COUNT(*), SUM(is_online) FROM servers`
- **负责**: Python 开发者
- **预估**: 10min
#### P1-9 /api/servers/ 加 Redis 30s 缓存
- **现状**: 每次请求都查 DB
- **修复方案**: Redis 缓存 30s,减少 DB 压力
- **负责**: Python 开发者
- **预估**: 15min
### P2 — 中等优先级(10项,3h)
| # | 任务 | 修复方案 | 负责 | 预估 |
|---|------|---------|------|------|
| P2-10 | agent残留清理 | 删除 agent.py/agent.sh 残留文件 | Senior Dev | 20min |
| P2-11 | 前端统一 | sidebar 统一 + deploy.php 改 api() | PHP Dev | 30min |
| P2-12 | firewalld | _open_firewall 补 firewalld 支持 | Python Dev | 10min |
| P2-13 | 会话超时 | Redis TTL/GC/cookie 超时审计 | 安全工程师 | 20min |
| P2-14 | 仪表盘WS | WebSocket 实时更新仪表盘 | Frontend | 30min |
| P2-15 | 移动端 | sidebar折叠 + 响应式表格 | Frontend | 40min |
| P2-16 | idx_is_online | ALTER TABLE servers ADD INDEX | DBA | 5min |
| P2-17 | idx_server_started | ALTER TABLE sync_logs ADD INDEX | DBA | 5min |
| P2-18 | httpx单例 | 模块级 AsyncClient 复用 | Python Dev | 10min |
| P2-19 | curl_multi | api_proxy.php 并发请求 | PHP Dev | 20min |
### P3 — WebFM + 文档(5项,2h
| # | 任务 | 修复方案 | 负责 | 预估 |
|---|------|---------|------|------|
| P3-1 | 文件图标升级 | emoji→Font Awesome CDN + 文件类型映射 | Frontend | 40min |
| P3-2 | 键盘快捷键 | 补 Ctrl+A/F2/F5/Backspace/Ctrl+C/X/V/F | Frontend | 30min |
| P3-3 | 状态持久化 | sortCol/sortDir→sessionStorage + 恢复 | Frontend | 20min |
| P3-4 | 文档更新 | README/宝塔指南/CHANGELOG | Senior Dev | 20min |
| P3-5 | 注释英文化 | 删除宝塔注释,关键注释英文化 | Senior Dev | 10min |
---
## 执行时间线
```
Phase 1 — P0 安全底线(~30min
├─ P0-2 timedelta 确认
├─ P0-3 双重 close 修复
└─ P0-1 Nginx 认证隔离
Phase 2 — P1 高优先级(~2h
├─ P1-5 类型转换
├─ P1-8 COUNT 合并
├─ P1-9 Redis 缓存
├─ P1-6 install 脚本
├─ P1-7 test 清理
└─ P1-4 WebSocket 进度条
Phase 3 — P2 中等优先级(~3h
├─ P2-16/17 索引
├─ P2-18 httpx 单例
├─ P2-12 防火墙
├─ P2-10 agent 清理
├─ P2-11 前端统一
├─ P2-13 会话超时
├─ P2-19 curl_multi
├─ P2-14 仪表盘 WS
└─ P2-15 移动端
Phase 4 — P3 WebFM+文档(~2h
├─ P3-1 图标升级
├─ P3-2 快捷键
├─ P3-3 状态持久化
├─ P3-4 文档更新
└─ P3-5 注释英文化
Phase 5 — 测试验证(~1h
```
---
## 审批
| 角色 | 意见 | 签名 | 日期 |
|------|------|------|------|
| **项目经理** | ⏳ 待审批 | — | — |