Files
Nexus/docs/design/plans/2026-06-07-missing-features-alignment-plan.md
T
Nexus Agent fb6a4be797 feat(commands): 推送日志第三视图与 CSV 导入模板
按对齐计划 Phase1:Commands 页增加推送日志筛选视图;补全 servers_import_template.csv;扩写功能指南 §12.6/12.8/12.10 与 acceptance_catalog。
2026-06-08 02:45:17 +08:00

198 lines
9.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 | ☐ | `nexus-full-site-features.md` §23 | 至少 24h 折线图;数据来自 MySQL 历史或现有 heartbeat 落库 |
| 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 子 TabPlatform/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 | ☐ | `upgrade-agent` API 已有;需与 `web/agent/install.sh` 路径/venv 一致 | 升级后 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 / L4L5
| 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 1P1 能力)
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-09E-13 POSIX
D-02D-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 类)或 E2EE-02
5. 更新功能指南 / 本表状态 ☐→☑
---
## 3. 进度总表
```
A 部署验证 [ ] 0/5
B 14页缺口 [ ] 0/6
C API无UI [ ] 0/4
D 产品backlog [ ] 0/5
E 工程债 [ ] 0/22
─────────────────────
合计 [ ] 0/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 导入、文件预览) |