Files
Nexus/docs/changelog/fix-plan-full-2026-05-20.md
T
Your Name 539c33ef42 feat: Nexus 6.0 6-step implementation (Step 0-5)
Step 0: Infrastructure hardening — Redis BlockingConnectionPool,
WebSocket two-layer (memory+Redis Pub/Sub), JWT auth, DB session leak fix
Step 1: Data layer — 4 new tables (platforms/nodes/command_logs/ssh_sessions),
data migration (category→Node), repos + API routes
Step 2: Auth layer — JWT middleware on all routes, TOTP JWT integration
Step 3: Web SSH — asyncssh connection pool, /ws/terminal endpoint,
xterm.js frontend, Koko protocol
Step 4: Sync engine v2 — file/command/config/SFTP modes, parallel execution
Step 5: Frontend migration — 12 Tailwind CSS v4 + Alpine.js pages,
PHP-FPM removal from nginx config

21 Python backend + 12 HTML frontend + 2 deploy configs + 3 test files

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 22:11:38 +08:00

6.0 KiB
Raw Blame 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.pyload_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

审批

角色 意见 签名 日期
项目经理 待审批