feat(admin,rvw,asl,frontend): Batch import redesign + RVW parallel skills + UI improvements

Backend:
- Redesign batch user import: add autoInheritModules param, users auto-inherit tenant modules when true
- Add module validation: reject modules not subscribed by the tenant
- Soften department validation: skip instead of fail when department name not found
- Fix RVW skill status semantics: review findings (ERROR issues) no longer mark skill as error
- Add parallel execution support to SkillExecutor via parallelGroup
- Configure Editorial + Methodology skills to run in parallel (~240s -> ~130s)
- Update legacy bridge error message to user-friendly text

Frontend:
- Redesign ImportUserModal: 4-step flow (select tenant -> upload -> preview -> result)
- Simplify import template: remove tenant code and module columns
- Show tenant subscribed modules before import with auto-inherit option
- Fix isLegacyEmbed modules bypassing RouteGuard and TopNavigation permission checks
- Hide ASL fulltext screening (step 3), renumber subsequent nav items
- Add ExtractionWorkbenchGuide page when no taskId provided
- Update legacy system error message to network-friendly text

Docs:
- Update deployment changelog with BE-9, FE-11 entries

Made-with: Cursor
This commit is contained in:
2026-03-05 22:04:36 +08:00
parent 0677d42345
commit 91ae80888e
19 changed files with 576 additions and 274 deletions

View File

@@ -1,7 +1,7 @@
# 🚀 AI临床研究平台 - 阿里云SAE最新真实状态记录
> **文档用途**记录阿里云SAE服务器最新真实状态 + 每次部署记录
> **最后更新**2026-03-02
> **最后更新**2026-03-05
> **维护人员**:开发团队
> **说明**本文档准确记录SAE上所有应用的当前状态包括内网地址、镜像版本、用户名密码等关键资源信息
@@ -11,10 +11,10 @@
| 服务名称 | 部署状态 | 镜像版本 | 部署位置 | 最后更新时间 |
|---------|---------|---------|---------|-------------|
| **PostgreSQL数据库** | ✅ 运行中 | PostgreSQL 15 + 插件 | RDS | 2026-03-02 |
| **前端Nginx服务** | ✅ 运行中 | **v2.0** | SAE | 2026-03-02 |
| **PostgreSQL数据库** | ✅ 运行中 | PostgreSQL 15 + 插件 | RDS | 2026-03-05 |
| **前端Nginx服务** | ✅ 运行中 | **v2.5** | SAE | 2026-03-05 |
| **Python微服务** | ✅ 运行中 | **v1.2** | SAE | 2026-02-27 |
| **Node.js后端** | ✅ 运行中 | **v2.4** | SAE | 2026-03-02 |
| **Node.js后端** | ✅ 运行中 | **v2.8** | SAE | 2026-03-05 |
| **R统计引擎** | ✅ 运行中 | **v1.0.1** | SAE | 2026-02-27 |
| **Dify AI服务** | ⚠️ 已废弃 | - | - | 使用pgvector替代 |
@@ -37,8 +37,8 @@
|---------|---------|---------|---------|
| **python-extraction** | **v1.2** | ~1.1GB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/python-extraction:v1.2` |
| **ssa-r-statistics** | **v1.0.1** | ~1.8GB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ssa-r-statistics:v1.0.1` |
| **ai-clinical_frontend-nginx** | **v2.0** | ~50MB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v2.0` |
| **backend-service** | **v2.4** | ~838MB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v2.4` |
| **ai-clinical_frontend-nginx** | **v2.5** | ~50MB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v2.5` |
| **backend-service** | **v2.8** | ~838MB | `crpi-cd5ij4pjt65mweeo-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v2.8` |
---
@@ -129,8 +129,8 @@ postgresql://airesearch:Xibahe%40fengzhibo117@pgm-2zex1m2y3r23hdn5.pg.rds.aliyun
|---------|------|------|-------|------|---------|---------|
| **r-statistics-test** | ✅ 运行中 | 1核2GB | 1 | 8080 | `http://172.17.173.101:8080` | **v1.0.1** |
| **python-extraction-test** | ✅ 运行中 | **2核4GB** | 1 | 8000 | `http://172.17.173.102:8000` | **v1.2** |
| **nodejs-backend-test** | ✅ 运行中 | **2核4GB** | 1 | 3001 | `http://172.17.197.32:3001` | **v2.4** |
| **frontend-nginx-service** | ✅ 运行中 | 0.5核1GB | 1 | 80 | `http://172.17.197.32:80` | **v2.0** |
| **nodejs-backend-test** | ✅ 运行中 | **2核4GB** | 1 | 3001 | `http://172.17.173.106:3001` | **v2.8** |
| **frontend-nginx-service** | ✅ 运行中 | 0.5核1GB | 1 | 80 | `http://172.17.173.107:80` | **v2.5** |
**环境变量配置**
@@ -191,7 +191,7 @@ LEGACY_MYSQL_DATABASE=xzyx_online
**前端Nginxfrontend-nginx-service**
```bash
BACKEND_SERVICE_HOST=172.17.197.32
BACKEND_SERVICE_HOST=172.17.173.106
BACKEND_SERVICE_PORT=3001
```
@@ -259,27 +259,24 @@ TEMP_DIR=/tmp/extraction_service
### 3.2 前端Nginx服务
**当前部署版本**v2.0
**当前部署版本**v2.4
**镜像信息**
- **仓库名称**`ai-clinical_frontend-nginx`
- **镜像版本**`v2.0` ✅(当前部署版本)
- **镜像版本**`v2.4` ✅(当前部署版本)
- **镜像大小**约50MB
- **基础镜像**`nginx:alpine`
- **构建时间**2026-03-02
- **镜像摘要**sha256:ad24ccde2c1cdf59c07af16a429ce6298ac42d28cd9df73276ab8b653e018d38
- **构建时间**2026-03-05
- **镜像摘要**sha256:6cb9e8be2bcd21fd8ccfe09dabdbb04d64c252fd9a5b5b3a55d5ba6fb52dcde1
**部署状态**
- ✅ 已成功部署到SAE2026-03-02
- ✅ 服务运行正常内网地址http://172.17.197.32:80
- ✅ 已成功部署到SAE2026-03-05
- ✅ 服务运行正常内网地址http://172.17.173.107:80
- ✅ 企业微信域名验证文件已部署WW_verify_YnhsQBwI0ARnNoG0.txt
**v2.0版本更新内容**
-IIT V3.1 Dashboard 健康度评分 + D1-D7 维度条 + 热力图
- ✅ GCP 报表重构为 5 Tab执行摘要 + D1/D2/D3D4/D6 四张报表)
- ✅ 新增 GCP 组件EligibilityTable / CompletenessTable / EqueryLogTable / DeviationLogTable
- ✅ 管理端 QcDetailDrawer / RiskHeatmap / 方案偏离弹窗升级
- ⚠️ 部署后内网地址变更172.17.197.31 → 172.17.197.32
**v2.5版本更新内容**
-前端 bug 修复和 UI 优化基于测试反馈0305 三次迭代)
- ⚠️ 部署后内网地址变更172.17.173.105 → 172.17.173.107
**Git文件结构**
```
@@ -296,16 +293,16 @@ AIclinicalresearch/frontend-v2/
### 3.3 Node.js后端服务
**当前部署版本**v2.4
**当前部署版本**v2.6
**镜像信息**
- **仓库名称**`backend-service`
- **镜像版本**`v2.4` ✅(已部署)
- **镜像版本**`v2.6` ✅(已部署)
- **镜像大小**~838MB
- **基础镜像**`node:alpine`
- **构建时间**2026-03-02
- **构建时间**2026-03-05
- **构建策略**改进版方案B本地编译+Docker打包
- **镜像摘要**sha256:7848b1b590c138a629fcf9036204e8a2663fc653d2347f22b2928df2874a4233
- **镜像摘要**sha256:45886ffd90edbaf6b9a57c1938f14b076fdae175b5d8e53caebabdd8c7ef8b7c
**技术架构**
- **Node.js版本**22.x
@@ -316,8 +313,8 @@ AIclinicalresearch/frontend-v2/
- **缓存系统**PostgreSQL替代Redis
**部署状态**
- ✅ 已成功部署到SAE2026-03-02
- ✅ 服务运行正常内网地址http://172.17.197.32:3001
- ✅ 已成功部署到SAE2026-03-05
- ✅ 服务运行正常内网地址http://172.17.173.106:3001
- ✅ 健康检查通过
**Git文件结构**
@@ -367,6 +364,53 @@ AIclinicalresearch/extraction_service/
## 🔄 四、部署历史记录
### 2026-03-050305部署 - 登录踢人 + 权限体系升级 + SSA双通道 + UI优化
#### 部署概览
- **部署时间**2026-03-05
- **部署范围**数据库数据更新1项 + Node.js后端 + 前端Nginx
- **主要变更**登录踢人机制、模块权限体系升级、SSA Agent双通道、前端UI精简
#### 数据库数据更新1项
- ✅ DB-1modules 表 seed 更新(新增 RM、AIA_PROTOCOLIIT→CRA质控
- ⏭️ DB-2RVW Prompt 更新(用户指定不执行)
- ⏭️ DB-3SSA 双通道表结构(待后续部署)
#### Node.js后端更新v2.4 → v2.6
- ✅ 登录踢人机制同一手机号只能一人同时在线JWT tokenVersion
- ✅ 模块权限一致性修复 + 校验放宽 + user_modules 独立生效
- ✅ SSA 双通道架构Agent 模式 4 服务 + ChatHandler 分流
- ✅ 批量导入用户增加 autoInheritModules + 模块校验
- ✅ 镜像构建推送:`backend-service:v2.6`digest: sha256:17dc3b3b...
- ✅ SAE部署成功内网地址变更`172.17.197.32``172.17.197.36`
#### 前端Nginx更新v2.0 → v2.3
- ✅ ASL 模块 UI 精简 + 默认进入智能文献检索
- ✅ AIA Protocol Agent 按权限动态显示 + 链接修正
- ✅ 首页重定向到 `/ai-qa` + PKB 隐藏科室选择
- ✅ 被踢出提示 + 运营端模块权限弹窗 + 批量导入重构
- ✅ 镜像构建推送:`ai-clinical_frontend-nginx:v2.3`digest: sha256:db031053...
- ✅ SAE部署成功内网地址变更`172.17.197.32``172.17.173.104`
#### 环境变量同步
-`frontend-nginx-service``BACKEND_SERVICE_HOST` 更新为 `172.17.197.36`
- CLB 由阿里云自动更新,无需手动操作
#### 二次热修部署(同日)
- ✅ SSA 双通道数据库迁移ssa_sessions 新增 execution_mode + ssa_agent_executions 表
- ✅ 前端/后端 bug 修复(基于测试反馈)
- ✅ 后端 v2.6 → v2.7 → **v2.8**,前端 v2.3 → v2.4 → **v2.5**
- ✅ 后端内网地址最终:`172.17.173.106`
- ✅ 前端内网地址最终:`172.17.173.107`
#### 文档产出
-`0305部署/01-部署完成总结.md`
-`00-阿里云SAE最新真实状态记录.md`(更新)
-`01-日常更新操作手册.md`(更新)
-`03-待部署变更清单.md`(清零移入历史)
---
### 2026-03-020302部署 - 数据库迁移6个 + IIT V3.1 QC引擎全面升级
#### 部署概览
@@ -637,5 +681,5 @@ AIclinicalresearch/extraction_service/
---
> **提示**本文档记录SAE服务器的最新真实状态每次部署后必须更新
> **最后更新**2026-03-02
> **当前版本**前端v2.0 | 后端v2.4 | Python v1.2 | R统计v1.0.1 | PostgreSQL 15
> **最后更新**2026-03-05
> **当前版本**前端v2.5 | 后端v2.8 | Python v1.2 | R统计v1.0.1 | PostgreSQL 15

View File

@@ -1,7 +1,7 @@
# 日常更新操作手册
> 版本: v2.2补充 0302 部署经验
> 更新日期: 2026-03-02
> 版本: v2.40305 二次热修后更新
> 更新日期: 2026-03-05
> 适用: 日常代码更新、功能迭代、配置变更
---
@@ -27,7 +27,7 @@ docker login --username=gofeng117@163.com --password=fengzhibo117 crpi-cd5ij4pjt
## 2. Node.js 后端更新(~25 分钟)
**当前版本**: v2.4 → 下个版本: v2.5
**当前版本**: v2.8 → 下个版本: v2.9
### 2.1 构建
@@ -39,7 +39,7 @@ npm run build
# 或: npx tsc --noCheck
# 构建 Docker 镜像
docker build -t backend-service:v2.5 .
docker build -t backend-service:v2.9 .
```
> **0227 经验**: `tsc` 不会拷贝 `.json` 配置文件Dockerfile 中已有 `COPY src/modules/ssa/config/*.json` 等补丁步骤。如新模块有 JSON 配置文件需要确认 Dockerfile 覆盖到。
@@ -47,9 +47,9 @@ docker build -t backend-service:v2.5 .
### 2.2 推送
```powershell
docker tag backend-service:v2.5 crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v2.5
docker tag backend-service:v2.9 crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v2.9
docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v2.5
docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v2.9
```
推送约 10 分钟(~840MB看到 `digest: sha256:...` 表示成功。
@@ -57,7 +57,7 @@ docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinica
### 2.3 SAE 部署
1. SAE 控制台 → `nodejs-backend-test` → 部署应用
2. 选择镜像 `backend-service:v2.5`(与上方构建版本一致)
2. 选择镜像 `backend-service:v2.9`(与上方构建版本一致)
3. 确认部署,等待 5-8 分钟
### 2.4 验证
@@ -75,14 +75,14 @@ docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinica
## 3. 前端 Nginx 更新(~15 分钟)
**当前版本**: v2.0 → 下个版本: v2.1
**当前版本**: v2.5 → 下个版本: v2.6
### 3.1 构建
```powershell
cd D:\MyCursor\AIclinicalresearch\frontend-v2
docker build -t ai-clinical_frontend-nginx:v2.1 .
docker build -t ai-clinical_frontend-nginx:v2.6 .
```
构建约 5 分钟(含 React 编译)。
@@ -90,9 +90,9 @@ docker build -t ai-clinical_frontend-nginx:v2.1 .
### 3.2 推送
```powershell
docker tag ai-clinical_frontend-nginx:v2.1 crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v2.1
docker tag ai-clinical_frontend-nginx:v2.6 crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v2.6
docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v2.1
docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/ai-clinical_frontend-nginx:v2.6
```
推送约 2 分钟(~50MB
@@ -100,7 +100,7 @@ docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinica
### 3.3 SAE 部署
1. SAE 控制台 → `frontend-nginx-service` → 部署应用
2. 选择镜像版本 `v2.1`(与上方构建版本一致)
2. 选择镜像版本 `v2.6`(与上方构建版本一致)
3. **检查环境变量**: `BACKEND_SERVICE_HOST` 指向最新后端 IP
### 3.4 验证

View File

@@ -3,7 +3,7 @@
> **用途**: 开发过程中实时记录所有待部署的变更,下次部署时按此清单逐项执行
> **维护规则**: 每次修改 Schema / 新增依赖 / 改配置时,**立即**在此文档追加记录
> **Cursor Rule**: `.cursor/rules/deployment-change-tracking.mdc` 会自动提醒
> **最后清零**: 2026-03-020302 部署完成后清零)
> **最后清零**: 2026-03-050305 部署完成后清零)
---
@@ -15,37 +15,19 @@
| # | 变更内容 | 迁移文件 | 优先级 | 备注 |
|---|---------|---------|--------|------|
| DB-1 | modules 表新增 `AIA_PROTOCOL``RM` 模块注册IIT 名称改为「CRA质控」 | 无(运行 seed 脚本) | 高 | 运行 `node scripts/seed-modules.js`upsert可重复执行 |
| DB-2 | RVW Prompt 更新:期刊名称修正为「中华脑血管病杂志」 | 无(重新运行迁移脚本或后台编辑) | 高 | 运行 `npx tsx scripts/migrate-rvw-prompts.ts` 或在 `/admin/prompts/RVW_EDITORIAL` 手动编辑 |
| DB-3 | SSA 双通道ssa_sessions 新增 execution_mode 列 + 新建 ssa_agent_executions 表 | `manual_migrations/20260223_add_execution_mode_and_agent_tables.sql` | 中 | 手动执行 SQL 或通过 Prisma 迁移 |
| — | *暂无* | | | |
### 后端变更 (Node.js)
| # | 变更内容 | 涉及文件 | 需要操作 | 备注 |
|---|---------|---------|---------|------|
| BE-1 | 登录踢人机制:同一手机号只能一人同时在线 | `auth.service.ts`, `auth.middleware.ts`, `jwt.service.ts` | 重新构建镜像 | JWT 增加 tokenVersion登录时递增版本号存入缓存认证中间件校验版本号 |
| BE-2 | 模块权限一致性修复:`/me/modules` API 现在尊重 user_modules 精细化配置 | `module.service.ts` | 重新构建镜像 | 之前 `/me/modules` 只看 tenant_modules现在与登录逻辑一致 |
| BE-3 | getModuleName 补充 RM、AIA_PROTOCOL、IIT 名称修正 | `userService.ts` | 重新构建镜像 | IIT Manager → CRA质控 |
| BE-4 | RVW 稿约 Prompt 源文件修正 | `prompts/review_editorial_system.txt` | 重新构建镜像 | 中华医学超声杂志 → 中华脑血管病杂志 |
| BE-5 | seed 数据:内部租户补充 RM、AIA_PROTOCOL 模块 | `prisma/seed.ts` | 仅影响新环境初始化 | — |
| BE-6 | 用户模块配置校验放宽:不再限制必须在租户订阅范围内 | `userService.ts` | 重新构建镜像 | 校验改为「模块代码必须在 modules 表中存在」,支持给用户单独开通功能模块 |
| BE-7 | 用户独立模块生效user_modules 中的模块即使租户未订阅也纳入权限 | `module.service.ts` | 重新构建镜像 | 如 AIA_PROTOCOL 可单独配给用户 |
| BE-8 | SSA 双通道架构Agent 模式 4 服务 + ChatHandler 分流 + Session PATCH API | `Agent*.ts`, `CodeRunnerService.ts`, `ChatHandlerService.ts`, `chat.routes.ts`, `session.routes.ts` | 重新构建镜像 | 含 PlannerAgent / CoderAgent / ReviewerAgent / CodeRunner |
| — | *暂无* | | | |
### 前端变更
| # | 变更内容 | 涉及文件 | 需要操作 | 备注 |
|---|---------|---------|---------|------|
| FE-1 | ASL 模块:隐藏数据源/年限/篇数,默认 PubMed | `SetupPanel.tsx` | 重新构建镜像 | 高级筛选面板全部隐藏 |
| FE-2 | ASL 模块:去掉「研究方案生成」「文献管理」,重新编号 1~6 | `ASLLayout.tsx` | 重新构建镜像 | — |
| FE-3 | ASL 模块:默认进入智能文献检索(不再是标题摘要初筛) | `asl/index.tsx` | 重新构建镜像 | 路由 index → research/deep |
| FE-4 | AIA 模块删除「已接入DeepSeek」和搜索框 | `AgentHub.tsx` | 重新构建镜像 | — |
| FE-5 | AIA 模块Protocol Agent 按用户模块权限动态显示 | `AgentHub.tsx`, `constants.ts` | 重新构建镜像 | 通过 `hasModule('AIA_PROTOCOL')` 判断,需 DB-1 配合 |
| FE-6 | AIA 模块:数据评价与预处理 / 智能统计分析链接修正 | `constants.ts` | 重新构建镜像 | `/dc``/research-management` |
| FE-7 | 首页重定向到 `/ai-qa`,不再显示模块卡片首页 | `App.tsx` | 重新构建镜像 | — |
| FE-8 | PKB 模块:创建知识库时隐藏科室选择,默认 General | `DashboardPage.tsx` | 重新构建镜像 | — |
| FE-9 | 被踢出时前端提示「账号已在其他设备登录」 | `axios.ts` | 重新构建镜像 | 配合 BE-1 |
| FE-10 | 运营端:用户模块权限弹窗显示所有模块(含 RM、AIA_PROTOCOL、CRA质控 | `ModulePermissionModal.tsx` | 重新构建镜像 | 未订阅模块标注"(未订阅)",不阻止配置 |
| — | *暂无* | | | |
### Python 微服务变更
@@ -71,17 +53,6 @@
|---|---------|------|------|
| — | *暂无* | | |
### 部署顺序建议
1. **后端先部署**:构建并推送新镜像(包含 BE-1 ~ BE-5
2. **运行数据库脚本**
- `node scripts/seed-modules.js`DB-1注册 AIA_PROTOCOL、RM 模块)
- `npx tsx scripts/migrate-rvw-prompts.ts`DB-2更新 RVW 稿约 Prompt
3. **前端部署**:构建并推送新镜像(包含 FE-1 ~ FE-9
4. **后台配置**
- 为内部测试人员所在租户开通 `AIA_PROTOCOL` 模块
- 确认 SSA/ST/IIT/RM 模块权限按需分配给对应租户和用户
---
## 记录模板
@@ -112,6 +83,22 @@
## 历史(已部署,仅供追溯)
### 0305 部署已清零项
| # | 变更内容 | 部署日期 | 结果 |
|---|---------|---------|------|
| DB | modules 表 seed 更新(新增 RM、AIA_PROTOCOLIIT→CRA质控 | 2026-03-05 | ✅ |
| BE | Node.js v2.4 → v2.6(登录踢人 + 权限体系 + SSA双通道 + 批量导入9 项变更) | 2026-03-05 | ✅ |
| FE | 前端 v2.0 → v2.3ASL/AIA/PKB UI优化 + 权限适配 + 批量导入重构11 项变更) | 2026-03-05 | ✅ |
| ENV | frontend-nginx-service: BACKEND_SERVICE_HOST → 172.17.197.36 | 2026-03-05 | ✅ |
| DB | SSA 双通道ssa_sessions 新增 execution_mode + ssa_agent_executions 表 | 2026-03-05 | ✅ 热修 |
| BE | Node.js v2.6 → v2.7bug 修复,基于测试反馈) | 2026-03-05 | ✅ 二次部署 |
| FE | 前端 v2.3 → v2.4bug 修复,基于测试反馈) | 2026-03-05 | ✅ 二次部署 |
| ENV | frontend-nginx-service: BACKEND_SERVICE_HOST → 172.17.197.37 | 2026-03-05 | ✅ 二次部署 |
| BE | Node.js v2.7 → v2.8bug 修复) | 2026-03-05 | ✅ 三次部署 |
| FE | 前端 v2.4 → v2.5bug 修复) | 2026-03-05 | ✅ 三次部署 |
| ENV | frontend-nginx-service: BACKEND_SERVICE_HOST → 172.17.173.106 | 2026-03-05 | ✅ 三次部署 |
### 0302 部署已清零项
| # | 变更内容 | 部署日期 | 结果 |