# 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）
```

---

## 审批

| 角色 | 意见 | 签名 | 日期 |
|------|------|------|------|
| **项目经理** | ⏳ 待审批 | — | — |
