@@ -0,0 +1,117 @@
# 通道敏感词测试发布验收(2026-09-10)
## 交付与授权
应用提交`8e4bc5a20e4d98e96fc8572fabbac149ba12c8e6` 已本地提交,并于2026-09-10 16:03:45 CST部署测试机`100.93.204.60` ,基线`0c3f820cc92eeae8c996ac7d6d8d6db98e049ea7` 。只授权测试环境;未推送,未部署预生产。后续仅文档提交不需要再次切换应用。
[方案 ](channel-sensitive-words-plan-20260910.md )第一版已实现:敏感词页独立Tab及真实CRUD、通道候选排除、普通/微批同快照检查、运营端历史原因和无路由失败完成恢复。不增加Gateway/逐片复核;已读取规则快照的微批和已选路消息不追溯配置变更。现有全局词库和引流门禁保留。未修改线上词库、原通道/客户配置或余额,没有发送/补发/重投/重新入队短信。
## 版本和标准发布证据
- 标准计划`20260910T075122-8e4bc5a20e4d-0e177bfe` , planHash`ac7a5d317f948c75e2f7e4f73745e8f27ea3db51783cf88d9d485bd19bcc702e` ;完整执行plan→validate→preflight→prepare→deploy→verify→status→report。
- 应用包SHA256`0357647cf2a80154b7dbf37711b5745618436c8acfedaf12d8df178f2dec8494` ,历史基线CRLF格式通过逐文件摘要核验。相对线上28个文件变化:本轮26个文件,加前一文档提交的部署说明/引流验收文档,无额外运行代码。
- 发布工具`tools/release/` 仍未提交,toolHash`e0220a990afc6b3d0fb791dd71e9ab37d2687cbd0272ae05c2e0bffd0d06b5d9` ,不以应用提交冒称工具版本,也未夹带该草稿。
- 精确提交独立归档validate:前端28套139项、API69套745项,类型、格式、lint、CSS门禁通过。工作区production前端/API构建、安全和bundle门禁通过,lint既有28警告、0错误;未改Go。
- 本地证据`%TEMP%/cmpp-channel-sensitive-implementation-20260910/` ,发布工具证据`.local-data/releases/20260910T075122-8e4bc5a20e4d-0e177bfe/` ;计划、state、validation和报告均保留。
## 真实功能及环境验收
本地隔离PostgreSQL克隆`cmpp_qa_channel_words_1789025601486` 已应用新增迁移,真实管理服务验证参数、权限、唯一约束、并发version冲突、启停/删除恢复和审计;真实普通/100条微批排除A选B,全部命中返回专用原因,保留原文/历史快照且客户端无通道词详情。每批新增词库读1次、决策写1次,390~441ms含既有引流处理,不是实际发送TPS。真实失败SQL在注入费用释放失败后保留独立完成标记;费用与回执幂等/恢复分支有隔离单测。
本地production构建+真实Nest API/PG及隔离Redis认证,Edge三尺寸1600× 1000、1366× 768、390× 844完成新增/编辑/启停/软删除、独立筛选保持、显式关闭、刷新/跨路由、历史原因验收,pageerror=0。没有运行短信Worker/Gateway传输;夹具连接状态仅支持隔离路由验证。
部署后使用已有验收管理员正常登录,`GET /api/admin/dictionaries/channel-sensitive-words?page=1&pageSize=25` 返回200、items=[]、total=0;新表初始为空,未保存线上规则。三尺寸新Tab、显式关闭、刷新/跨路由及历史短信详情兼容通过;最终浏览器记录errors=[]。首次观察器因右上角和页脚两个“关闭”按钮同名发生strict selector错误,明确选择页脚按钮后通过,保留原失败记录`live-after.log` 及成功`live-after2.log` ,不是应用Bug或网络失败。
2026-09-10 16:05:30 CST标准verify回读:13项服务active; Gateway/security-agent未重启,7个相关Node服务按计划更新。API健康、102项迁移含`20260910160000_channel_sensitive_words` 及前端资源摘要通过;PostgreSQL/Redis/MinIO服务健康。三个Gateway Stream pending/lag均0;消息119509、提交130769,前后未变。受保护文件无变化,journal警告和应用日志新增errorMarkers均0, verify warnings=[]。工具的businessAcceptance仍显示“未执行”,原因是第一期没有业务页面验收写入入口;本节独立记录真实浏览器证据,不修改工具状态冒充自动验收。
## 恢复资产和时间
独立备份`/var/backups/cmpp-platform/20260910T075122-8e4bc5a20e4d-0e177bfe-attempt-1789027371632202403` ,包含PostgreSQL dump/目录、Redis RDB、原源码/产物及系统配置,清单摘要与可读性通过;未做实际恢复演练。应用回退会失去通道词过滤,回退不删新数据、不自动重投。
| 阶段 | 实测耗时 |
|---|---:|
| 精确提交本地validate | 约7分38秒,含锁定依赖安装和全量测试;与远端服务停机分开 |
| 远端prepare | 56.5秒 |
| 独立备份 | 35.2秒 |
| 停止受影响服务至启动恢复 | 17.0秒(含迁移及切换) |
| 其中迁移 | 1.2秒 |
| deploy内verify | 4.7秒 |
本地实施及真实集成/浏览器验证另行完成,不把整段工作会话称作部署耗时。远端发布各阶段无失败/重试;浏览器选择器修正与登录/观察时间单独留证,未精确拆分的浏览器总耗时不编造。
## 容量与资产保留
测试机只有`/dev/sda2` 系统盘,未挂载独立/data。发布前2026-09-10 15:48:29 CST、发布后2026-09-10 16:05:54 CST分别盘点47个根目录及其子目录,见inventory-before.json / inventory-after.json。df:可用10348167168→8812388352字节,减少1535778816字节(约1.54GB),使用率90%→92%。此增量含同时发生的正常数据/日志增长;目录实占不应重复相加。
| 分类/实际路径 | 发布前字节 | 发布后字节 | 增量字节 |
|---|---:|---:|---:|
| `/opt/cmpp-platform` | 1023991808 | 1025716224 | 1724416 |
| `/opt/cmpp-releases` | 6464483328 | 7495319552 | 1030836224 |
| `/var/backups/cmpp-platform` | 4564557824 | 5060235264 | 495677440 |
| `/var/log` | 946245632 | 946380800 | 135168 |
| `/home/hector/.npm` | 611745792 | 611745792 | 0 |
| `/root/.npm` | 622092288 | 622174208 | 81920 |
| `/var/lib/postgresql` | 2658304000 | 2658480128 | 176128 |
| `/var/lib/redis` | 225660928 | 225656832 | -4096 |
| `/var/lib/minio` | 563314688 | 563462144 | 147456 |
本次新增发布目录内资产(与当前程序同一文件系统;以下子目录已包含在上表,不再求和):
| 路径 | 字节 | 版本/保留理由 |
|---|---:|---|
| `/opt/cmpp-releases/20260910T075122-8e4bc5a20e4d-0e177bfe/previous-api-dist` | 4591616 | 0c3f820上一有效版本回退组件 |
| `/opt/cmpp-releases/20260910T075122-8e4bc5a20e4d-0e177bfe/previous-api-node_modules` | 586670080 | 0c3f820上一有效版本回退组件 |
| `/opt/cmpp-releases/20260910T075122-8e4bc5a20e4d-0e177bfe/candidate-1789027246523059732` | 395890688 | 8e4bc5a候选余留/证据,未清理 |
| `/opt/cmpp-releases/20260910T075122-8e4bc5a20e4d-0e177bfe/previous-source` | 2412544 | 0c3f820上一有效版本回退组件 |
| `/opt/cmpp-releases/20260910T075122-8e4bc5a20e4d-0e177bfe/previous-dist` | 36978688 | 0c3f820上一有效版本回退组件 |
| `/opt/cmpp-releases/20260910T075122-8e4bc5a20e4d-0e177bfe` | 1030836224 | 本次发布总目录,含源包/计划/日志/组件 |
源包保留在`/opt/cmpp-releases/20260910T075122-8e4bc5a20e4d-0e177bfe/source.tgz` ,绑定上述archiveHash;本机源包和基线包也保留。当前程序为8e4bc5a;上一有效0c3f820的previous-source、previous-dist、previous-api-dist、previous-api-node_modules和成套备份独立保留。candidate剩余依赖供故障分析,未把已切至live的组件重复算为候选。
所有历史旧版本、候选、备份、迁盘/冷副本、缓存和日志均未删除或迁盘;“当前+上一有效版本”的稳态目标仍未完成,第一期工具尚无治理入口。本次发布成功不等于资产治理完成;系统盘已有92%使用率,后续发布应重新预检余量,不能据本次余量自动授权清理。
以下为47个根目录盘点中的历史程序根目录保留清单;未知精确版本的目录不从名字猜测版本,均保留待治理。缓存/数据/日志已在上表列出:
| 历史路径 | 实占字节 | 标记核验 |
|---|---:|---|
| `/opt/cmpp-night-previous-20260907T230742` | 612507648 | 未取得独立部署标记;保留 |
| `/opt/cmpp-platform.previous-reportbatch-068b804-20260903T031400Z` | 988270592 | 068b8047ddbfbacf32b233b7b8cfb4e52fd04a6f |
| `/opt/cmpp-platform-previous-20260906-monitor-442dda7` | 623988736 | 442dda711d5c9f778f3f76fd6d8fd69f14414ce6 |
| `/opt/cmpp-platform.previous-wps-fe3c6e5-20260904T095352Z` | 988004352 | fe3c6e5b589cf475c611f5189e9243e657b5deac |
| `/opt/cmpp-platform-candidate-e4f93f7` | 14458880 | 0e3424c4a726f112385d0c7f3f3ebd90c127195b |
| `/opt/cmpp-platform.previous-css-6508295-20260905T0055` | 988237824 | 65082959c05c975eb7856ee281811a37e1fc284a |
| `/opt/cmpp-platform.previous-report-material-state-dc201bf9-20260903T050717Z` | 987893760 | dc201bf92ef039dd5beb3c16950e622c600f0026 |
| `/opt/cmpp-platform.previous-report-briefs-ad89e8f-20260902T1040Z` | 966549504 | ad89e8fed793857daf18ea6cebb995edfe3b74d4 |
| `/opt/cmpp-night-release-633ba59` | 985272320 | 未取得独立部署标记;保留 |
| `/opt/cmpp-platform-v5-stage-20260820T073310Z` | 10334208 | 未取得独立部署标记;保留 |
| `/opt/cmpp-platform.previous-p4-20260821T024737Z` | 838713344 | fcf6d3e6b439b20ad09f517f4fb11c8142758460+workspace.p4fix.b9de7aafef63 |
| `/opt/cmpp-platform.previous-drainage-20260828T093754Z` | 987291648 | 226527f1cef122e4dbd163da782485e8c0254dc5 |
| `/opt/cmpp-platform-frontend-247fee6` | 14061568 | 未取得独立部署标记;保留 |
| `/opt/cmpp-platform.previous-p2fix-20260820T110500Z` | 840720384 | 99fb346c125b0f620641562c50ad517a7682a10f+workspace.p2.56456e81d3be |
| `/opt/cmpp-platform-candidate-4c21072` | 42749952 | 未取得独立部署标记;保留 |
| `/opt/cmpp-v4-final-20260820T061323Z` | 7843840 | 未取得独立部署标记;保留 |
| `/opt/cmpp-platform.previous-schemeless-20260828T100204Z` | 987258880 | c68ac7a3db82d1bdb867260378df18f93cca0fd2 |
| `/opt/cmpp-platform.previous-p4-20260821T022833Z` | 835203072 | 52028b9bbdea20f0cd02efe792e91b558ba50be9+workspace.p3.7c14cd5f197a |
| `/opt/cmpp-night-candidate-20260907` | 982675456 | 未取得独立部署标记;保留 |
| `/opt/cmpp-platform.previous-channel-groups-20260905T231242-15a1f9d` | 1003593728 | 15a1f9d8eddd4f7233987fbf676a91f4e0bfab08 |
| `/opt/cmpp-platform.previous-p2-20260820T105600Z` | 1037434880 | 229a0b28fd8b84d910c359ff9ac442fc3e843cb4+workspace.p1submitpool.f50505ad9ee9 |
| `/opt/cmpp-platform-previous-step2-20260824T023615Z` | 835596288 | 90345fba22e3ae183e1edb4fdae718fb7cb2d963+workspace.p4progress.d82933c344ec |
| `/opt/cmpp-platform.previous-brief-default-7cb5dd3-20260903T0142Z` | 988180480 | 7cb5dd376e23ff0c8a1e3785ab376e432f2ebf6a |
| `/opt/cmpp-platform-backups` | 23341174784 | 未取得独立部署标记;保留 |
| `/opt/cmpp-platform.previous-high-frequency-final-cd82499-20260902T0851Z` | 987590656 | cd824999f3b604155e09fbad1f5c6258cfe1d918 |
| `/opt/cmpp-platform.failed-p4-20260821T030907Z` | 798334976 | 未取得独立部署标记;保留 |
| `/opt/cmpp-platform.previous-wps-async-41962e7-20260904T1500Z` | 988098560 | 41962e7a6e6cfd34b4313c8bf52d9345d37d8e10 |
| `/opt/cmpp-platform.candidate-report-record-fe3c6e5` | 11743232 | 未取得独立部署标记;保留 |
| `/opt/cmpp-platform.previous-p3-20260821T014803Z` | 835768320 | f4560479d3bcb9f1b1a6fc9b1b2664a997cdf851+workspace.p2fix.51553e0d5555 |
| `/opt/cmpp-v4-stage-20260820T052612Z` | 7843840 | 未取得独立部署标记;保留 |
| `/opt/cmpp-platform.previous-p4-20260821T030956Z` | 835121152 | 3c6f1beed1c4e6cbfc3822ae377de13317e48ded+workspace.p4cb.68ad7a6ef649 |
| `/opt/cmpp-platform.previous-import-review-20260904T122649Z` | 988098560 | bb435fb0ac1e7812fcdb59950a4b13757899ab39 |
| `/opt/cmpp-platform.previous-enterprise-signature-b0deef5` | 987676672 | b0deef5e6ebe6adbfe85591c53dedf11866880a0 |
| `/opt/cmpp-platform.previous-code-quality-20260828T040442Z` | 859160576 | d85ff8599955e8d217b923dd314690f4b18a4dd2 |
| `/opt/cmpp-platform.previous-sixfix-20260831T042224Z` | 987369472 | 5328bb09bf89170b4368407e896dbce9527a7b5c |
| `/opt/cmpp-platform.previous-code-quality-20260828T035307Z` | 1096306688 | 0b84370270c681dff3b15363f91b73566c6954b5 |
| `/opt/cmpp-platform.previous-p4-20260821T024137Z` | 835813376 | 487b5282a66ec11957a3edf4e9e93cc70cd76342+workspace.p4.ee5b0f3d0db8 |
## 未验证项
未发送短信,未做供应商物理Submit/客户CMPP回执ACK、真实费用释放流水对账或完整链路压测。测试环境只做配置页只读与空表验收,规则写入/路由组合在隔离PG完成,线上词库由用户配置。没有修改OpenWrt/网关;此前网络根因和预生产历史故障未宣称解决。没有推送或预生产部署。