69 lines
13 KiB
Markdown
69 lines
13 KiB
Markdown
# 帮道 8 月 1 日 Android 内测 Go/No-Go
|
||
|
||
> 评估时间:2026-07-31(CST)
|
||
>
|
||
> 评估对象:2026-08-01 受控内部测试 APK,不代表正式发布、应用商店上架或阶段一严格试点验收。
|
||
>
|
||
> 冻结范围与完整门禁见[《帮道 8 月 1 日 Android 安装包测试版任务计划》](帮道8月1日Android安装包测试版任务计划-20260727.md)。
|
||
|
||
## 结论
|
||
|
||
**2026-08-01 受控内部公测结论为 Go。** 该结论不外推为应用商店发布、企业正式签名、对外商用或阶段一严格试点验收。
|
||
|
||
签名 `0.1.17 (117)` 已生成并通过包名、版本、API 35、禁止明文流量、DCloud 测试签名、登录法务与包内业务资源一致性深检;同一 APK 已覆盖安装到 vivo Android 15 真机,完成正式账号登录、学习中心、麦克风允许/拒绝/恢复、系统文件与媒体选择器取消、WAV 选择与生产 ASR、成果投稿确认保存,以及问师傅和五通道直通车回归。生产五通道各有 2 名有效后台处理人,并已完成本通道正例、跨通道拒绝和一次正式回复 `5/5`。项目发起人已接受受控内测的法务/测试签名例外。
|
||
|
||
最新后端 SHA-256 `d5145194024ba3526a869e3270df6d71468931b96ba9aebb93121592e54012eb` 上线后,正式来源治理、领域相关性和失败关闭已生效。2026-07-31 使用生产现有 APP 账号重新执行 30 题:11 题只引用已批准正式来源,分期缴费题因没有相关制度返回 `NO_EVIDENCE`,其余冲突、无依据和越权题全部按边界返回,合计 `30/30`。`verify-aug1-formal-content.mjs --strict` 与 `verify-aug1-release-readiness.sh --execute` 均通过。
|
||
|
||
## 已通过
|
||
|
||
| 检查项 | 当前结果 |
|
||
|---|---|
|
||
| 当前运行时冻结 | 干净提交 `af8af2f6dd169e4616a4ca0ca724e8b809502ab3` 的 `0.1.13 (113)` 统一 RC 已完成,`releaseEligible=true`;证据目录为 `output/aug1-rc/0.1.13-113-af8af2f6-frozen/`,候选后端 JAR SHA-256 为 `93AD272118F6A28F88C2BFA305F5C450E163CBE22577FF5BE3E85B3BD3958DAD` |
|
||
| 移动端自动化 | 当前 209 项单元测试通过;TypeScript 类型检查通过;新增 Android SAF、FileChannel、应用专属外部缓存、麦克风预检、权限 Activity 焦点恢复、系统选择器生命周期,以及认证态 UI 审计不持久化手机号/验证码回归 |
|
||
| 构建 | 当前 App 发布资源预检、App-Plus 构建和 `0.1.17` APK 深检通过;本轮另复跑后端学习/成果投稿/直通车/语音定向测试 46 项及管理端直通车测试 4 项,均通过 |
|
||
| P0 后端语义 | `ruoyi-aihr` 708 项全量测试通过,0 失败、0 错误;本轮新增五通道处理人配置的超级管理员、租户和候选人资格契约覆盖 |
|
||
| 内容候选门禁 | 候选 JSON 继续保持 `PENDING_BUSINESS_REVIEW / publishable=false`,不冒充正式来源;5 个生产场景使用独立 `v1.1` 内容哈希和审核链。30 题为 11 个正式有据回答 + 19 个冲突/无依据/越权安全边界,受控公测回归 `30/30` |
|
||
| 最终业务就绪门禁 | 批准清单为 `APPROVED`:正式来源 `10`、场景 `5/5`、问题 `30/30`、通道 `5/5`、负责人 `5/5`、受控分发通过;两道严格门禁均通过 |
|
||
| App 资源门禁 | 正式法务 URL、登录页同意门禁、原生 `prompt=none`、API 35、图标和启动图检查通过 |
|
||
| 独立 APK | 当前候选为 `com.yincheng.wygj 0.1.17 (117)`,文件 `mobile-uni/dist/debug/bangdao-0.1.17-dcloud-test.apk`,大小 `33,922,976` 字节,SHA-256 `0A8581D70A5988E4BDCF4BB3F0C88B4608FA8C6785FDCF1569DD56CE88E27F60`,`targetSdkVersion=35`、DCloud 测试签名、明文 HTTP 关闭;签名证书 SHA-256 为 `AB06ECC0DE544DE73C385F3F0690B22966EBC12887FB8BEE1830CDBEFDEBEF5D` |
|
||
| 双提交交付包 | `output/aug1-release/bangdao-aug1-0.1.13-113-af8af2f6-ops46f4616b.zip`;运行时 `af8af2f6`、operations `46f4616b`,大小 `192,948,093` 字节,SHA-256 `F6DF4AB2660A4D3523C7E9785C1F8B572770F1F795A841E2D95C88936A8AE9C0`,20 个条目和内部哈希复核通过;严格门禁覆盖正式场景、问题证据、五类负责人、五通道授权/越权/单次正式回复和受控分发/法务/签名决策,包内 Go/No-Go 已指向当前双提交包,旧 `ops9c53668c` ZIP 只作历史追溯 |
|
||
| APK 内容门禁 | `0.1.17` 的包名/版本、原生提示、登录法务、未勾选拦截、身份失败关闭、敏感值、网络安全、签名和包内业务资源与当前 App-Plus 构建一致性均通过 |
|
||
| 真机安装启动 | vivo V2443A(Android 15/API 35)已从签名 `0.1.16` 保留数据覆盖升级到签名 `0.1.17`,Launcher 启动、前台 Activity 和页面渲染正常,未见 Crash/ANR;录音权限在负向测试后已恢复为授权,图片/视频权限继续保持未授权 |
|
||
| 虚拟机安装与生命周期 | 本机 `Medium_Phone` Android 15/API 35 已全新安装 `0.1.12`;启动原生隐私层不可见、四项敏感权限为 `false`、未见 Crash/ANR。AVD 为 `x86_64`、APK 仅含 ARM ABI,Weex 跨架构转译实际报 `spinWaitPeer`/IPC timeout;原生外壳证据有效,页面主体既不判失败也不判通过,不向发布包增加 x86 ABI或 H5 兜底 |
|
||
| Android 统一取证 | 当前 `0.1.17 (117)` 进程和前台 Activity 正常、原生隐私层 `not-visible`、未见历史 Crash/ANR;脱敏证据包括 `output/aug1-rc/android-acceptance/20260730-123230-aug1-0.1.17-authenticated-home/` 与 `20260730-123522-aug1-0.1.17-learning-center/` |
|
||
| 最新发布后真机复验 | vivo V2443A Android 15 上的 `0.1.17 (117)` 已重新登录;首页、学习中心、问师傅入口和真实发问通过,未见 Crash/ANR,麦克风权限为允许。最新后端已把政策题限制为已批准且领域相关的正式来源;无相关制度时失败关闭 |
|
||
| 登录页法务策略 | 启动不再弹原生确认,包体门禁通过;vivo 真机实测协议默认未勾选、验证码/登录请求前失败关闭、勾选后进入验证码校验,两个链接分别打开线上服务协议和 2026-07-28 版隐私正文;脱敏截图不含手机号、验证码或令牌 |
|
||
| 真机登录与音频 | vivo 真机使用生产现有在职 APP 主体和固定码完成 `0.1.17` 页面登录;麦克风已覆盖允许、长按录音上滑取消、系统“禁止”、拒绝后的文件降级和权限恢复。系统文件/媒体选择器取消均正常回到 App;另选择 `191,352` 字节合成中文 WAV,生产 ASR 返回有效文本并进入问师傅,测试文件随后从手机和电脑删除 |
|
||
| 真机核心业务 | 学习中心加载真实今日任务、岗位 SOP 和错题本,无系统错误;成果投稿完成两条补充追问、确认卡和正式确认,返回投稿编号 `#7`、`PENDING/待审核`;大喇叭与直通车显示总裁、财务、人力、审计、运营五通道。测试投稿明确标记为 8 月 1 日真机验收记录 |
|
||
| 五通道处理人 | 生产只读查询按服务端同一资格规则排除 APP 用户、停用用户和超级管理员后,`direct_president/direct_finance/direct_hr/direct_audit/direct_operations` 均为 `2/2`,达到主处理人和备份门槛;人员身份不进入证据 |
|
||
| 生产固定码认证 | 运行时确认固定码和生产显式开关同时启用;生产应用日志确认首次和重新登录前的两次验证码请求均命中“未真实发送短信”分支。只选择已存在 `app_user` 的双向唯一在职主体,不触发自动注册,不输出手机号、固定码或令牌 |
|
||
| 认证后非真机主路径 | `scripts/verify-aug1-authenticated-production.sh --execute` 通过身份/非空项目范围、认证首页、训练历史/画像、五通道、我的反馈、大喇叭、考试、案例/全网能力只读入口、退出、旧令牌业务码 401、防刷窗口后的再次获取、重新登录、重新读取身份和再次退出;五通道返回数为 5。未提交业务写入、附件、ASR/TTS 或 Agent 请求 |
|
||
| 法务静态页 | `https://peilian.njzhmj.top/legal/terms.html` 与 `https://peilian.njzhmj.top/legal/privacy.html` 已部署并可访问;发布前站点备份为 `/opt/wygj/backups/www-20260728224710` |
|
||
| 生产 API 只读契约 | 可重复 GET-only 探针覆盖 20 个 APK 入口;固定码认证脚本另完成认证后只读主路径。`0.1.13` 所需的 `AihrMobileController` 身份失败关闭语义已包含在 2026-07-29 定向发布的生产后端中;本次发布后根站、租户和移动首页再次返回 HTTP 200 |
|
||
| 定向发布预检 | `566f222e` 已支持只核对后端 + schema;`feece9bb` 进一步允许以冻结提交和解压后的候选 JAR 为准。两次实际只读运行均跳过管理端/H5,根站、租户、移动首页和生产禁 DDL 门禁通过;后端 + schema 模式另通过 64/64 schema。冻结物模式确认本地 JAR SHA-256 为 `8c676f2f…`,最终均仅因现网/候选模块哈希 `15f5513a…` / `c93460e8…` 不同而按预期失败 |
|
||
| 后端发布/回滚计划 | `release-backend.sh` 固定生产 JAR 与 systemd 服务,默认只读,部署/回滚分别要求完整哈希授权串和干净工作区;备份、原子切换、90 秒公开端点就绪等待、发布后预检、失败恢复及并发改包保护均有回归。2026-07-29 已用完整授权串完成定向发布,生产 JAR 为 `5376b67b…`、服务 active、三个公开入口 HTTP 200、媒体重试 schema 契约通过,后端回滚目录已保留 |
|
||
|
||
## Go 范围与已知限制
|
||
|
||
1. `0.1.17` 仅允许发给受控内部测试名单;DCloud 测试签名例外已接受,但没有获得应用商店、对外商用或企业正式签名结论。
|
||
2. 分期缴费题没有相关正式制度,系统当前正确返回 `NO_EVIDENCE`。补齐制度前不得通过提示词、账号签字或经验材料生成审批条件。
|
||
3. 真实断网恢复、WebRTC、实际图片/视频/文档全组合、受控下载及主管/候选人同包回归仍是扩大试点前的补充项,不阻断本次生活顾问受控内部公测。
|
||
4. 阶段一严格试点仍要求正式项目名单、起止窗口、每人至少 10 次训练和同窗口统计;本次 Go 不等于 `AIHR_PILOT_STRICT=true` 通过。
|
||
|
||
## 转为 Go 的最短路径
|
||
|
||
| 顺序 | 必须完成 | 验收证据 |
|
||
|---|---|---|
|
||
| 已完成 | 确定 APK、后端、管理端/H5、数据库四个发布单元并生成 `0.1.13` DCloud 云端证书 APK | `0.1.13 (113)` APK SHA-256 `FA2D2A6D…`,API 35、v2 测试签名和深检通过;`0.1.12` ZIP 只作上一冻结基线 |
|
||
| 已完成 | 在干净提交上冻结 `0.1.13` APK 与候选后端 JAR,并执行生产只读发布计划 | `releaseEligible=true`,冻结目录 `output/aug1-rc/0.1.13-113-af8af2f6-frozen/`;候选 JAR `93AD2721…` 和当时现网 `46C99CFF…` 只保留为冻结/发布前基线 |
|
||
| 已完成 | 获得明确授权后使用 `release-backend.sh deploy` 发布内容语义、移动身份失败关闭和后续资料处理恢复;保留回滚点并完成发布后验证 | 生产 JAR `5376B67B…`、服务 active、三个公开入口 HTTP 200、媒体重试 schema 契约通过;管理端同步发布,移动 H5 未重发 |
|
||
| 已完成 | 使用生产现有在职 APP 主体和固定码完成非真机认证、退出、重新获取、重新登录及认证后只读主路径;固定码请求不真实发送短信 | `scripts/verify-aug1-authenticated-production.sh --execute` 全部通过,五通道数为 5,旧令牌按业务码 401 拒绝,两次验证码请求均有“未真实发送”日志;执行过程不输出手机号、固定码或令牌 |
|
||
| 已完成 | 生成、深检并在 Android 15 真机安装当前 `0.1.17 (117)` 签名候选,复跑登录、学习中心、麦克风正反例、选择器取消、音频 ASR、成果投稿确认和五通道入口 | APK SHA-256 `0A8581D7…`、签名 `AB06ECC0…`、API 35、业务资源一致;录音权限测试后已恢复,测试音频已清理 |
|
||
| 已完成 | 为五个直通车角色配置符合资格的主处理人和备份 | 生产只读计数五个角色均为 `2/2`,不输出人员身份 |
|
||
| 已完成 | 按统一签认单审核 30 道题和 5 个生产场景,登记正式来源、五通道业务验收和五类负责人签认 | [业务内容与五通道签认单](帮道8月1日业务内容与五通道签认单-20260729.md);场景 `5/5`、题目 `30/30`、通道 `5/5`、负责人 `5/5` |
|
||
| 公测后补充 | 在同一 `0.1.17` 包继续完成真实断网、WebRTC、实际图片/视频/文档、受控下载及主管/候选人角色 | 每条用例的时间、角色、结果和脱敏证据;不记录手机号、验证码、令牌或业务正文 |
|
||
| 已完成 | 接受受控分发、内部测试法务例外和 DCloud 测试签名 | `distributionApproval=APPROVED`、分发证据 SHA-256、签名摘要和签认时间 |
|
||
| 4 | 在干净提交上冻结 `0.1.17` APK 和交付包,7 月 31 日复跑安装、升级、回滚及完整 Go/No-Go | RC 提交、APK/交付包哈希、回滚点、签认人和最终结论 |
|
||
|
||
公司法务签认与企业签名可在负责人明确接受“仅限小范围受控内部测试”的前提下不阻断技术验收,但不能省略登录页协议门禁、权限反例、版本冻结、生产依赖匹配和核心业务闭环。
|