diff --git a/docs/IMPLEMENTATION_HANDOFF.md b/docs/IMPLEMENTATION_HANDOFF.md index ad30b58..26a1e67 100644 --- a/docs/IMPLEMENTATION_HANDOFF.md +++ b/docs/IMPLEMENTATION_HANDOFF.md @@ -60,7 +60,7 @@ ### 3.3 已确认缺口 -- RN update 已编码 `XuqmAppUpdateModule`,只桥接 XuqmGroup Android `sdk-update:2.0.0-SNAPSHOT`;待 Jenkins 发布 Android Snapshot 后完成宿主 Gradle 编译和模拟器验证。 +- RN update 已编码 `XuqmAppUpdateModule`,只桥接 XuqmGroup Android `sdk-update:2.0.0-SNAPSHOT`;Android Snapshot、Bridge 编译和 App4 完整 debug 构建已通过,模拟器安装事务仍待验证。 - release-set 已统一使用 SHA-256,但签名 manifest 尚待实现。 - 原生 state 已成为 Bundle 版本与事务状态唯一真相;App 更新提示缓存仍可使用 AsyncStorage,但不保存 Bundle 版本。 - 客户端已改为 `/api/v1/rn/release-set/check` 单次请求目标入口依赖闭包;租户平台服务端接口尚待同步实现。 @@ -68,30 +68,29 @@ - 插件 API 已拆分为纯检查 `checkPluginRelease`、确认后安装 `installPluginRelease` 和自动场景 `checkAndInstallPlugin`;检查阶段不下载、不写本地状态。 - bugcollect 的采样、限频、fatal 绕过采样和 fatal/error 持久化策略已有纯逻辑测试覆盖。 - xwebview 的相册保存仍是可选宿主能力;其余文件下载能力已经下沉到 common。 -- Jenkins 发布参数已收敛到 common、update、bugcollect、xwebview;仍需增加依赖版本存在性与发布顺序硬校验。 +- Jenkins 发布参数已收敛到 common、update、bugcollect、xwebview;common/xwebview/update 新 alpha 已发布,仍需增加依赖版本存在性与发布顺序硬校验。 ## 4. 实施进度 -| 工作项 | 状态 | 说明 | -| ----------------------------- | ------ | ----------------------------------------------------- | -| 基线审计与门禁 | 完成 | 2026-07-17 本地 validate 全通过 | -| 实时接管文档 | 进行中 | 本文件为唯一实施状态入口 | -| common 公共上下文收敛 | 完成 | 公共基础与共享生命周期 16 测试 | -| bugcollect 依赖 common 与测试 | 完成 | 自动初始化、SHA、版本与策略已统一,4 测试 | -| xwebview 文件/权限能力与测试 | 完成 | 文件下沉 common,H5 摄像头/麦克风统一授权,4 测试通过 | -| update release set 与原生事务 | 进行中 | Android Snapshot 已发布;待 Bridge 编译和模拟器验证 | -| package 内容校验 | 待实施 | 四包完成后执行 | -| Jenkins alpha 发布 | 待实施 | 仅在全部门禁通过后触发 | -| App4 接入 | 进行中 | App4 已接入已发布 alpha;等待包含初始化重试的新 alpha | +| 工作项 | 状态 | 说明 | +| ----------------------------- | -------- | ------------------------------------------------------ | +| 基线审计与门禁 | 完成 | 2026-07-17 本地 validate 全通过 | +| 实时接管文档 | 进行中 | 本文件为唯一实施状态入口 | +| common 公共上下文收敛 | 完成 | 公共基础与共享生命周期 16 测试 | +| bugcollect 依赖 common 与测试 | 完成 | 自动初始化、SHA、版本与策略已统一,4 测试 | +| xwebview 文件/权限能力与测试 | 完成 | 文件下沉 common,H5 摄像头/麦克风统一授权,4 测试通过 | +| update release set 与原生事务 | 进行中 | Android Snapshot、Bridge、App4 构建通过;待事务 E2E | +| package 内容校验 | 待实施 | 四包完成后执行 | +| Jenkins alpha 发布 | 完成 | `#59/#60` 已发布 common、xwebview、update | +| App4 接入 | 完成构建 | 精确 alpha 已接入,六 Hermes 插件与 debug APK 构建通过 | ## 5. 下一步操作 -1. 通过 Jenkins 发布包含 common 初始化重试的新 alpha;本地源码版本号不手工替代 Jenkins 的原子版本分配。 -2. App4 使用新精确版本后,在网络正常的 Android 设备验证自动初始化、登录及扩展共享会话。 -3. 用仓库内 `native-test` 编译 RN Java Bridge,再在 Android 宿主补充 release-set crash/recovery 仪器测试。 -4. 收敛 Jenkins 四包依赖发布顺序和 package 内容检查。 -5. 后续租户平台实现 `/api/v1/rn/release-set/check`,服务端只返回目标入口与 common 的兼容闭包。 -6. Jenkins 下一版 `@xuqm/rn-update` 必须包含 Hermes 字节码构建改造;App4 不允许长期依赖手工修改的 `node_modules`。 +1. 在网络正常的 Android 设备验证自动初始化、登录及扩展共享会话。 +2. 在 Android 宿主补充 release-set 安装、冷启动确认和崩溃回滚仪器测试。 +3. 收敛 Jenkins 四包依赖发布顺序和 package 内容检查。 +4. 后续租户平台实现 `/api/v1/rn/release-set/check`,服务端只返回目标入口与 common 的兼容闭包。 +5. App4 保持使用 Jenkins 精确版本,禁止链接 SDK 源码、手改 `node_modules` 或本地发布正式制品。 ## 6. 常用验证命令 @@ -106,6 +105,15 @@ pnpm --dir packages/update test ## 7. 本轮变更记录 +### 2026-07-18 / Jenkins #58—#60 与 App4 精确版本接入 + +- `sdk-rn-publish #58` 被 Windows Hermes 测试正确阻断:测试曾把文本写成 `hermesc.exe`,Windows `spawnSync` 无法执行;该构建未发布任何包。 +- CLI 测试改为复制并执行 React Native 实际依赖的 Hermes 编译器,同一测试覆盖 Windows 可执行文件规则和真实字节码输出,不保留伪编译器兼容分支。 +- `sdk-rn-publish #59` 成功发布 `@xuqm/rn-common@0.6.0-alpha.15` 与 `@xuqm/rn-xwebview@0.3.0-alpha.11`。 +- `sdk-rn-publish #60` 成功发布包含 Hermes CLI 改造的 `@xuqm/rn-update@0.5.0-alpha.13`。 +- App4 已使用上述精确版本;startup/common/app/szyx/miniapp/workbench 六模块均生成为 Hermes bytecode version 98,Gradle 自动嵌入后 debug APK 构建成功。 +- 本仓库代码提交 `aacfbf0` 完成宿主运行时/XWebView 协议收敛,`04fc964` 修复 Windows 真实 Hermes 门禁;发布与 App4 构建证据均已取得,剩余仅为设备端 release-set 事务与网络场景验证。 + ### 2026-07-18 / Android Hermes 插件产物 - `xuqm-rn` 从宿主 `android/gradle.properties` 读取唯一 `hermesEnabled`,不要求用户再维护插件引擎字段。