docs(aihr): record production release evidence

This commit is contained in:
2026-07-14 22:17:32 +08:00
parent ee261568a6
commit 5f8dc82462
2 changed files with 5 additions and 4 deletions
+2 -1
View File
@@ -7,6 +7,7 @@
更新时间:2026-07-14
- 2026-07-14 22:16 BRD 生产发布完成:基于 `HEAD=ee261568` 在隔离干净 worktree 重新构建并发布管理端、`mobile-uni` H5 和 `ruoyi-admin` 后端;远端备份为 `/opt/wygj/backups/release-20260714221321`。发布后远端资源已与本地产物一致:管理端 `assets/index-B9T505HT.js`(SHA-256 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`)、H5 `assets/index-CDn6TrX8.js`(SHA-256 `eecb4820f3887aceb952efe3e6f2210bab325be8b03f2813e6ec304c68b26f08`)、后端 `/opt/wygj/app/ruoyi-admin.jar`(SHA-256 `e2941cf1e2a31e22c979cea77a12b2e6ef2e5430409398dbde0918a1ab00f437`);`wygj-aihr.service` 重启后为 `active`,根站、`/h5/`、租户列表和员工首页 API 均返回 `200`,发布后 `RELEASE_VERIFY_REMOTE_MATCH=true` 预检通过。Chrome 匿名打开 H5 后标题为“今日”、员工端四个 tab 和最新主 JS 均正常加载;生产 `13900001111 + 123456` 登录被服务端按生产验证码策略拒绝,随后验证码发送触发号码天级限流,因此本轮未完成认证态浏览器回归,也未把匿名渲染当作登录/主管权限验收。未写入业务数据;正式主管组织映射、真实试点数据和认证态回归仍未完成。
- 2026-07-14 22:03 BRD 发布证据复核:基于当前 `HEAD=ab10e565` 重新构建管理端、`mobile-uni` H5 和 `ruoyi-admin` 后端产物均成功;本地产物为管理端 `assets/index-B9T505HT.js`(SHA-256 `66a827a7b3e5d794ae9da54c6e2276080995614fa52f54d49f746087663f8c94`)、H5 `assets/index-CDn6TrX8.js`(SHA-256 `eecb4820f3887aceb952efe3e6f2210bab325be8b03f2813e6ec304c68b26f08`),后端 jar SHA-256 `bdbd50be0b5e6aaa05504726fee7016a712c3138494ac84c4d4dfbe669aa6379`;线上仍加载管理端 `assets/index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`)与 H5 `assets/index-D4-NrEpb.js`(SHA-256 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`),当前分支修复尚未发布。`RELEASE_VERIFY_REMOTE_MATCH=true ./scripts/release-preflight.sh` 在工作区卫生检查阶段因两份用户未提交 Figma 文档停止;本轮未执行生产静态同步、后端重启或业务数据写入。
- 2026-07-14 21:28 BRD 发布只读复核:生产根站、`/h5/` 和 `/prod-api/auth/tenant/list` 均返回 `200`;线上管理端仍加载 `assets/index-CJZ3Ax3Z.js`(SHA-256 `8b9278a26ccb760abce489b12a20b221748c64d4c4153613d2511777bb9677bc`),H5 仍加载 `assets/index-D4-NrEpb.js`(SHA-256 `ab15bfd17cabe58e2f34b0ac61ee198a837128ed85dc6bb0ddf77bc3e22dcd9c`)。本地最新提交 `d2b0035e` 的租户隔离修复尚未发布;本轮仅做 GET/hash 核验,未执行生产静态同步、后端重启或业务数据写入。
- 2026-07-14 BRD G3 多租户动态上下文修复:候选资料、案例、仪表盘、面试、组织同步和陪练服务此前从 `LoginHelper` 读取租户,后台 `TenantHelper.dynamic(...)` 场景可能回退到 `000000`;现统一改用 `TenantHelper.getTenantId()`,保留案例服务的 `LoginHelper` 仅用于当前操作人身份,并新增源码契约测试与 `demo-check` marker。未修改业务数据;正式多租户环境仍需跨租户 HTTP 回归。
@@ -60,7 +61,7 @@
| G5 情绪疏导树洞隐私边界 | BRD 12.1、附录 A 第三层 | 当前仓库没有树洞入口、独立存储、留痕策略、训练集排除机制或删除/审计合同;历史一期方案明确将“情绪疏导树洞”列为一期不做。现有陪练中的情绪识别、纠偏和反馈属于训练证据,不能冒充“不留痕树洞” | 在进入正式生产前由业务、法务和安全共同确认是否纳入当前阶段;若纳入,必须单独定义匿名/身份边界、零落库与日志脱敏、模型供应商留存、删除证明和误伤升级路径;在决策和合同未明确前保持未实现,不用陪练情绪数据承接树洞诉求 |
| 外部 AI 的 PII 出境与留存 | 4.3.2、4.3.3、G3、G6 | 对练、面试、SOP、Embedding、Rerank、TTS 的文本请求已统一做最小脱敏;ASR 仍发送音频本体,视觉 OCR/视频关键帧仍发送图片本体,当前没有供应商不留存、删除证明或本地语音/视觉模型证据;视频失败日志已遮蔽文件名中的已知 PII | 正式试点前由业务、法务和安全确认供应商留存/训练/跨境条款,或切换本地模型;补音频、图片的审计与删除证据后,才能把 G3/G6 判为通过 |
| LLM/ASR/TTS 调用成本计量与自动降级 | 6.3、12.1、G6、TechSpec 3.8 | 已有 `AIHR_AI_RUNTIME_ENABLED`、`AIHR_AI_CHAT_ENABLED`、`AIHR_AI_SPEECH_ENABLED` 手动断路器;当前没有 `llm_call_log`,也没有按模块、模型、token、延迟和费用的持久化月度计量,不能把手动开关宣称为成本闸门已完成 | 先由供应商/财务确认 token 计费字段、单价、月度上限和告警阈值,再新增租户范围的调用日志与自动降级;在计费契约明确前保持手动断路器,不硬编码价格或用日志估算正式成本 |
| 管理端/后端生产发布证据 | 6.3、12.1、L1-C | 生产根站点 `https://peilian.njzhmj.top/`、Caddy `/prod-api`、systemd `wygj-aihr.service` 和后端 jar 的基础发布链路可核查;租户接口和移动端首页 API 返回 200。当前分支最新管理端资源与线上 hash 不一致,不能把基础服务可访问认定为当前修复已发布 | 发布基础设施证据已具备;仍需按正式发布批次核对管理端静态包、后端 jar、回滚脚本和生产部署凭据,不能把“服务可访问”直接等同于当前分支已上线或正式试点通过 |
| 管理端/后端生产发布证据 | 6.3、12.1、L1-C | `HEAD=ee261568` 已按备份流程发布;管理端/H5/后端 hash 已与线上对齐,`wygj-aihr.service` active,根站、租户列表和员工首页 API 返回 200;匿名 H5 浏览器加载正常,但生产验证码拒绝 `123456` 且短信发送触发天级限流,本轮未完成认证态浏览器回归 | 发布链路和当前包已核实;仍需使用正式 OTP/测试账号完成员工、主管、管理端认证态回归,正式主管身份和项目权限仍需组织数据验证,不能把资源 hash 对齐等同于正式试点通过 |
| M5 正式试点证据 | L1-B/C/D、G1/G3/G4 | 已补员工训练后 1–5 分满意度和可选意见采集,意见脱敏后写入 `aihr_practice_session`,CSV/严格门禁可读满意度响应数与平均分;但本地样本不能代表正式窗口,仍不能用 seed/烟测数据替代,尚无法证明“满意度 ≥4/5” | 固定 1–2 个住宅项目和窗口,按唯一在职身份采集训练、人工校准、SOP 评审、完训率和满意度;严格门禁要求满意度有真实响应且平均分 ≥4.0/5 |
| AI 分数与人工复核边界 | 4.1、4.5、G1/G2 | 面试和对练已有人工复核/校准入口;正式试点 CSV 已补明细级 AI 分、人工校准分、校准人、校准时间和最终采用分;管理端与员工端均已显示“AI 仅作辅助参考、人可复核/否决、不直接决定绩效或晋升”;正式试点仍需用真实窗口验证人工可否决证据 | 在正式试点报告中抽查校准记录与最终采用值,确认人工分可覆盖 AI 建议且不直接挂钩绩效/晋升 |
+3 -3
View File
@@ -40,7 +40,7 @@
| 优先级 | 项目 | 需要什么才能继续 |
|---|---|---|
| P0 | 线上包与角色路由 | 员工今日、训练前预习和主管工作台的历史基础包已发布并完成浏览器回归;当前分支后续修复仍需通过发布预检和资源 hash 对齐后才算线上生效,不再把旧线上包当作当前源码状态。主管正式角色仍需正式组织数据验证。 |
| P0 | 线上包与角色路由 | `HEAD=ee261568` 已发布,管理端/H5/后端 hash 已对齐,匿名 H5 加载已回归;认证态员工/主管/管理端回归仍需正式 OTP 或测试账号,主管正式角色仍需正式组织数据验证。 |
| P1 | 案例学习/视频详情 | 原始音频 `mediaUrl/mediaOssId` 已形成真实留痕和回放;仍需业务提供一期预渲染视频样片,并确定学习点、主管点评、相关训练场景字段后再完成视频详情页面。 |
| P1 | 正式组织数据 | 用正式员工、项目和试点时间窗口验证团队量化、成长证据和 M5 导出;不使用本地 smoke 样本替代。 |
| P2 | 三期页面 | 个人 AI 助理、开放问题榜、积分/荣誉、完整七维偏好、独立 AI 教练编排按阶段二/三单独立项。 |
@@ -71,7 +71,7 @@
| 19 | 候选人补充资料上传 | `69:599` | `mobile-uni/src/pages/candidate/materials/index.vue` | [x] 已实现 | 已修正 |
| 20 | 候选人资料审核状态 | `69:629` | `mobile-uni/src/pages/candidate/progress/index.vue` | [x] 已实现 | 已修正 |
| 21 | 管理端 AI 面试列表 | `70:2` | `frontend/src/views/recruit/interview.vue` | [x] 已实现 | 已修正 |
| 22 | 管理端 AI 面试详情复核 | `71:2` | `frontend/src/views/recruit/interview.vue` | [x] 已实现 | 已修正;新增 HR/管理员将候选人本地记录关联到已同步在职 `ext_party_id` 的入口,不复制组织字段,关联其他主体会拒绝;本批改动已提交但尚未发布到线上 |
| 22 | 管理端 AI 面试详情复核 | `71:2` | `frontend/src/views/recruit/interview.vue` | [x] 已实现 | 已修正;新增 HR/管理员将候选人本地记录关联到已同步在职 `ext_party_id` 的入口,不复制组织字段,关联其他主体会拒绝;当前批次已发布,认证态 HR 回归仍待正式账号 |
| 23 | 场景库列表/编辑/启停 | `71:628` | `frontend/src/views/train/scenarios.vue` | [x] 已实现 | 已按 Figma 独立工作台实现筛选、分页、列表、Rubric/状态展示、编辑、新增和启停;真实浏览器已验证编辑保存及停用/启用恢复 |
| 24 | Rubric 维度/版本管理 | `72:2` | `frontend/src/views/train/rubrics.vue` | [x] 已实现 | 已按 Figma 实现版本列表、维度权重编辑、保存发布、复制版本与启停;真实浏览器已验证权重保存、复制版本落库及启用/停用恢复 |
| 25 | 提示词模板管理 | `73:2` | `frontend/src/views/system/prompts.vue` | [x] 已实现 | 已按 Figma 独立工作台实现模板列表、名称/代码/输出文体/系统提示词/模板/变量编辑、保存草稿、保存并启用;真实浏览器已验证编辑保存、新增启用、刷新持久化,临时样本已清理 |
@@ -80,7 +80,7 @@
| 28 | SOP 好评/差评反馈 | `79:674` | `mobile-uni/src/pages/user/sop/index.vue` | [x] 已实现 | 已按 Figma 语义对齐为「有帮助/没解决」双按钮,保留真实反馈接口、提交后状态提示与按钮锁定;浏览器已验证真实搜索、点击反馈、结果提示和两个按钮 disabled。Figma 中的「收藏」当前无后端持久化接口,未添加假按钮 |
| 29 | SOP 后台待复核 | `80:655` | `frontend/src/views/knowledge/sop.vue` | [x] 已实现 | 已补真实答案反馈待复核队列、待复核/已复核筛选、状态展示与「标记已复核」动作;浏览器已验证刷新加载临时待复核样本、点击复核后从待办移除并清理测试数据 |
| 30 | SOP 知识库管理 | `81:2` | `frontend/src/views/knowledge/sop.vue` | [x] 已实现 | 已修正 |
| 31 | 异步资料处理队列 | `81:750` | `frontend/src/views/knowledge/processing.vue` | [x] 已实现 | 已修正;ZIP 支持已写本地但未发布 |
| 31 | 异步资料处理队列 | `81:750` | `frontend/src/views/knowledge/processing.vue` | [x] 已实现 | 已修正;ZIP 支持已随当前批次发布,仍需真实资料和权限账号回归 |
| 32 | 案例语音上传 | `79:706` | `mobile-uni/src/pages/user/cases/index.vue`、`frontend/src/views/knowledge/cases.vue` | [x] 已实现 | 已修正 |
| 33 | 案例 AI 整理结果 | `79:734` | `frontend/src/views/knowledge/cases.vue` | [x] 已实现 | 已修正 |
| 34 | 案例审核/筛选/发布 | `82:2` | `frontend/src/views/knowledge/cases.vue` | [x] 已实现 | 已修正 |