Files
Nexus/docs/project/AI-HANDOFF-2026-06-08.md
T
Nexus Agent 972456a246 feat(agent): 401 停心跳、配置重载后重启与升级双文件下发
提取 heartbeat_policy;install/upgrade 同步 heartbeat_policy.py;config reload 恢复心跳协程。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-08 23:06:09 +08:00

243 lines
10 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 — AI 接续(2026-06-08 · Linux
> **新会话请复制下方「复制提示词」整段。**
> SSOT`docs/project/nexus-functional-development-guide.md` · 门控 `bash deploy/pre_deploy_check.sh`
> 完整待办 132 条见本文 §「Master Backlog 索引」。
---
## 复制提示词(整段给新会话)
```
【Nexus 6.0 接续 · Linux · 2026-06-08】
工作区:$NEXUS_ROOT(本机 ~/桌面/Nexus 或 /opt/nexus
仓库:http://66.154.115.8:3000/admin/Nexus.git · 分支 main @ a401ea5
生产:https://api.synaglobal.vip · Docker @ /opt/nexus · 端口 8600
SSHexport NEXUS_SSH="azureuser@20.24.218.235"
export NEXUS_SSH_KEY="/home/r/下载/Telegram Desktop/nz-admin.pem" # 路径含空格须引号
pushbash scripts/git-push.sh(凭据 deploy/nexus-1panel.secrets.shgitignore
部署:bash deploy/pre_deploy_check.sh && bash deploy/deploy-production.sh
【栈】FastAPI + Async SQLAlchemy + Redis · Vue 3 + Vuetify 4 SPA15 页)· Vite → web/app/
【铁律】单 Agent · 完美实现 perfect-implementation.mdc · 改代码必 changelog + 部署前 audit · 测试 Agent 做、用户终验
【生产已部署(a401ea5)】
- server_ids 批量上限 2000 + 列表 422 中文完整(a401ea5
- 设置页 v-form 校验 + 422 中文 + 数值字段 String 保存(632891e / ff143c2
- 未设路径服务器区:独立面板、行内详情、批量操作与主表齐平、sort-by 排序(85ecd1f
- 未设路径批量检测选中数修复(05c7aeb)
- 展开详情对比度 + 同步日志仅 1 条(d0526c0
- 资源恢复 Telegram 联动 CPU/内存/磁盘开关;仪表盘移除服务器列表(fe8b24c/cb49fd9
- 登录门控/壁纸/IP 校验、页面缓存刷新、server_batch 后台任务、WebSSH ANSI、终端快捷栏等(见 git log 2026-06-08
【本会话运维记录】
- 批量任务 #20install-agent)因部署重启僵尸 running;已通过任务 #26 对 #290/#346 重装 Agent 成功
- 用户报「server_ids 最多 50 项s after validation, not 101」→ 已修并部署 a401ea5
- 设置页连接池保存 422「Input should be a valid string」→ 已修并部署 ff143c2/632891e
【2026-06-08 已部署 69068e2】
- server_batch 僵尸回收 + stuck 60s 扫描
- sync_logs 30 天 purge(启动首轮 + 24h
- 批量安装 Agent:已装且版本 ≥ 主站则跳过
- 验证:`docs/reports/2026-06-08-full-align-deploy-verification.md`
【用户终验待确认】
- 全选 101 台批量操作(install-agent / detect-path)不再 422
- 设置页连接池等数值字段保存
- 未设路径区排序、批量检测选中数、展开对比度、关 CPU 告警无恢复 Telegram
- WebSSH 实连 pwd、Telegram 测试发送、推送预览(勿误推生产)
【优先待办 TOP 10】
1. server_batch 僵尸回收 ☑(69068e2 已部署)
2. sync_logs 30 天自动清理 ☑(69068e2 已部署)
3. Agent 401 停循环 ☑(代码+单测;子机 rollout 见 #7
4. Agent upgrade 与 install.sh venv 对齐(D-01
5. ~75 条后端 API 英文 detail 改中文(Pydantic 422 已部分中文化)
6. 更新 AI-HANDOFF + alignment-plan 勾选状态(文档 SSOT
7. L4 Playwright 全绿 + L5 production-verification-checklist
8. Dashboard 24h 历史趋势图(B-02
9. 资产管理页 / Sync 配置 UIC-01/C-02
10. POSIX-1418 + 文件管理 FM-L* 生产浏览器验收
【完整 132 条待办】docs/project/AI-HANDOFF-2026-06-08.md §Master Backlog 索引
【对齐计划 31 项】docs/design/plans/2026-06-07-missing-features-alignment-plan.md
【Master 长计划】docs/project/2026-06-01-master-backlog-plan.md
【勿重复做 / 已否决】RBAC、移动端、会话录像、审计 CSV 导出、邮件报告、Redis Cluster、独立文件编辑器
【已风险接受】WebSocket JWT queryADR-011)、Agent global API_KEY legacy — risk-acceptance-single-operator.md
【工作区】69068e2 已 push/deploy;本地勿提交 web/app/assets/* 构建残留、gate_log.jsonl、.cursor/settings.json
【文档】Handoff 本文 · 功能指南 nexus-functional-development-guide.md · 验收 development-acceptance-standard.md
```
---
## 生产状态
| 项 | 值 |
|----|-----|
| 分支 | `main` @ **`69068e2`** |
| 生产 URL | `https://api.synaglobal.vip` |
| 运行时 | Docker Compose @ `/opt/nexus`1panel-network |
| SSH | `azureuser@20.24.218.235`(本机 `Host nexus` 常不可用,用 IP + pem |
| 最近部署 | 2026-06-08 — server_ids 2000 + 422 中文(`a401ea5`)· `/health` ok · `/app/` 200 |
---
## 2026-06-08 已推送主要变更(摘要)
| Commit | 主题 |
|--------|------|
| `a401ea5` | server_ids 批量上限 2000;列表 too_long 422 纯中文 |
| `632891e` | 设置页 v-form 校验;422 中文;SettingUpdatePayload 数字 coerce |
| `ff143c2` | 设置保存数值字段 String(value) 修 422 |
| `85ecd1f` | 未设路径区表格 `sort-by` 服务端排序 |
| `05c7aeb` | 未设路径批量检测对话框选中数 |
| `d0526c0` | 展开详情对比度;同步日志 limit=1 |
| `fe8b24c` | 资源恢复 Telegram 联动 CPU/内存/磁盘开关 |
| 更早 | 登录门控、pages 自动刷新、server_batch 后台、WebSSH ANSI 等(见 `docs/changelog/2026-06-08-*.md` |
---
## 本会话未完成(写入日志 · 2026-06-08 对话框结束)
### A. 代码已写未提交
| 模块 | 状态 | 说明 |
|------|------|------|
| server_batch 僵尸回收 | ☐ 未 commit | `recover_orphaned_batch_jobs` + `server_batch_reconcile_loop` 60schangelog/plan 已有 |
| 若干 verification 报告 | ☐ 未提交 | `docs/reports/2026-06-08-*-verification.md` 多份 |
### B. 已识别待做(未开始或部分)
| # | 项 | 状态 |
|---|-----|------|
| 3 | sync_logs 30 天自动 purge | ☑ |
| 4 | Agent 401 停循环(A-05 | ☑~(待部署+子机升级) |
| 5 | upgrade-agent 与 install.sh 对齐(D-01 | ☐ |
| — | ~75 条后端 API 英文 `detail` 改中文 | ☐ |
| — | ~25 前端英/混排标签 | ☐ |
| 2931 | L4 Playwright + L5 验收清单 | ☐ |
| 8795 | 用户浏览器终验(WebSSH/Telegram/推送等) | ~ |
### C. 工作区卫生
- 勿提交:`web/app/assets/*``deploy/gate_log.jsonl``.cursor/settings.json`
- Handoff 本文已更新至 `a401ea5`server_batch reconcile 待下一会话收尾
---
## 关键路径
| 用途 | 路径 |
|------|------|
| 后端入口 | `server/main.py` |
| 服务器 API/批量 | `server/api/servers.py` · `server/application/services/server_batch_service.py` |
| 批量回收(未提交) | `server/background/server_batch_reconcile.py` |
| 422 中文 | `server/utils/validation_errors_zh.py` |
| 未设路径前端 | `frontend/src/components/servers/ServerUnsetPathPanel.vue` · `ServersPage.vue` |
| Agent 安装 | `web/agent/install.sh` |
| 门控 | `deploy/pre_deploy_check.sh`7/7 |
| 部署 | `deploy/deploy-production.sh` |
---
## Master Backlog 索引(132 条 · 2026-06-08 盘点)
> 新会话接某编号时说「做 #N」即可。
### 一、运维可靠性(17
1. server_batch 僵尸任务回收(例 #20 ☑~ **(本地已实现,待部署)**
2. server_batch 启动 stuck 扫描 ☑~ **(同上)**
3. sync_logs 30 天自动 purge ☑
4. Agent 401 停循环(A-05 ☑~
5. upgrade-agent 与 install.sh 对齐(D-01
6. 生产复核 `push_schedules.target_path` 列(A-02 ~
7. 各子机同步 agent.pyA-05 依赖) ☐
### 二、对齐计划 A 部署点验(8–12)
8. A-01 持续部署 ☑ · 9. A-02 ~ · 10. A-03 脚本库点验 ~ · 11. A-04 调度点验 ~ · 12. A-05 同 #4
### 三、14 页缺口 B1319
13. B-01 Commands 推送日志 Tab ☑~ · 14. B-02 Dashboard 24h 趋势 ☐ · 15. B-03 Files 树形侧栏 ☐
16. B-04 CSV 模板 ☑~ · 17. B-05 SSOT 扩写 ☑ · 18. B-06 Settings Agent 指引 ☐ · 19. WebSSH 重连生产验证 ~
### 四、API 无 UI C2023
20. C-01 资产管理页 ☐ · 21. C-02 Sync 配置 UI ☐ · 22. C-03 Sync 批量命令 ☐ · 23. C-04 Sync SFTP ☐
### 五、产品 D2428
24. D-01 同 #5 · 25. D-02 宝塔监控 ☐ · 26. D-03 mTLS ☐ · 27. D-04 搜索增强 ☐ · 28. D-05 凭据轮询 E2E ☐
### 六、验收 E2950
29. E-01 local_verify 401 ☐ · 30. E-02 Playwright 15 绿 ☐ · 31. E-03 L5 清单 ☐
3235. E-04E-07 心跳/WS/守护/install E2E ☐ · 36. E-08 ☑ · 3741. POSIX-1418 ☐
4246. ENH-0104/08 ☐ · 4750. 文档 SSOT E-1922#47/#50 部分 ☑)
### 七、Master FM/T5181
51. A-09 local_integration_smoke ☐ · 52. Phase C 浏览器 L1L4 ☐ · 5374. FM-L1L4 文件管理生产验收 ☐
7577. ENH-0507 文档回写 ☐ · 78. T-04 Telegram ☐ · 79. T-06 同 #31 · 80. T-07 WebSSH ~ · 81. T-08 CSV ☑
### 八、Handoff 可选(8286
82. 全选筛选结果 ☑ · 83. 失败分组 ☑ · 84. 失败导出 CSV ☐ · 85. 归档旧 handoff ☐ · 86. 其它表 sort 扫尾 ☐
### 九、用户终验(8795
8790. WebSSH/推送/Telegram/kill 自愈 ☐ · 9195. 近期功能浏览器终验 ~
### 十、L5 清单(96125
96125. `production-verification-checklist.md` 逐项 ☐(#122 /health ☑)
### 十一、仓库卫生(126–132)
126132. handoff/alignment 过期、verification 未提交、assets 残留、gate_log、.cursor ☐
### 十二、不做 / 风险接受(133–137)
133135. 已否决功能 · 136137. ADR-011 / global API_KEY 风险接受
---
## 常用命令
```bash
cd ~/桌面/Nexus # 或 $NEXUS_ROOT
docker compose up -d mysql redis
bash scripts/start-dev.sh # API :8600
bash scripts/local_verify.sh
cd frontend && npm run dev # :3000/app/
bash deploy/pre_deploy_check.sh
bash scripts/git-push.sh
export NEXUS_SSH="azureuser@20.24.218.235"
export NEXUS_SSH_KEY="/home/r/下载/Telegram Desktop/nz-admin.pem"
bash deploy/deploy-production.sh
```
---
## 铁律
- 单 Agent;禁止虚拟部门
- 完美实现:设计→技术文档→代码→测试→changelog→(批准)部署
- 测试 Agent 执行;用户只做终验(`docs/reports/2026-06-01-final-acceptance-checklist.md`
---
## 变更记录
| 日期 | 变更 |
|------|------|
| 2026-06-08 初版 | 3f995a7 摘要 |
| 2026-06-08 中 | 更新至 85ecd1f132 条 Master Backlog |
| 2026-06-08 末 | 更新至 a401ea5;记录 server_ids/设置 422 修复;server_batch reconcile 未提交待办 |