# Nexus 6.0 — 缺失功能对齐计划（Backlog）

**日期**：2026-06-07  
**基线**：`docs/project/nexus-functional-development-guide.md` §12 + 附录 E/J · `dfb0ea2`（脚本库+调度已 push）  
**对照审计**：`docs/reports/2026-06-06-frontend-14p-contract-audit.md`  
**用途**：逐项排期、勾选验收；**禁止**与已完成项重复实现。

---

## 0. 总览

| 类别 | 项数 | 说明 |
|------|------|------|
| **A 待部署/生产验证** | 4 | 代码已在 Gitea，生产未生效或未点验 |
| **B 14 页 SPA 能力缺口** | 6 | 相对功能 SSOT / 旧版 HTML 仍缺 UI 或细节 |
| **C 后端有 API、前端无页** | 4 | Sync/Assets 等 API 已存在 |
| **D 产品增强（P1/P2/可选）** | 5 | 非 14 页核心，但 backlog 仍列 |
| **E 验收与工程债** | 12 | L4/L5、POSIX、ENH、文档 SSOT |
| **合计可排期项** | **31** | 不含「已否决」功能 |

**14 页 API 路径层**：2026-06-06 审计 **PASS**（端点存在 ≠ 能力完整）。

**已否决（不做，勿排期）**：RBAC、移动端、会话录像、审计 CSV 导出、邮件报告、Redis Cluster、独立文件编辑器模块。

---

## A. 待部署与生产验证（优先）

> 代码已合入 `main@dfb0ea2`，**不算功能缺失**，但必须上线后才算对齐完成。

| ID | 任务 | 优先级 | 状态 | 涉及 | 验收标准 |
|----|------|--------|------|------|----------|
| A-01 | **生产部署** `dfb0ea2`（API + 前端静态） | P0 | ☑ | `deploy/deploy-production.sh` | 生产 `git pull` 后 API 重启；`web/app/` 同步；`/health` 200 |
| A-02 | **DB 迁移** `push_schedules.target_path` | P0 | ~ | `migrations.py` 启动时 DDL | 生产 `SHOW COLUMNS FROM push_schedules LIKE 'target_path'` 有列 |
| A-03 | **脚本库**生产点验 | P0 | ~ | ScriptsPage + `/scripts/exec` | 新建 ops 脚本 → 选机执行 → 状态条 #id；历史按 script_id 过滤；长任务/凭据可用 |
| A-04 | **推送调度**生产点验 | P0 | ~ | SchedulesPage + `schedule_runner` | 新建 cron 推送：target_path 可选、next_run 有值、runNow 留空目标走各机配置；script 调度 runNow 走 `/scripts/exec` |
| A-05 | **边端 Agent** 401 停循环 | P1 | ☐ | `web/agent/agent.py` | 错误 key 心跳 401 后子机 agent 不再无限重试（需各机同步 agent 文件） |

**依赖**：A-01 → A-02 → A-03/A-04 可并行点验。

---

## B. 十四页 SPA — 相对设计 SSOT 的能力缺口

| ID | 页面 | 缺失能力 | 优先级 | 状态 | 设计依据 | 验收标准 |
|----|------|----------|--------|------|----------|----------|
| B-01 | **Commands** `/commands` | **推送日志视图**（第三 Tab：rsync 历史、状态/模式/触发源过滤） | P1 | ☑ | 旧版 `commands.html` 三视图；现 SPA 仅命令+会话 | 第三视图可调 `GET /servers/logs` 或 sync_logs 分页 API；筛选与 Push 历史一致 |
| B-02 | **Dashboard** `/` | **历史趋势图**（CPU/内存/磁盘时序，非仅 Redis 实时） | P2 | ☑ | `fleet_metric_samples` + `v-sparkline` | 至少 24h 折线图；10min 舰队采样 |
| B-03 | **Files** `/files` | **树形侧栏**目录导航 | P3 | ☐ | 归档 §12 文件管理「未实现：树形侧栏」 | 左树右表；与 browse API 联动 |
| B-04 | **Servers** `/servers` | **CSV 导入模板**静态文件缺失 | P2 | ☑ | UI 链到 `/app/servers_import_template.csv` 但仓库无此文件 | 提供模板 CSV + 文档列说明；导入 E2E 一条 |
| B-05 | **Schedules** `/schedules` | **设计文档 §12.8 扩写**（push/script、cron/once 已代码实现） | P2 | ☑ | 功能指南仍只写一行「Cron 调度推送」 | 更新 SSOT 与附录 E.1 字段表；避免下轮误判缺失 |
| B-06 | **Settings** `/settings` | **子机 Agent 批量同步入口**（若运维需要一键提示） | P3 | ☐ | 边端 A-05 依赖人工 scp | 文档或设置页展示 agent 升级/同步命令（非必须新 API） |

**说明（勿重复做）**：

- **WebSSH 断线自动重连**：`useTerminalSessions.ts` 已实现指数退避重连 → 归档 §23 过时，仅需 **生产验证**，不新开 B 项。
- **CSV 批量导入**：`ServersPage` + `POST /servers/import` **已实现** → 仅 B-04 补模板。
- **文件内容预览**：`FilesDialogs.vue` preview **已实现** → 不列入缺口。
- **脚本库 / 调度**：B 类无缺口；归 **A-03/A-04 部署验证**。

---

## C. 后端 API 已有、前端无独立页面

| ID | API 模块 | 端点（示例） | 缺失 UI | 优先级 | 状态 | 验收标准 |
|----|----------|--------------|---------|--------|------|----------|
| C-01 | **资产管理** | `GET/POST/PUT/DELETE /api/assets/platforms` | 无 `#/assets` 页；Platform/Node 仅在服务器表单下拉只读 | P2 | ☐ | 独立页或 Settings 子 Tab：Platform/Node CRUD + 审计 |
| C-02 | **Sync 配置推送** | `POST /api/sync/config`、`/config/rollback` | 无配置批量下发 UI | P2 | ☐ | 选服务器 + key/value 或文件；回滚一次操作 |
| C-03 | **Sync 批量命令** | `POST /api/sync/commands` | 无独立页（脚本库部分覆盖） | P3 | ☐ | 与 Scripts 边界写清：临时命令 vs 入库脚本 |
| C-04 | **Sync SFTP** | `POST /api/sync/sftp` | 文件页 upload 走 `/sync/upload`，SFTP 专用流未暴露 | P3 | ☐ | 文档明确等价路径或补 UI |

---

## D. 产品 Backlog（非 14 页核心）

| ID | 功能 | 优先级 | 状态 | 说明 | 验收标准 |
|----|------|--------|------|------|----------|
| D-01 | **Agent upgrade 与 install.sh venv 对齐** | P1 | ☑ | `server/utils/agent_deploy.py` 统一 pip/路径/port；单台与批量共用 | 升级后 agent 版本与中心一致；install 脚本 idempotent |
| D-02 | **宝塔 API 监控集成** | 可选 | ☐ | 可选增强 | 设计文档 + 配置项 + 只读指标 |
| D-03 | **Agent mTLS** | 可选 | ☐ | 安全增强 | ADR + 双端证书轮换方案 |
| D-04 | **全局搜索**增强 | P3 | ☐ | `App.vue` 已有 `/search/` | 结果分组、键盘导航、schedules 新字段展示 |
| D-05 | **E2E：凭据轮询** | P2 | ☐ | 审计报告 §5 建议 | add-by-ip 失败 → pending → 重试/删除 Playwright |

---

## E. 验收、审计与文档工程债

### E.1 测试与验收（Phase F / L4–L5）

| ID | 任务 | 优先级 | 状态 | 命令/文档 |
|----|------|--------|------|-----------|
| E-01 | 修复本地 `local_verify.sh` 登录 401 环境 | P1 | ☐ | `.env` + `seed_local_admin.py` |
| E-02 | L4 Playwright 15 用例全绿 | P1 | ☐ | `frontend/e2e/full-acceptance.spec.mjs` |
| E-03 | L5 生产验收清单勾选 | P1 | ☐ | `production-verification-checklist.md` |
| E-04 | T-01 心跳 Redis 写入 | P2 | ☐ | Agent 60s → `heartbeat:{id}` |
| E-05 | T-02 WebSocket 告警 + Telegram | P2 | ☐ | 浏览器 WS + 消息 |
| E-06 | T-03 三层守护杀进程重启 | P2 | ☐ | Supervisor 恢复 |
| E-07 | T-05 install 向导五步 | P2 | ☐ | 干净环境 E2E |
| E-08 | `acceptance_catalog` 增 add-by-ip / schedules 字段 | P3 | ☐ | `tests/acceptance_catalog.py` |

### E.2 POSIX 审计批次（Phase E）

| ID | 任务 | 状态 |
|----|------|------|
| E-09 | POSIX-14 `unix_ls.py` 边界用例 | ☐ |
| E-10 | POSIX-15 前端 `remotePath.ts` 扫尾 | ☐ |
| E-11 | POSIX-16 `sync_engine_v2` rsync 目标回归 | ☐ |
| E-12 | POSIX-17 生产 Win 开发 + Linux SSH 目标回归 | ☐ |
| E-13 | POSIX-18 `nexus-posix-paths.mdc` + 可选 CI | ☐ |

### E.3 增强项（Phase G）

| ID | 任务 | 优先级 | 状态 |
|----|------|--------|------|
| E-14 | ENH-01 危险路径 chmod 二次确认 | P2 | ☐ |
| E-15 | ENH-02 `find -maxdepth` 替代大范围 chmod -R | P3 | ☐ |
| E-16 | ENH-03 预加载失败聚合提示 | P3 | ☐ |
| E-17 | ENH-04 `NEXUS_FILES_ELEVATION_DEFAULT` env | P3 | ☐ |
| E-18 | ENH-08 文件列表「权限」列默认隐藏 + 列设置 | P3 | ☐ |

### E.4 文档 SSOT 漂移（避免误判「缺失」）

| ID | 任务 | 优先级 | 状态 |
|----|------|--------|------|
| E-19 | 更新 `AI-HANDOFF-2026-06-03.md` 指针与 commit | P1 | ☐ |
| E-20 | 修正 `nexus-full-site-features.md` §23（重连/CSV/预览已实现） | P1 | ☐ |
| E-21 | 更新 `status.md`（Vue SPA 非 Alpine） | P2 | ☐ |
| E-22 | 扩写功能指南 §12.8 Schedules、§12.6 Scripts 能力表 | P2 | ☐ |

---

## 1. 推荐执行顺序

```
Week 0（立即）
  A-01 → A-02 → A-03 + A-04 + A-05

Week 1（P1 能力）
  B-01 Commands 推送日志视图
  B-04 CSV 模板
  D-01 Agent upgrade 对齐
  E-01 E-02 E-03

Week 2+（P2/P3）
  B-02 Dashboard 趋势
  C-01 资产管理页
  C-02 配置推送 UI
  E-09～E-13 POSIX
  D-02～D-05 按需
```

---

## 2. 单项 DoD（通用）

每项关闭须满足：

1. 有 `docs/design/specs/` 或本计划 ID 引用（中改以上）
2. 实现 + `bash scripts/local_verify.sh` 或针对性 pytest
3. `docs/changelog/YYYY-MM-DD-*.md`
4. 生产点验（A/B/C/D 类）或 E2E（E-02）
5. 更新功能指南 / 本表状态 ☐→☑

---

## 3. 进度总表

```
A 部署验证     [~] 1/5 已部署，2~4 待浏览器/SSH
B 14页缺口     [~] 3/6（B-01/B-04/B-05）
C API无UI      [ ] 0/4
D 产品backlog  [ ] 0/5
E 工程债       [~] 2/22（E-08/E-22）
─────────────────────
合计           [~] 6/31 本批完成或部分完成
```

---

## 4. 相关文档

| 文档 | 路径 |
|------|------|
| 功能 SSOT | `docs/project/nexus-functional-development-guide.md` |
| 14 页契约审计 | `docs/reports/2026-06-06-frontend-14p-contract-audit.md` |
| Master backlog | `docs/project/2026-06-01-master-backlog-plan.md` |
| 脚本库修复 changelog | `docs/changelog/2026-06-07-scripts-spa-perfect-implementation.md` |
| 调度修复 changelog | `docs/changelog/2026-06-07-schedules-perfect-implementation.md` |
| 验收标准 | `docs/project/development-acceptance-standard.md` |

---

## 变更记录

| 日期 | 变更 |
|------|------|
| 2026-06-07 | 初版：31 项可排期 backlog；标注 dfb0ea2 待部署；剔除已实现误报（自动重连、CSV 导入、文件预览） |
