docs: record STEP-097 A1 FZG1 APK smoke validation
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled

This commit is contained in:
tei
2026-09-25 23:55:57 +09:00
parent 91c2491b0e
commit 0d13552bed
4 changed files with 73 additions and 1 deletions

View File

@@ -12,3 +12,10 @@
| D 交付 | 部分完成 | 已写 24 项矩阵、集中验证清单、Step、本轮完成报告和开发记录。所有构建、测试、运行、发布均 NOT RUN;后续 RDC 独立审查。 | | D 交付 | 部分完成 | 已写 24 项矩阵、集中验证清单、Step、本轮完成报告和开发记录。所有构建、测试、运行、发布均 NOT RUN;后续 RDC 独立审查。 |
允许范围与禁止范围按任务书。未完成项目不勾选。RDC 后续执行构建及运行;本轮不运行构建或 Jest。 允许范围与禁止范围按任务书。未完成项目不勾选。RDC 后续执行构建及运行;本轮不运行构建或 Jest。
## 2026-09-25 RDC/FZG1 A1 APK 实际验证补记
- 用户授权在 FZG1 而非 Win11 虚拟机测试。Mac RDC 以 HEAD `91c2491b0` 的 clean 基线执行标准 OpenGL x86_64 Validation APK 脚本:Gradle `BUILD SUCCESSFUL in 15m 59s`,APK 60,295,184 bytes,SHA-256 `8677197c5f83a22747cb51f0c261edffc5db4678fc25b3f366474f6ecb94dc99`。
- 经 `adb -s 192.168.200.139:5555` 在 Panasonic FZG1-2 覆盖安装 `Success`;设备内安装 APK SHA-256 与产物一致。保存原包备份、20 张截图/UI XML、ADB 操作日志与实时 Logcat;设备实际验证见 `docs/报告/STEP-097_A1_FZG1测试APK与实机验证报告_v1.md`。
- R-C-R、R-C、C-R、C-only、single continuous、缓存 OFF/ON、Camera、缺失 START/END 后恢复、TOP_REORDER、跨连续区与 fail-closed 均已做**既有场景冒烟**,未发现本次测试窗口内 FATAL/SIGSEGV/SIGABRT。
- B/D 场景 top 不可见而诊断仍 topPresent=true 的现象已记录为待复核,不凭此断言确定像素错误;01 同 tile fixture、02 Metal、03 render exception 注入、19 GTest 仍未完成。因此 **A1 保持阻塞/PARTIAL,A2/B/C 未开始**。此补记更新了之前 Codex 报告中“全部测试 NOT RUN”的后续事实,不追溯修改旧报告。

View File

@@ -1,6 +1,6 @@
# STEP-097 V13 修复后集中验证清单 v1 # STEP-097 V13 修复后集中验证清单 v1
状态:**NOT RUN**。本轮停在 A1 部分代码检查点;下列命令只为 RDC 后续集中验证准备,不能当作已通过证据。先由 RDC 独立审查 diff,补齐 A1 的专用像素、Metal 附件和异常注入测试源码,再执行。A2/B/C 未实施,相关集合不得用于验收。 状态:**PARTIAL:FZG1 A1 既有场景冒烟已执行,其余 NOT RUN**。下方原清单编写于 Codex A1 部分交付时;后续 RDC 实际执行事实与边界见文末。A1 专用 stencil 像素、Metal 附件、render 异常注入与 19 GTest 仍待完成;A2/B/C 未实施,不得以设备冒烟替代正式验收。
## 通用 Core 与现有测试入口(RDC) ## 通用 Core 与现有测试入口(RDC)
@@ -43,3 +43,9 @@ npm run typecheck
``` ```
必须同时检查实际已安装 RN tgz、Android Gradle substitution、iOS SPM exactVersion 与 lockfile;不得以 node_modules 临时软链代替默认安装结果。本清单不含 Jest 命令。 必须同时检查实际已安装 RN tgz、Android Gradle substitution、iOS SPM exactVersion 与 lockfile;不得以 node_modules 临时软链代替默认安装结果。本清单不含 Jest 命令。
## 2026-09-25 FZG1 A1 部分执行结果(覆盖上方 Codex 交付时的 NOT RUN 状态)
- 标准构建脚本已由 Mac RDC 实际执行;HEAD `91c2491b0`,x86_64 OpenGL Debug APK `BUILD SUCCESSFUL`,SHA-256 `8677197c5f83a22747cb51f0c261edffc5db4678fc25b3f366474f6ecb94dc99`。冻结于 `artifacts/maplibre-particle/step097-fzg1/`。
- ADB `192.168.200.139:5555` 对 FZG1-2 实际执行覆盖安装、20 组截图/UI XML、既有 STEP-093 topology、CACHE OFF/ON、相机、非法范围恢复与 mutation/fail-closed,日志见 `docs/报告/STEP-097_A1_FZG1测试APK与实机验证报告_v1.md`。
- 此处只是设备冒烟;A1 的同 tile stencil fixture、Metal 附件验证、真正 LayerGroup exception 注入与 `OldCacheReleaseCannotChargeReplacementAtSameIndex` GTest **仍 NOT RUN/缺专用入口**;A2/B/C 和软件发布亦未执行。

View File

@@ -0,0 +1,53 @@
# STEP-097 A1 FZG1 测试 APK 与实机验证报告 v1
**结论:Android FZG1 既有场景冒烟完成;STEP-097 A1 仍为 PARTIAL / BLOCKED。** 本次确实重新构建、安装并通过 ADB 操作 FZG1-2,获得 20 张截图与设备诊断。它不替代 01 stencil 同瓦片双目标注入、02 iOS Metal 附件验证、03 LayerGroup 绘制异常注入及 19 C++ GTest 的正式检查点;A2/B/C 未执行。
## 1. 源码、设备与边界
- 验证日期:2026-09-25;开发/构建/ADB 控制:Mac-mini-tei.lan;仓库:`/Users/tei/dev/MapLibreParticleLab`,`particle/main`,代码 HEAD `91c2491b0ef73fb9e01d7861b9c4ed7b55498197`,构建开始 `git_dirty=false`。
- Integration 已通过 RDC 同步 `main` 至 `318f8ccf911ac3136c3086a1d14e61f83e2d4bce`;本轮未改公共协议、Integration 或 NavSea。
- 设备:Panasonic `FZG1-2`,ADB `192.168.200.139:5555`,Android-x86/Bliss x86_64,1920×1200,ABI 列表以 `device-abi.txt` 为准。ADB 直接从 Mac 连接设备;**没有使用 Win11 虚拟机或模拟器**。
- 包名:`org.maplibre.android.testapp`;Activity:`.activity.particle.ParticleCoreLayerValidationActivity`;测试时始终使用 `adb -s 192.168.200.139:5555`。
## 2. APK 构建和安装的实际结果
- 命令:`./tools/particle_android_validation/build_validation_apk.sh`;OpenGL Debug、x86_64、strip native debug symbols;Gradle `BUILD SUCCESSFUL in 15m 59s`,86 tasks(29 executed / 57 up-to-date)。
- APK:`artifacts/maplibre-particle/step097-fzg1/MapLibreAndroidTestApp-STEP097-A1-91c2491b0-FZG1-x86_64.apk`,**60,295,184 bytes**;内含 `lib/x86_64/libmaplibre.so` 39,422,632 bytes;ZIP/ABI/标准 Pipeline 检查通过。
- APK SHA-256:`8677197c5f83a22747cb51f0c261edffc5db4678fc25b3f366474f6ecb94dc99`;`build-info.txt` 记录同 commit、ABI、时间和 hash。冻结副本与标准 Pipeline 产物字节一致。
- 已备份旧安装包至 `artifacts/maplibre-particle/step097-fzg1/before/original-installed-base.apk`。新包使用 `adb -s 192.168.200.139:5555 install -r <APK>` 覆盖安装,输出 `Success`;设备内 `base.apk` 的 SHA-256 与新包完全相同。未清理设备应用数据、未改 NavSea App。
## 3. FZG1 ADB 操作与截图证据
脚本:`artifacts/maplibre-particle/step097-fzg1/run_smoke.py`(本地验证资料,不属于产品源码)。`smoke-run.log` 与 `mutation-run.log` 两次执行 RC=0;另有针对事件的 `live-capture-run.log` RC=0。原始截图、UI XML、日志统一保存在同目录的 `after/`。以下只表述真实场景和屏幕/诊断结果:
| 截图 | 场景 | 设备观察 |
| --- | --- | --- |
| 00–01 | 普通启动,A:R-C-R | Activity 可启动;A 范围 valid=true、fallback=false,B/T 各一缓存并有 build/reuse;蓝底、粉/灰图形及白线可见。 |
| 02–05 | B:R-C、C:C-R、D:C only、E:single continuous | 场景可切换,截图显示对应图形可见/隐藏;状态均 valid=true、fallback=false。 |
| 06–08 | 恢复 A,CACHE OFF→ON | OFF:`runtime-disabled`、fallback、Fast inactive;ON:`first-frame` 重新构建并恢复 reuse。 |
| 09 | CAMERA NEXT | 相机变化后仍有有效范围与重建/复用,未观察到崩溃或整幅永久清空。 |
| 10–11 | 缺失 START→RESTORE VALID | `valid=false/fallback=true/caches=0`,恢复后 `valid=true/fallback=false`、重建。 |
| 12–15 | TOP REORDER、CROSS CONTINUOUS、FAST FAIL-CLOSED、RESET A | 层序变体可切换;带额外 Continuous 层时 Fast 关闭并保留全路径绘制,重置后恢复 Fast。 |
| 16–19 | 实时抓日志时重置 A、相机、缺失 END、恢复 | 日志有 `STEP093_SCENE_READY` / `STEP093_RANGE`,缺失 END 后设备诊断为 `end-layer-missing`,恢复后有效。 |
- 设备全局 Logcat 缓冲区较小,单次事后 dump 可能覆盖早期 STEP093 事件,故补充**实时过滤采集** `after/live-particle-logcat.txt`。该文件记录 A 场景 READY、缺失 END 和恢复的实际事件;`after/logcat-final.txt` 保留事后日志。
- 在本次保存的设备日志与实时采集内未发现 `FATAL EXCEPTION`、`SIGSEGV` 或 `SIGABRT`;最后确认该测试 Activity 仍为 topResumedActivity。这不是长稳/全设备无故障的证明。
## 4. 异常观察及未关闭的检查点
**待复核诊断现象(不直接判定绘制缺陷):** B「BOTTOM+CONTINUOUS」与 D「CONTINUOUS ONLY」截图中没有上段粉色/白线对象,但诊断仍分别报告 `topPresent=true`、`caches=2/1`,且 T reuse 计数继续增长。可能涉及空段、旧 topology 统计或诊断刷新/对象身份;需用独立布局期望与源码追踪证实,不能仅凭截图认定旧上段污染像素。截图:`02_B_R-C.png`、`04_D_C.png`。
| 原 A1 问题 | 本次验证覆盖 | 状态 |
| --- | --- | --- |
| 01 N01/B01 stencil CPU/GPU 切换 | 只做 R-C-R 等既有不同 GeoJSON source 的视觉冒烟、相机/缓存切换;**没有同 vector source/same tiles 在 R-R/R-C-R 切换的像素 fixture** | 未闭合 |
| 02 N02/B02 Metal depth/stencil | 本次 APK 是 Android OpenGL;不可能代替 Metal 附件、clear/load/store 和 combined attachment 验证 | 未执行 |
| 03 N03/B12 render 抛异常后错误缓存成功 | 做了配置无效 fallback→恢复及 Fast fail-closed;**没有真正 LayerGroup render 抛异常注入与下帧恢复** | 未闭合 |
| 19 F09/O01 旧 cache release 归属 | 设备保留了 topology/资源计数截图;新增 `OldCacheReleaseCannotChargeReplacementAtSameIndex` GTest **没有执行** | 未闭合 |
本次不是完整 STEP-097,也不意味着 24 项均修复;A2、B、C、正式 FZG1 同瓦片遮罩回归、iOS Metal、C++ GTest、性能 benchmark、发布与 NavSea 产品 Gate 均未完成。不存在新正式软件发布,原 `.13` tag/manifest/产物未动。
## 5. 后续准确步骤
1. 补齐 01 同 tile 的 R-R/R-C-R/C-R-R 设备 fixture,02 Metal 附件测试入口,03 render exception 注入及 recovery;解决/解释 B、D 的 topPresent 诊断现象。
2. RDC 在同 commit 执行 19 定向 GTest,补齐上述源码测试;Android 再集中构建/安装一次而不是逐按钮重装,iOS Metal 由 Mac 单独做对应设备验收。
3. 满足 A1 代码/测试入口检查点后,才进入 STEP-097 A2/B/C;本次不得修改旧三轮调查或将部分冒烟标成 A1 PASS。
证据目录与 APK 目前位于 Mac 仓库忽略的 `artifacts/maplibre-particle/step097-fzg1/`。已安装 APK 和冻存 APK SHA 相同,相关文本记录、截图、日志可复核。

View File

@@ -948,3 +948,9 @@ Android V3-08 单次综合验收已完成并关闭。Native `13.4.1-particle.2`
- Mac `particle/main` 从 `720d309` 开始;阶段 0 只读复核三轮审查、`.13` manifest/tag 与本地 Integration C-001/RFC-001,形成全部 24 项去重矩阵。Integration 远端同步仍待 RDC 独立确认。 - Mac `particle/main` 从 `720d309` 开始;阶段 0 只读复核三轮审查、`.13` manifest/tag 与本地 Integration C-001/RFC-001,形成全部 24 项去重矩阵。Integration 远端同步仍待 RDC 独立确认。
- A1 部分代码提交 `e67e4961b`:新目标重置 stencil CPU 映射,Metal depth/stencil clear 与 combined 附件绑定,retained 绘制异常后禁止缓存成功并 full fallback,旧 cache release 不记入新 topology;新增计数归属 GTest 源码。 - A1 部分代码提交 `e67e4961b`:新目标重置 stencil CPU 映射,Metal depth/stencil clear 与 combined 附件绑定,retained 绘制异常后禁止缓存成功并 full fallback,旧 cache release 不记入新 topology;新增计数归属 GTest 源码。
- 01/02/03 的专用像素、附件和异常注入测试入口尚缺,A1 未按任务书完成;停止于 A1,不进入 A2/B/C。`git diff --check` 等静态核对无错误;所有构建、测试(含 Jest)、安装、GPU 运行、性能与发布均 **NOT RUN**。后续由 RDC 独立审查并补齐验证入口及集中运行。 - 01/02/03 的专用像素、附件和异常注入测试入口尚缺,A1 未按任务书完成;停止于 A1,不进入 A2/B/C。`git diff --check` 等静态核对无错误;所有构建、测试(含 Jest)、安装、GPU 运行、性能与发布均 **NOT RUN**。后续由 RDC 独立审查并补齐验证入口及集中运行。
### 2026-09-25 STEP-097 A1:FZG1 测试 APK 与 ADB 冒烟
- Mac clean 基线 `91c2491b0` 以标准 Pipeline 构建 OpenGL x86_64 APK,Gradle `BUILD SUCCESSFUL in 15m 59s`;60,295,184 bytes、SHA-256 `8677197c5f83a22747cb51f0c261edffc5db4678fc25b3f366474f6ecb94dc99`。
- `adb -s 192.168.200.139:5555` 在 FZG1-2 覆盖安装成功,设备内文件 hash 相同;既有 STEP-093 场景、缓存/相机/非法范围恢复等 20 张截图与日志完成。报告:`docs/报告/STEP-097_A1_FZG1测试APK与实机验证报告_v1.md`;本地证据保存在忽略目录 `artifacts/maplibre-particle/step097-fzg1/`。
- A1 的 stencil 同 tile、Metal、render exception 以及 19 定向 GTest 未闭合;B/D topPresent 诊断异常待复核,A1 仍 PARTIAL,A2/B/C 未进入,未发布下一软件版本。