Files
Nexus/docs/project/2026-06-01-master-backlog-plan.md
T
2026-06-01 19:56:36 +08:00

11 KiB
Raw Blame History

Nexus 主待办长计划(文件管理 · POSIX · 部署 · 审计)

内容
创建日期 2026-06-01
状态 活跃 — 新会话接续本文任务 ID
范围 2026-06-01 会话内已实现代码的验证/部署/审计 + 全站遗留验收
关联 SSOT development-acceptance-standard.md · AI-HANDOFF-2026-05-23.md

如何使用

  1. 阶段(Phase 顺序执行;阶段内任务可并行标
  2. 每完成一项:将 [ ] 改为 [x],并在对应 changelog/audit 留痕。
  3. 宣称「可部署/可上线」前:至少完成 Phase D(门控) + 相关 Phase C/E 验证任务。
  4. 任务 ID 格式:{域}-{序号},便于 PR/commit 引用(例:DEP-03)。

图例

标记 含义
[x] 代码/文档已完成(2026-06-01 会话)
[ ] 待做
🔍 需人工/生产环境
阻塞部署或上线

总览路线图

flowchart LR
  subgraph done [已实现代码]
    A1[POSIX 批次 1-7]
    A2[文件管理 P1-P5]
    A3[二期递归+提示]
  end
  subgraph next [待执行]
    B[Phase A 单测与门控]
    C[Phase B 部署]
    D[Phase C 浏览器与 L1-L4]
    E[Phase D 正式审计 8 步]
    F[Phase E POSIX 批次 13+]
    G[Phase F 全站回归 T1-T5]
    H[Phase G 增强与风险]
  end
  done --> B --> C --> D
  D --> E
  E --> F
  F --> G
  G --> H

Phase A — 本地验证与程序门控(未部署前必做)

ID 任务 状态 验收标准
A-01 跑 POSIX 单测套件 [x] 44 passed(含 schema/file 套件)
A-02 跑文件管理单测套件 [x] 同上
A-03 跑全量 API 测试(有 .env [x] python tests/test_api.py(门控方式);pytest 0 收集(已修复函数名)
A-04 ruff server/ 零错误 [x]
A-05 import 冒烟 [x]
A-06 bandit 无 HIGH/MEDIUM [x] 门控仅 HIGH0 HIGH
A-07 7 门预检脚本 [ ] 生产需重启后重跑;已修 DEPLOY_DIR 默认仓库根
A-08 合并 changelog(本次主题) [x] docs/changelog/2026-06-01-*.md 系列(posix / files / phase5 / phase2 / capability
A-09 WSL 集成 smoke(若环境可用) [ ] wsl_integration_smoke.sh 或项目等价脚本

Phase A 完成定义A-01A-07 全 [x]A-09 可选但推荐)。


Phase B — 生产部署(后端 + 前端)

ID 任务 状态 验收标准
DEP-01 git push origin main [x] d93c518
DEP-02 生产 git fetch && reset --hard origin/main [x]
DEP-03 supervisorctl restart nexus [ ] 待 gate 通过后执行
DEP-04 健康检查 [x] 拉取前已 ok;重启后待复验
DEP-05 前端 deploy/deploy-frontend.sh [ ] web/app/index.html + assets/ 已更新
DEP-06 浏览器 /app/ HTTP 200 [ ] 非旧 Tailwind 静态页
DEP-07 记录部署日期到本文 [ ] 在 §部署记录 填一行

依赖Phase A 的 A-07 通过。
路径 SSOT/www/wwwroot/api.synaglobal.vip/ · SSH 别名 nexus · 端口 8600

部署记录

日期 操作人 DEP-0106 备注

Phase C — 文件管理功能验收(设计文档 L1~L4)

设计:2026-06-01-files-root-ownership-ui-design.md §7
代码状态:Phase 15 + 二期 已实现;本节全部为 🔍 生产/浏览器验证

C1 — L1 提权

ID 任务 状态 步骤 / 预期
FM-L1-01 deploy + nexus-files.sudoers [ ] 🔍 目标机安装 docs/deploy/nexus-files-sudoers.examplesudo -n true 成功
FM-L1-02 写/保存/压缩/chmod 成功 [ ] 🔍 审计含 elevated: true(若走了 sudo
FM-L1-03 SSH 用户 root [ ] 🔍 不触发多余 sudo;功能正常
FM-L1-04 无 sudo 非 root [ ] 🔍 失败提示含免密 sudo / 文档路径,非「SSH 连接失败」
FM-L1-05 顶栏不可读提示 [ ] 🔍 选 deploy 服务器见提示条;读 root 属主文件后提示更新
FM-L1-06 files-capability API [ ] 🔍 GET /api/servers/{id}/files-capability 与 UI 检测一致
FM-L1-07 服务器 files_elevation 三档 [ ] 🔍 off / auto_sudo / always_sudo 行为符合预期

C2 — L2 展示

ID 任务 状态 预期
FM-L2-01 归属列 www/root [ ] 🔍 chip 正确
FM-L2-02 tooltip 完整权限 [ ] 🔍 悬停见 drwx… · 755 · www
FM-L2-03 无默认宽「权限」列 [ ] 🔍 主表不挤占
FM-L2-04 不可读行锁图标 [ ] 🔍 mdi-shield-lock 与 ls 一致
FM-L2-05 修改时间为 long-iso [ ] 🔍 形如 2026-06-01 12:00:00,排序合理

C3 — L3 修改权限

ID 任务 状态 预期
FM-L3-01 预设 644/755 一键 [ ] 🔍
FM-L3-02 chown www 后刷新 [ ] 🔍 列表归属更新
FM-L3-03 非法 mode/owner [ ] 🔍 前端拦截 + API 400
FM-L3-04 目录递归 chmod [ ] 🔍 勾选 → confirm → 子项权限变化;/ 等被拒绝
FM-L3-05 权限对话框检测按钮 [ ] 🔍 与顶栏 capability 一致

C4 — L4 回归

ID 任务 状态 预期
FM-L4-01 文件树 / 编辑器 [ ] 🔍 打开保存无回归
FM-L4-02 剪贴板复制/粘贴/移动 [ ] 🔍
FM-L4-03 上传 / 下载 [ ] 🔍
FM-L4-04 压缩 / 解压 [ ] 🔍
FM-L4-05 Windows 开发机 + Linux 目标路径 [ ] 🔍 路径无 \ 进入远程命令

Phase C 完成定义C1C4 全部 [x]


Phase D — 正式审计(8 步 · 部署门控)

模板:docs/audit/TEMPLATE.md · 规则:.cursor/rules/audit-line-review.mdc
现状:POSIX 分批审查 files-phase5 简表 下列为改动的完整 8 步审计(待补)

ID 审计主题 状态 输出文件
AUD-01 文件管理 Phase 13remote_shell / browse / chmod UI [x] 合并在 master-execution-audit
AUD-02 files-capability + files_elevation(批次 10 [x] 同上
AUD-03 Phase 5 加固(long-iso / read-file / remote_write [x] files-phase5.md + master-execution
AUD-04 二期递归 chmod + 不可读提示(批次 12) [x] 同上
AUD-05 Schema 路径校验 P2schema_path_validators [x] posix-path-full-audit
AUD-06 部署前 Review 门:审计含实际改动文件清单 [ ] 已修 gate 选最新 audit;待重跑

每份审计必须含Step3 规则扫描 · Closure 全表 · 入口表 · 输入→Sink · DoD · 0 FINDING 或已修 FINDING文件:行号)。


Phase E — POSIX 路径审计(延续)

总览:posix-path-full-audit.md
分批记录:posix-path-batch-review.md

ID 任务 状态 说明
POSIX-13 批次 13remote_shell + files_capability + files_chmod_policy [x] master-execution-audit §批次 POSIX-13
POSIX-14 批次 14unix_ls.py 解析边界(空格文件名、异常行) [ ] 对照 test_file_permissions.py 补案例
POSIX-15 批次 15:前端 remotePath.ts 全页面扫尾 [ ] rg 无裸 + 路径拼接
POSIX-16 批次 16sync_engine_v2 rsync 目标再回归 [ ] user@host:path 形态
POSIX-17 生产回归:Windows 主机开发 + Linux SSH 目标 [ ] 🔍 full-audit DoD 最后一项
POSIX-18 规则固化:.cursor/rules/nexus-posix-paths.mdc 与 CI 可选检查 [ ] 如在 CI 加 rg 门禁

Phase F — 全站遗留测试(CLAUDE / HANDOFF

ID 任务 状态 说明
T-01 心跳 Redis 写入验证 [ ] 🔍 Agent 60s → heartbeat:{id}
T-02 WebSocket 连接与告警推送 [ ] 🔍 浏览器 + Telegram
T-03 三层守护(杀 Python → Supervisor 重启) [ ] 🔍
T-04 Telegram 推送 [ ] 🔍
T-05 install.html 五步安装向导 [ ] 🔍
T-06 L5 生产验收清单 [ ] production-verification-checklist.md
T-07 WebSSH 断线重连(HANDOFF P1 [ ] 独立设计与实现
T-08 服务器 CSV 批量导入(HANDOFF P1 [ ]

Phase G — 增强与已知风险(未实现 / 低优先级)

ID 任务 优先级 说明
ENH-01 危险路径 chmod 二次确认(/etc/usr 下单文件) P2 设计 §8 风险表
ENH-02 find -maxdepth 替代大范围 chmod -R(可选) P3 降低误操作面
ENH-03 预加载失败聚合提示(非静默) P3 filePreload.ts 现静默 catch
ENH-04 NEXUS_FILES_ELEVATION_DEFAULT 全局 env 默认 P3 plans 二期提及
ENH-05 设计文档 §7 勾选同步到本文 P1 FM-L* 完成后回写 spec
ENH-06 更新 AI-HANDOFF 指针到本文 P1 避免多 SSOT 分叉
ENH-07 CLAUDE.md 实现表:文件管理条目标为已完成 P2 与代码一致
ENH-08 可选列「权限」默认隐藏 + 列设置 P3 L2-03 细化

已完成代码清单(勿重复实现)

主题 批次/阶段 关键路径
POSIX SSOT + sync_v2 规范化 批次 17 server/utils/posix_paths.py
Schema 路径 P2 P2 schema_path_validators.py
remote_shell + sudo 回退 Phase 1 remote_shell.py
browse owner/group/mode_octal Phase 2 sync_v2.py
FilePermissionDialog + chown Phase 3 前端组件
files-capability + files_elevation 批次 10 / Phase 4 servers.py
long-iso / read-file 提权 / write elevation 批次 11 / Phase 5 unix_ls.py
递归 chmod + 不可读顶栏/锁图标 批次 12 / 二期 files_chmod_policy.py

进度总表(给用户一眼看跳步)

代码实现     [x]  POSIX 1-7 + 文件管理 P1-P5 + 二期
本地单测门控 [x]  Phase A(A-07 生产待重跑)
正式审计 8 步 [x]  Phase D(合订 master-execution-audit
生产部署     [~]  Phase B(已 push+pullrestart+前端待完成)
浏览器 L1-L4 [ ]  Phase C
POSIX 13-18  [~]  Phase E13 完成;14-18 待做)
全站 T1-T8   [ ]  Phase F
增强 ENH     [ ]  Phase G(按需)

当前建议下一项A-01A-07DEP-01DEP-06FM-L1-01 起。


文档索引

类型 路径
文件管理设计 docs/design/specs/2026-06-01-files-root-ownership-ui-design.md
文件管理计划 docs/design/plans/2026-06-01-files-root-ownership-ui.md
二期计划 docs/design/plans/2026-06-01-files-phase2-recursive-read-hint.md
POSIX 全审计 docs/audit/2026-06-01-posix-path-full-audit.md
POSIX 分批 docs/audit/2026-06-01-posix-path-batch-review.md
Changelog 目录 docs/changelog/2026-06-01-*.md
sudoers 示例 docs/deploy/nexus-files-sudoers.example

变更记录

日期 变更
2026-06-01 初版:合并 POSIX 分批、文件管理 Phase/二期、部署门控、审计、全站 T 项