docs: 生产浏览器验收 — SPA/WebSSH/health_monitor

详见 docs/reports/2026-06-01-browser-verification.md;批量条与 Telegram/Push/kill 留维护窗口或人工确认。
This commit is contained in:
Your Name
2026-06-01 14:20:45 +08:00
parent 24b4439b2b
commit cc2dad7f31
5 changed files with 99 additions and 7 deletions
@@ -0,0 +1,38 @@
# Changelog — 生产浏览器验收(续)
**日期**: 2026-06-01
**类型**: 验收 / 文档
## 摘要
继续单负责人执行计划:对 `https://api.synaglobal.vip` 做 SPA 与 WebSSH 浏览器抽测,并确认 Redis 心跳与 Layer3 健康检查 cron。
## 动机
完成上轮未做的「浏览器验证」与部分 L5 抽测项,留下可复查证据。
## 涉及文件
- `docs/reports/2026-06-01-browser-verification.md`(新)
- `docs/reports/2026-06-01-production-verification.md` — 勾选浏览器项
- `docs/handoff-2026-06-01.md` §八 — 验收状态更新
- `docs/design/plans/2026-06-01-single-owner-execution.md` — 第二阶段 B1B5
## 验证结果(摘要)
| 项 | 结果 |
|----|------|
| 仪表盘 / 服务器 / 告警 / 推送 | ✅ |
| WebSSH server_id=8 | ✅ 已连接 ~228ms |
| Redis `heartbeat:*` | 1 条 |
| health_monitor cron | ✅ 每分钟 |
| 批量选择条自动化 | ⚠️ 需人工 30 秒 |
| Telegram / 正式 Push / kill 守护 | 未执行(见报告) |
## 迁移 / 重启
无。
## 回滚
仅文档,git revert 即可。
@@ -22,6 +22,16 @@
3. 生产 `tests/test_api.py`(若环境允许)
4. 记录 Redis/MySQL/WebSSH/告警/守护 — 能 SSH 检查的写结果,需 UI 的标「待用户抽测」
## 第二阶段(2026-06-01 续)— 浏览器验收
| # | 任务 | 状态 |
|---|------|------|
| B1 | 仪表盘 / 服务器 / 告警 / 推送 页面 | ✅ |
| B2 | WebSSH `terminal?server_id=8` | ✅ 已连接 |
| B3 | Redis heartbeat + health_monitor cron | ✅ |
| B4 | 批量选择条 | ⚠️ 人工确认 |
| B5 | Telegram / Push / kill 守护 | ⏸ 见 browser-verification 报告 |
## 回滚
- T2`git reset --hard <prev>` + `supervisorctl restart nexus`
+6 -4
View File
@@ -313,10 +313,12 @@ MCP deploy 工具自动执行门控,任何一门不过返回 🚫 DEPLOY BLOCK
| P2 | 422 调试 handler 是否保留 | server/main.py | 若日志已稳定可改为仅 4xx 结构化响应 |
| P2 | 壁纸旧端点缓存 | LoginPage.vue | 强刷 `/app/` 或清站点数据 |
| UX | 终端命令栏高亮对齐 | TerminalPage.vue | 多分辨率抽测 |
| **验收** | 告警 Telegram + WS 端到端 | — | 需故意超阈值或模拟 |
| **验收** | WebSSH 长会话 + resize | terminal | 浏览器抽测 |
| **验收** | Sync 推送 2 台试跑 | push | 业务抽测 |
| **验收** | 三层守护 kill 测试 | deploy/ | 维护窗口执行 |
| **验收** | 告警 Telegram + WS 端到端 | — | 未触发;见 `docs/reports/2026-06-01-browser-verification.md` |
| **验收** | WebSSH 连接 | terminal | ✅ 2026-06-01 `server_id=8` 已连接;resize/长会话待抽测 |
| **验收** | SPA 主要页面 | — | ✅ 仪表盘/服务器/告警/推送 |
| **验收** | 批量选择条 UI | ServersPage.vue | 自动化未触发 v-model**人工勾选 2 台确认** |
| **验收** | Sync 推送 2 台试跑 | push | 未执行正式推送(防误操作) |
| **验收** | 三层守护 kill 测试 | deploy/ | 维护窗口;cron 已确认存在 |
| **运维** | 生产 pytest | tests/test_api.py | 服务器无 pytest 模块时用 WSL/CI 25/25 为准 |
---
@@ -0,0 +1,30 @@
# 浏览器验收记录 — 2026-06-01(续)
> 站点:https://api.synaglobal.vip/app/
> 会话:已有 admin 登录态(未重新测登录页)
## 结果摘要
| 项 | 结果 | 说明 |
|----|------|------|
| 仪表盘 `#/` | ✅ | 8 台服务器统计、列表、侧栏导航正常 |
| 服务器 `#/servers` | ✅ | 表格、添加/导入/导出按钮可见 |
| 批量选择条「已选择 N 台」 | ⚠️ | 自动化点击 Vuetify `v-selection-control` 未触发 `selectedItems`;**请人工点选 2 行确认**(历史已验 `normalizeServerIds` |
| 告警中心 `#/alerts` | ✅ | 页面加载,类型/状态筛选器存在 |
| 推送 `#/push` | ✅ | 源/目标路径、预览/推送、服务器列表与同步模式 |
| WebSSH `#/terminal?server_id=8` | ✅ | xterm 存在,显示 **已连接**、延迟 ~228ms、「断开」按钮 |
| Redis 心跳 | ✅ | `heartbeat:*` key 数量 1(与面板「1 在线」一致) |
| Layer3 `health_monitor.sh` | ✅ | 脚本存在,root crontab 每分钟执行 |
| 告警 WS + Telegram | ⏸ | 需真实超阈值或测试钩子,未在本轮触发 |
| 实际 Push 2 台 | ⏸ | 避免误推生产文件,未点「推送」 |
| kill Python 三层守护 | ⏸ | **维护窗口**执行,不在本轮操作 |
## WebSSH 片段(DOM 文本)
- 服务器:机器人 / `66.154.115.131`
- 状态:**已连接**,计时器运行,终端输入框可聚焦
## 建议人工 30 秒确认
1. 服务器页勾选 2 台 → 出现「已选择 2 台服务器」+ 安装/升级 Agent 按钮
2. (可选)推送页选 2 台点「预览」,不执行正式推送
@@ -15,10 +15,22 @@
| MySQL | `SELECT 1` | ✅ ok |
| `test_api.py` | 生产机 | ⚠️ 无 `pytest` 模块;以 WSL/本地 CI 为准 |
## 待用户/维护窗口抽测
## 浏览器抽测(2026-06-01 续)
- [ ] WebSocket 告警 + Telegram 推送与恢复
- [ ] WebSSH 开终端、resize、断线
详见 `docs/reports/2026-06-01-browser-verification.md`
- [x] SPA 仪表盘 / 服务器 / 告警 / 推送 页面
- [x] WebSSH `server_id=8` 已连接
- [x] `health_monitor.sh` cron 已配置
- [ ] 批量选择条(自动化未触发 Vue `selectedItems`,建议人工 30 秒确认)
- [ ] 告警 Telegram 端到端
- [ ] Push 试跑(避免误操作未执行)
- [ ] kill Python 守护(维护窗口)
## 待维护窗口
- [ ] WebSocket 告警 + Telegram 推送与恢复(需超阈值或测试钩子)
- [ ] WebSSH resize / 长会话断线重连
- [ ] Push/Sync 选 2 台试跑
- [ ] kill Python → Supervisor 恢复;health_monitor 连续失败重启