# Changelog 本文件记录源码变更、生产发布与验证结果;每项明确标注完成层级。时间均为中国标准时间(CST,UTC+8)。 ## Unreleased - **2026-07-25 15:44:45**:`main` 新增常规陪练“建议回复”(提交 `acd5fd3a`)。员工请求 `suggestReply=true` 时,服务端基于当前会话、回合和教练提示生成一条可编辑但不自动发送的员工回复;生成失败会明确提示,不复制教练提示冒充员工回答。 - 当前状态:**已实现、已推送源码;尚未部署、尚未生产验证**。 ## 2026-07-25 15:18–15:42|公司文件多岗位解读 ### 功能更新 - **2026-07-25 15:18:58**:完成公司文件多岗位解读代码收口(提交 `230dfb4d`)。管理端上传文件并完成正文提炼后,异步生成有原文依据的岗位视角;单个视角包含岗位名称、解读内容、行动建议和原文短引用。 - **2026-07-25 15:18:58**:管理端增加解读状态展示,明确区分“正在生成、已完成、部分完成、生成失败”,并展示已经生成的岗位名称。解读失败不阻断文件摘要、原文件下载、消息发布或消息追问。 - **2026-07-25 15:18:58**:员工端消息详情增加“多岗位解读”。系统优先展示与认证员工岗位匹配的视角;员工可切换查看其他已生成视角,并展开对应的原文依据。 - **2026-07-25 15:18:58**:服务端重新校验租户、登录身份、在职身份、消息状态和附件归属。消息撤回后,员工列表、详情、原文件和后续追问均不再允许访问。 ### 数据库更新 - **2026-07-25 15:25–15:26**:生产表 `aihr_broadcast_attachment` 新增 `insight_status`、`insights_json`、`insight_version` 三个字段,并新增 `(insight_status, status, update_time)` 异步队列索引。 - 本次迁移不回填历史文件,不修改既有文件 `READY` 状态,也不改变历史消息的发布或撤回状态。 ### 生产发布 - **2026-07-25 15:24:06**:完成生产数据库、后端 JAR、管理端和移动端 H5 备份,备份目录为 `/opt/wygj/backups/broadcast-insights-20260725152349`。 - **2026-07-25 15:26:32**:部署新后端 JAR、管理端静态资源和移动端 H5。 - **2026-07-25 15:26:33**:`wygj-aihr.service` 重启并恢复为 `active`。 - **2026-07-25 15:27–15:30**:完整发布预检通过。管理端与移动端静态资源、生产后端 JAR 和 `ruoyi-aihr` 模块哈希均与本地构建一致;生产 schema 为 `64/64`,公司文件附件契约为 `15/15`。 ### 线上验证 - **2026-07-25 15:31:52**:管理端上传生产验收 TXT 文件,文件提炼状态进入 `READY`。 - **2026-07-25 15:32:15**:多岗位解读生成完成,共生成“生活顾问/客服、人力、审计/风控、管理层”四个视角,结果状态为 `READY`,规则版本为 `role-perspective-v1`。 - **2026-07-25 15:32:34**:发布全员可见的生产验收消息。 - **2026-07-25 15:38–15:39**:使用生产数据库中的在职员工手机号完成员工端登录验证。在 390×844 视口下验证消息列表、消息详情、四视角切换、行动建议和原文依据展开,未发现横向溢出、内容遮挡或核心入口下沉。 - **2026-07-25 15:39:33**:通过员工端受控入口下载原文件,下载文件 SHA-256 与管理端上传文件完全一致。 - **2026-07-25 15:40:04**:验收完成后撤回测试消息并保留审计原因。 - **2026-07-25 15:40:13–15:40:41**:复核员工端列表不再展示该消息,原详情地址返回“消息不存在或已撤回”。 - **2026-07-25 15:42:11**:更新生产事实文档(提交 `9a34a267`),源码与发布记录已同步至远端 `main`。 ### 验收边界 - 本次结论为:**已实现、已部署、已完成生产 H5 浏览器验证**。 - 本次验证不替代 Android/iOS 真机验收,也不代表正式试点窗口、业务内容审核或严格试点指标已经通过。 - 生产验收消息已经撤回;仅保留发布、阅读、下载和撤回审计记录。