From 6da5782ac7835db8a9b8de2f1e1cbe90d979141f Mon Sep 17 00:00:00 2001 From: hectorzhao Date: Thu, 27 Aug 2026 20:58:30 +0800 Subject: [PATCH] docs: record S57 production verification --- ...27_S57_UI_NUMBER_LIBRARY_RELEASE_REPORT.md | 59 +++++++++++++++++++ ...NCE_REMEDIATION_IMPLEMENTATION_20260827.md | 4 +- 2 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 docs/20260827_S57_UI_NUMBER_LIBRARY_RELEASE_REPORT.md diff --git a/docs/20260827_S57_UI_NUMBER_LIBRARY_RELEASE_REPORT.md b/docs/20260827_S57_UI_NUMBER_LIBRARY_RELEASE_REPORT.md new file mode 100644 index 0000000..c05548a --- /dev/null +++ b/docs/20260827_S57_UI_NUMBER_LIBRARY_RELEASE_REPORT.md @@ -0,0 +1,59 @@ +# S57 UI、查询与号码库发布报告(2026-08-27) + +## 发布结论 + +- 代码提交:`c36709f366422b9dc5d37156d42d6e2f78bea051` +- B 发布目录:`/opt/lisglosips/releases/s57-ui-number-library-20260827T124730Z` +- 配置/回滚备份:`/var/backups/lisglosips-s57/20260827T124730Z` +- 数据备份:`/data/backups/mysql/20260827T124730Z`、`/data/backups/redis/20260827T124730Z` +- 发布前检查:MySQL、Redis、Nginx、API、CDR Worker、录音 Worker、HEP、Prometheus、Grafana 均为 active,API ready 与 Nginx 配置检查通过。 +- 第一次切换因发布脚本误检查不存在的 `/health` 路径得到 404,自动回滚成功;修正为 `/health/ready` 后重新发布并通过,没有遗留半切换状态。 + +## 生产数据结果 + +| 数据表 | 生产数量 | +| --- | ---: | +| 行政城市 | 371 | +| 手机前 7 位号段 | 517,258 | +| 城市区号 | 321 | +| 运营商前三位规则 | 70 | + +- 数据文件上传前后 SHA256 一致。 +- 生产干跑:`phone.dat` 2502 版本,有效号段 517,258,行政区未匹配 0。 +- 导入器拒绝向非空号码库重复写入,并在导入前由发布流程完成 MySQL/Redis 备份。 +- Prisma 并行计数和首屏 25 条直查共 85 ms。 + +## 生产接口证据 + +以下耗时来自 B 的 API 完成日志: + +| 接口 | 状态 | 服务端耗时 | +| --- | ---: | ---: | +| `/api/v2/active-calls` | 200 | 首次 46 ms,后续 4-6 ms | +| `/api/v2/number-library/cities?take=25&skip=0` | 200 | 9 ms | +| `/api/v2/number-library/phone-segments?take=25&skip=0` | 200 | 74 ms | +| `/api/v2/cdrs` 最近一周 | 200 | 7 ms | +| `/api/v2/recordings` 最近一周 | 200 | 5 ms | +| `/api/v2/audit-logs` 最近一周 | 200 | 5 ms | + +当前通话页面已显示“控制面:就绪”,空闲时返回 0 路真实 dialog,不再出现 OpenSIPS control plane unavailable。 + +## 浏览器验收 + +- 登录态下 Dashboard 只保留两个趋势模块,“客户消费 TOP 10”和“失败响应码分布”已删除。 +- 客户网关页标题和列表按内容高度从顶部连续排列,截图所示大面积空白消失。 +- 号码库首屏 25 条,显示 1-25 / 371;手机号码库显示 1-25 / 517,258,上一页/下一页状态正确。 +- 话单、质检、操作日志日期均默认 `2026-08-21` 至 `2026-08-27`;请求转换为上海时区自然日对应的 UTC 起止值。 +- 页面 DOM 均有真实业务内容,没有框架错误覆盖层;关键请求均在 API 日志中返回 200。 + +## 本地质量门禁 + +- ESLint:通过。 +- TypeScript project build/typecheck:通过。 +- Web production build:通过。 +- Vitest:27 个测试文件、98 个测试全部通过。 +- 号码库导入器本地与生产干跑:均为未匹配 0。 + +## 回滚 + +如需回滚代码和 API 配置:恢复 `/var/backups/lisglosips-s57/20260827T124730Z/api.env`,将 `/opt/lisglosips/current` 指回该目录内 `previous-release` 记录的版本,并重启 `lisglosips@api`。号码库数据回滚应使用本次发布前 MySQL 备份,不应直接无条件清空四张表。 diff --git a/docs/UI_PERFORMANCE_REMEDIATION_IMPLEMENTATION_20260827.md b/docs/UI_PERFORMANCE_REMEDIATION_IMPLEMENTATION_20260827.md index d12a4b3..bdf46e1 100644 --- a/docs/UI_PERFORMANCE_REMEDIATION_IMPLEMENTATION_20260827.md +++ b/docs/UI_PERFORMANCE_REMEDIATION_IMPLEMENTATION_20260827.md @@ -43,6 +43,6 @@ - ESLint:通过。 - TypeScript project build/typecheck:通过。 -- Vitest:26 个测试文件、95 个测试全部通过。 +- Vitest:27 个测试文件、98 个测试全部通过。 - Web production build:通过,生成 `dist/index.html`、CSS 和 JS hash 产物。 -- 浏览器验收:本地 Vite 页面 URL、标题、非空 DOM、登录页截图和浏览器 console 已检查,未发现 console warning/error 或框架错误覆盖层。本机未配置 API 所需的 MySQL/Redis/鉴权环境,因此登录页按预期显示本地 API 500;已登录 Dashboard、话单和 2 秒延迟交互仍需在接入可用后端后做最终浏览器回归。 +- 浏览器验收:已在 B 的真实登录态逐页检查 Dashboard、客户网关、当前通话、号码库、话单、质检和操作日志;生产结果和接口耗时见 `20260827_S57_UI_NUMBER_LIBRARY_RELEASE_REPORT.md`。