# 待部署变更清单 > **用途**: 开发过程中实时记录所有待部署的变更,下次部署时按此清单逐项执行 > **维护规则**: 每次修改 Schema / 新增依赖 / 改配置时,**立即**在此文档追加记录 > **Cursor Rule**: `.cursor/rules/deployment-change-tracking.mdc` 会自动提醒 > **最后清零**: 2026-03-02(0302 部署完成后清零) --- ## 当前待部署变更 > ⚠️ 下次部署前,逐项检查此清单。部署完成后将已部署项移到「历史」区域并清零。 ### 数据库变更 | # | 变更内容 | 迁移文件 | 优先级 | 备注 | |---|---------|---------|--------|------| | 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 微服务变更 | # | 变更内容 | 涉及文件 | 需要操作 | 备注 | |---|---------|---------|---------|------| | — | *暂无* | | | | ### R 统计引擎变更 | # | 变更内容 | 涉及文件 | 需要操作 | 备注 | |---|---------|---------|---------|------| | R-1 | 新增 POST /api/v1/execute-code 端点(Agent 通道任意 R 代码执行) | `plumber.R` | 重新构建镜像 | 含超时 + 沙箱限制 | ### 环境变量 / 配置变更 | # | 变更内容 | 服务 | 变量名 | 备注 | |---|---------|------|--------|------| | — | *暂无* | | | | ### 基础设施变更 | # | 变更内容 | 范围 | 备注 | |---|---------|------|------| | — | *暂无* | | | ### 部署顺序建议 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 模块权限按需分配给对应租户和用户 --- ## 记录模板 开发时发现需要部署的变更,复制下方模板追加到对应区域: ```markdown | DB-N | 简述变更 | `迁移文件名` | 高/中/低 | 备注 | | BE-N | 简述变更 | `file.ts` | 重新构建镜像 | 备注 | | FE-N | 简述变更 | `Component.tsx` | 重新构建镜像 | 备注 | | PY-N | 简述变更 | `requirements-prod.txt` | 重新构建镜像 | 备注 | | R-N | 简述变更 | `tool.R` | 重新构建镜像 | 备注 | | ENV-N | 简述变更 | nodejs-backend-test | `VAR_NAME=value` | 备注 | ``` --- ## 历史(已部署,仅供追溯) ### 0302 部署已清零项 | # | 变更内容 | 部署日期 | 结果 | |---|---------|---------|------| | DB | 6 个 Prisma 迁移(SSA 类型对齐 + IIT RBAC + is_demo + V3.1 QC 三批) | 2026-03-02 | ✅ | | DB | 新建 qc_field_status、qc_event_status 2 张表(84 → 86) | 2026-03-02 | ✅ | | BE | Node.js v2.3 → v2.4(IIT V3.1 QC引擎全面升级,27 项变更) | 2026-03-02 | ✅ | | FE | 前端 v1.9 → v2.0(GCP 报表 + V3.1 前端,17 项变更) | 2026-03-02 | ✅ | | ENV | frontend-nginx-service: BACKEND_SERVICE_HOST → 172.17.197.32 | 2026-03-02 | ✅ | ### 0227 部署已清零项 | # | 变更内容 | 部署日期 | 结果 | |---|---------|---------|------| | DB | 5 个业务迁移 + 1 个 drift patch | 2026-02-27 | ✅ | | DB | SSA data_profile 列补充 | 2026-02-27 | ✅ 线上热修 | | DB | RVW review_tasks 8 列补充 | 2026-02-27 | ✅ 线上热修 | | BE | Node.js v1.7 → v2.2(SSA/ASL/RVW/IIT 全模块更新) | 2026-02-27 | ✅ | | BE | Dockerfile 增加 JSON 配置文件拷贝 | 2026-02-27 | ✅ | | FE | 前端 v1.3 → v1.8(react-markdown, nginx 配置更新) | 2026-02-27 | ✅ | | PY | Python v1.1 → v1.2(新增 scipy) | 2026-02-27 | ✅ | | R | R 统计引擎 v1.0.1 全新部署 | 2026-02-27 | ✅ | | ENV | nodejs-backend-test: R_STATISTICS_SERVICE_URL 等 | 2026-02-27 | ✅ | | ENV | frontend-nginx-service: BACKEND_SERVICE_HOST 更新 | 2026-02-27 | ✅ |