docs(release): register Android 0.1.12 package
This commit is contained in:
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
## Unreleased
|
||||
|
||||
- **2026-07-29,Android 法务交互按企业内测体验收口,候选升级为 `0.1.12 (112)`,未发布生产**:取消启动阶段的 DCloud 原生隐私确认,统一由登录页协议勾选承担同意门槛;协议默认未勾选,服务协议与隐私政策可点击查看,未勾选时发送验证码和登录均在请求前失败关闭。两个公开 HTTPS 地址进入版本化 `.env`,npm 与 HBuilderX 云打包共用;源码、App-Plus 产物和 APK 门禁同时检查 `prompt=none`、登录法务链接、未勾选拦截、网络安全与敏感值。DCloud 独立内测 APK `com.yincheng.wygj 0.1.12 (112)` 大小 `33,921,458` 字节,SHA-256 `DD24E5F20BC7C064F5059E538A1FAB7518DF46CBAB502F59A3629F0B1B1F5EBB`,API 35、v2 测试签名、`usesCleartextTraffic=false`;本机 Android 15/API 35 虚拟机全新安装后确认原生隐私层不可见、四项敏感权限未授权、无 Crash/ANR。干净提交 `b9e08789` 的统一 RC 为 `releaseEligible=true`:移动端 199 项、后端 698 项、类型检查、H5/App、管理端、后端打包和 APK 深检全部通过,证据位于 `output/aug1-rc/0.1.12-112-b9e08789-frozen/`。该 x86_64 虚拟机对 ARM-only DCloud Weex 运行时出现 IPC 初始化超时,因此不把空白 WebView 作为页面通过;登录页链接/未勾选反例及认证业务仍须 ARM64 真机验收。本项没有发布后端、H5、数据库或新的生产静态资源。
|
||||
- **2026-07-29,Android 法务交互按企业内测体验收口,候选升级为 `0.1.12 (112)`,未发布生产**:取消启动阶段的 DCloud 原生隐私确认,统一由登录页协议勾选承担同意门槛;协议默认未勾选,服务协议与隐私政策可点击查看,未勾选时发送验证码和登录均在请求前失败关闭。两个公开 HTTPS 地址进入版本化 `.env`,npm 与 HBuilderX 云打包共用;源码、App-Plus 产物和 APK 门禁同时检查 `prompt=none`、登录法务链接、未勾选拦截、网络安全与敏感值。DCloud 独立内测 APK `com.yincheng.wygj 0.1.12 (112)` 大小 `33,921,458` 字节,SHA-256 `DD24E5F20BC7C064F5059E538A1FAB7518DF46CBAB502F59A3629F0B1B1F5EBB`,API 35、v2 测试签名、`usesCleartextTraffic=false`;本机 Android 15/API 35 虚拟机全新安装后确认原生隐私层不可见、四项敏感权限未授权、无 Crash/ANR。干净提交 `b9e08789` 的统一 RC 为 `releaseEligible=true`:移动端 199 项、后端 698 项、类型检查、H5/App、管理端、后端打包和 APK 深检全部通过,证据位于 `output/aug1-rc/0.1.12-112-b9e08789-frozen/`。双提交交付包 `bangdao-aug1-0.1.12-112-b9e08789-ops6bf365d5.zip` 大小 `192,926,061` 字节、SHA-256 `E8014A0C5BD56B66B198710E75E2B8DDEC86002D1E3BC6CAF56FB3454A199C33`,14 个条目及内部哈希逐条通过;新后端 JAR `3F9F4506…` 的生产只读计划也通过目标、服务、公开入口、64/64 schema 和生产禁 DDL 检查,现网 JAR 仍为 `46C99CFF…`,未执行部署。该 x86_64 虚拟机对 ARM-only DCloud Weex 运行时出现 IPC 初始化超时,因此不把空白 WebView 作为页面通过;登录页链接/未勾选反例及认证业务仍须 ARM64 真机验收。本项没有发布后端、H5、数据库或新的生产静态资源。
|
||||
- **2026-07-28 至 2026-07-29,前一版 Android 受控内测候选包与法务链路,历史总体 No-Go**:补齐登录页协议默认不勾选与法务地址失败关闭、App-Plus 原生隐私配置生成/校验、APK 包名/版本/API/签名/哈希/包内资源一致性/敏感值门禁、DCloud 云证书自定义基座和独立测试包流程;《服务协议》《隐私政策》静态页已部署到 `/legal/`,发布前整站备份为 `/opt/wygj/backups/www-20260728224710`。客户端法务校验已移除 App-Plus 不保证支持的浏览器 `URL` 构造器,测试验证码也不再以源码常量进入安装包;五个文件选择服务与九个消费页面进一步统一“用户取消/平台失败”分流,取消后不再残留上传或转写错误;直通车首次弱网加载失败后可原位重试,失败时清空旧通道并禁止提交。当时独立 APK `com.yincheng.wygj 0.1.10 (110)` 的 `targetSdkVersion=35`,SHA-256 为 `20CB16B4E9D024DBF5EEEF577BFBA3B4DF5E5E78B597BABB99CB7450C7AE5034`;Android 原生网络安全配置经 APK 反编译确认 `usesCleartextTraffic=false`、`networkSecurityConfig` 引用和系统证书信任配置均已进入安装包。本机 `Medium_Phone` Android 15/API 35 虚拟机已完成从 `0.1.9` 保留数据覆盖升级和冷启动,真实显示原生隐私弹窗,四项敏感权限保持未授权且未见 FATAL/ANR;`0.1.6` 已在 vivo V2443A(Android 15)完成覆盖安装和冷启动。代码候选提交 `dc20b920` 已在干净工作区通过统一 RC 门禁,`releaseEligible=true`:移动端 198 项测试、类型检查、H5/App 构建、管理端构建、`ruoyi-aihr` 698 项全量测试、后端打包及 APK 强化门禁全部通过;最小交付包 SHA-256 为 `4BAA79B2CA2C4D486B6194288D90022D5F994A4D8C8E05D7C2DDD87F9BF5B3B7`,解压后 9 个文件、其中 8 个载荷逐文件复验通过。只读生产预检确认根站、租户接口、移动首页和 64/64 schema 门禁通过,但生产后端模块、管理端和移动 H5 与本地候选仍不一致;用户隐私选择、权限反例、认证态核心业务和正式内容也未完成,故当时 Go/No-Go 为 **No-Go**。本项没有新增生产发布、服务重启、数据库或静态资源变更。
|
||||
- **2026-07-29,发布预检支持定向后端/schema 范围和冻结物核验,未发布**:`release-preflight.sh` 不再把远端后端或 schema 核验强制绑定到管理端/H5 静态匹配;定向后端发布可只启用 `RELEASE_VERIFY_REMOTE_BACKEND=true RELEASE_VERIFY_REMOTE_SCHEMA=true`,且只要求本地后端 JAR 新鲜。完整包口径仍必须同时启用远端静态、后端和 schema 三项。新增范围回归脚本,校验缺少 `RELEASE_REMOTE_URL` 时失败关闭、定向模式不回退为静态耦合、完整模式命令仍保留;`feece9bb` 再新增 `RELEASE_ARTIFACT_COMMIT` 与 `RELEASE_LOCAL_BACKEND_PATH`,允许从后续文档提交上安全地核验冻结提交及其实际候选 JAR。提交 `566f222e` 后只重建后端并实跑生产只读定向预检:输出没有管理端/H5 哈希,根站、租户、移动首页、64/64 schema 和生产禁 DDL 门禁通过,最终仅因现网/候选 AIHR 模块哈希 `15f5513a…` / `c93460e8…` 不同而按预期失败。随后以 `dc20b920` 和发布 ZIP 解压 JAR 再跑后端只读预检,确认候选整包哈希 `8c676f2f…`,仍仅在同一模块差异处失败;这证明范围和冻结物选择正确,不代表后端已经发布。本项没有执行生产同步、重启或数据库变更。
|
||||
- **2026-07-29,Android 人工验收新增只读统一取证**:新增 `capture-android-acceptance.ps1`,只读取指定设备当前包版本、前台 Activity、四项敏感权限、UI 层级、截图和应用退出记录,证据限定写入 Git 已忽略的 `output/`;静态回归拒绝安装、启动、停止、清数据、授权、撤权和输入类命令。脚本已在 `emulator-5554` 实跑,确认 `0.1.10 (110)` / API 35 的原生隐私标题与拒绝/同意按钮可见、手机号登录不可见、四项权限均未授权、退出记录无 Crash/ANR。本项只记录用户选择前状态,未代替用户点击隐私选项。
|
||||
|
||||
+6
-6
@@ -332,18 +332,18 @@ Android 人工验收每完成一个步骤,用 `.\scripts\capture-android-accep
|
||||
|
||||
```bash
|
||||
./scripts/release-backend.sh plan \
|
||||
--artifact output/aug1-release/0.1.10-110-dc20b920/ruoyi-admin-dc20b920.jar \
|
||||
--artifact-commit dc20b92061f10a356ed73eb105ef7b00c8b8a617 \
|
||||
--expected-sha256 8c676f2fbfccb4f4573cbca1259e8b26eb83ebdb469adcbaf714c5931ef3cf2d
|
||||
--artifact backend/ruoyi-admin/target/ruoyi-admin.jar \
|
||||
--artifact-commit b9e08789265b73524e3ce2646abe2f2fc4565906 \
|
||||
--expected-sha256 3f9f4506ed138a35f81fa84428be4fbf5981d5d6d0f96ae2769f485d904e1ce3
|
||||
```
|
||||
|
||||
只有负责人明确授权后,才能把计划输出的 `approval_token` 原样传给 `deploy`;仅运行 `plan` 不构成发布授权:
|
||||
|
||||
```bash
|
||||
./scripts/release-backend.sh deploy \
|
||||
--artifact output/aug1-release/0.1.10-110-dc20b920/ruoyi-admin-dc20b920.jar \
|
||||
--artifact-commit dc20b92061f10a356ed73eb105ef7b00c8b8a617 \
|
||||
--expected-sha256 8c676f2fbfccb4f4573cbca1259e8b26eb83ebdb469adcbaf714c5931ef3cf2d \
|
||||
--artifact backend/ruoyi-admin/target/ruoyi-admin.jar \
|
||||
--artifact-commit b9e08789265b73524e3ce2646abe2f2fc4565906 \
|
||||
--expected-sha256 3f9f4506ed138a35f81fa84428be4fbf5981d5d6d0f96ae2769f485d904e1ce3 \
|
||||
--approval 'DEPLOY_BACKEND:<完整候选JAR-SHA256>'
|
||||
```
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
| 法务静态页 | `https://peilian.njzhmj.top/legal/terms.html` 与 `https://peilian.njzhmj.top/legal/privacy.html` 已部署并可访问;发布前站点备份为 `/opt/wygj/backups/www-20260728224710` |
|
||||
| 生产 API 只读契约 | 线上与候选包的 9 个关键控制器 class 哈希逐一相同,短信登录、移动首页、查/练/问、直通车和 ASR/TTS 路由均存在;可重复 GET-only 探针覆盖 20 个 APK 入口,得到公开首页 `1×200`、鉴权入口 `6×401`、仅 POST 入口 `13×405`。`answer-feedback` 因同路径另有运营 GET 归入鉴权组;脚本排除短信验证码,不登录、不上传、不发送业务 POST |
|
||||
| 定向发布预检 | `566f222e` 已支持只核对后端 + schema;`feece9bb` 进一步允许以冻结提交和解压后的候选 JAR 为准。两次实际只读运行均跳过管理端/H5,根站、租户、移动首页和生产禁 DDL 门禁通过;后端 + schema 模式另通过 64/64 schema。冻结物模式确认本地 JAR SHA-256 为 `8c676f2f…`,最终均仅因现网/候选模块哈希 `15f5513a…` / `c93460e8…` 不同而按预期失败 |
|
||||
| 后端发布/回滚计划 | `release-backend.sh` 固定生产 JAR 与 systemd 服务,默认只读,部署/回滚分别要求完整哈希授权串和干净工作区;备份、原子切换、发布后预检、失败恢复及并发改包保护均有回归。冻结 JAR 实跑只读计划通过:候选 `8c676f2f…`、现网 `46c99cff…`,服务 active、空间充足、三个公开入口和 64/64 schema 通过,全程未备份、上传、重启或改库 |
|
||||
| 后端发布/回滚计划 | `release-backend.sh` 固定生产 JAR 与 systemd 服务,默认只读,部署/回滚分别要求完整哈希授权串和干净工作区;备份、原子切换、发布后预检、失败恢复及并发改包保护均有回归。当前 `b9e08789` 候选 JAR 实跑只读计划通过:候选 `3f9f4506…`、现网 `46c99cff…`,服务 active、空间充足、三个公开入口、64/64 schema 和生产禁 DDL 通过,全程未备份、上传、重启或改库 |
|
||||
|
||||
## No-Go 阻断项
|
||||
|
||||
@@ -45,8 +45,8 @@
|
||||
|
||||
| 顺序 | 必须完成 | 验收证据 |
|
||||
|---|---|---|
|
||||
| 已完成 | 确定 APK、后端、管理端/H5、数据库四个发布单元并冻结当前 APK 运行时 | 运行时 `b9e08789`、`releaseEligible=true`、`output/aug1-rc/0.1.12-112-b9e08789-frozen/`;新的双提交 ZIP 仍须包含运行时/运维完整提交、14 个条目和内部 `SHA256SUMS.txt`,旧 `0.1.10` ZIP 只保留追溯 |
|
||||
| 1 | 获得明确授权后使用已通过只读计划的 `release-backend.sh deploy`,只发布上述 3 个服务类语义修复所在的候选后端 JAR;管理端/H5 延期,schema 本批不变;不得手工覆盖或绕过脚本失败恢复 | 候选 JAR SHA-256 `8C676F2FBFCCB4F4573CBCA1259E8B26EB83EBDB469ADCBAF714C5931EF3CF2D`;输出备份目录,生产 `ruoyi-aihr` 模块与候选匹配,64/64 schema 继续通过,兜底回答不显示已创建/已派发状态 |
|
||||
| 已完成 | 确定 APK、后端、管理端/H5、数据库四个发布单元并冻结当前 APK 运行时和运维审计快照 | 运行时 `b9e08789`、operations `6bf365d5`、`releaseEligible=true`;双提交 ZIP `bangdao-aug1-0.1.12-112-b9e08789-ops6bf365d5.zip` 含 14 个条目和内部 `SHA256SUMS.txt`,外层 SHA-256 `E8014A0C5BD56B66B198710E75E2B8DDEC86002D1E3BC6CAF56FB3454A199C33`;旧 `0.1.10` ZIP 只保留追溯 |
|
||||
| 1 | 获得明确授权后使用已通过只读计划的 `release-backend.sh deploy`,只发布上述 3 个服务类语义修复所在的候选后端 JAR;管理端/H5 延期,schema 本批不变;不得手工覆盖或绕过脚本失败恢复 | 候选 JAR SHA-256 `3F9F4506ED138A35F81FA84428BE4FBF5981D5D6D0F96AE2769F485D904E1CE3`;输出备份目录,生产 `ruoyi-aihr` 模块与候选匹配,64/64 schema 继续通过,兜底回答不显示已创建/已派发状态 |
|
||||
| 2 | 用户在 ARM64 Android 真机完成登录页法务门禁和权限正反例 | 默认未勾选、两个链接、未勾选拦截、勾选后登录、权限允许/拒绝;不记录手机号、验证码和个人内容 |
|
||||
| 3 | 用正式测试账号完成“查/练/问”、五直通渠道及附件/语音闭环 | 每条用例的时间、结果、失败截图或日志 |
|
||||
| 4 | 业务方审核当前 30 道题和 5 个场景候选,补齐正式来源并签认五渠道处理人 | 审核单、正式内容版本、授权矩阵;正式可发布计数从 0/0 提升到至少 5/30 |
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
|
||||
统一 RC 脚本已在干净运行时提交 `dc20b92061f10a356ed73eb105ef7b00c8b8a617` 上完整复跑,证据目录为 `output/aug1-rc/0.1.10-110-dc20b920-frozen/`,结果为 `releaseEligible=true`。发布/回滚、API 探针和可识别隐私二次确认/退出态的 Android 取证工具另冻结在 operations commit `71f005c22981989c5f2b24fa31c385a1b82657b7`。当前双提交交付包为 `output/aug1-release/bangdao-aug1-0.1.10-110-dc20b920-ops71f005c2.zip`,大小 `192,926,422` 字节,SHA-256 为 `4391895420B50EBBD8CB87EA20AF71A70D5DABAD5003F5361A8B034CF7525BCA`;已完成 14 个 ZIP 条目和 13 个 `SHA256SUMS.txt` 载荷的逐条复验。旧无 operations 后缀包、`ops861fa0ea` 与 `ops414af66e` 包保留作追溯但均已被替代。上述本地自动化冻结不替代生产后端发布授权和人工验收。
|
||||
|
||||
2026-07-29 根据企业内部应用体验决策,当前候选升级为 `0.1.12 (112)`,取消启动原生隐私确认,法务同意统一由登录页协议勾选承担。干净提交 `b9e08789265b73524e3ce2646abe2f2fc4565906` 的统一 RC 证据位于 `output/aug1-rc/0.1.12-112-b9e08789-frozen/`,结果为 `releaseEligible=true`;移动端 199 项、`ruoyi-aihr` 698 项及全部构建、APK 门禁通过。APK 大小 `33,921,458` 字节,SHA-256 为 `DD24E5F20BC7C064F5059E538A1FAB7518DF46CBAB502F59A3629F0B1B1F5EBB`。前述 `0.1.10` 双提交包仅保留追溯,不能再作为当前 APK 分发。
|
||||
2026-07-29 根据企业内部应用体验决策,当前候选升级为 `0.1.12 (112)`,取消启动原生隐私确认,法务同意统一由登录页协议勾选承担。干净提交 `b9e08789265b73524e3ce2646abe2f2fc4565906` 的统一 RC 证据位于 `output/aug1-rc/0.1.12-112-b9e08789-frozen/`,结果为 `releaseEligible=true`;移动端 199 项、`ruoyi-aihr` 698 项及全部构建、APK 门禁通过。APK 大小 `33,921,458` 字节,SHA-256 为 `DD24E5F20BC7C064F5059E538A1FAB7518DF46CBAB502F59A3629F0B1B1F5EBB`。以 operations commit `6bf365d5911fbe982ba059b1b4388d9692c989db` 生成的新双提交包为 `output/aug1-release/bangdao-aug1-0.1.12-112-b9e08789-ops6bf365d5.zip`,大小 `192,926,061` 字节,SHA-256 为 `E8014A0C5BD56B66B198710E75E2B8DDEC86002D1E3BC6CAF56FB3454A199C33`,14 个 ZIP 条目和内部哈希已逐条复验。包内候选后端 JAR SHA-256 为 `3F9F4506ED138A35F81FA84428BE4FBF5981D5D6D0F96AE2769F485D904E1CE3`,生产只读发布计划通过目标、服务、公开入口、64/64 schema 和生产禁 DDL 检查;现网 JAR 哈希仍不同,未执行发布。前述 `0.1.10` 双提交包仅保留追溯,不能再作为当前 APK 分发。
|
||||
|
||||
生活顾问调研已转成 `docs/content-candidates/aug1-life-advisor-content-candidates-v0.1.json`:包含 5 个禁用场景候选和 30 道待审政策题,内容候选校验脚本通过。由于当前只收到 1/24 份访谈,且正式来源、业务审核和 Rubric 签认尚未完成,正式可发布场景与正式有据标准答案均为 `0`;交付包中的候选文件只供审核,不得直接导入或启用。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user