docs: record STEP-113 full-frame source mutation validation
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled

This commit is contained in:
tei
2026-10-11 09:24:08 +09:00
parent 92efa36f4c
commit b02e54de3d
3 changed files with 32 additions and 0 deletions

View File

@@ -83,3 +83,18 @@ Codex仅执行只读调查、文本一致性/范围检查、git diff --check与
- 设备摘要 JSON(不纳入 Git):artifacts/maplibre-particle/android-validation/step113/ 下的 pbf63-summary-ready.json、static-rc-summary.json、particle-off-summary.json、partial-rcrr-summary.json、source-change-baseline-summary.json。它们只是低频 summary,不是导出的完整 120 帧。 - 设备摘要 JSON(不纳入 Git):artifacts/maplibre-particle/android-validation/step113/ 下的 pbf63-summary-ready.json、static-rc-summary.json、particle-off-summary.json、partial-rcrr-summary.json、source-change-baseline-summary.json。它们只是低频 summary,不是导出的完整 120 帧。
- 仍 NOT VERIFIED:原 NavSea 113 层完整 Layer/Source/显隐及真实四段边界;实际 PBF/Sprite/Glyph 画面截图;Source 单次变更后前后对照;120帧手动详情导出;C++ GTest 运行;reset/后台、旧 STEP-102 场景回归;CPU/GPU/诊断开销;生产性能提升、正式发行。不得把部分结构等价当成现场复测或将 STEP-113 判为 CLOSED/PASS。 - 仍 NOT VERIFIED:原 NavSea 113 层完整 Layer/Source/显隐及真实四段边界;实际 PBF/Sprite/Glyph 画面截图;Source 单次变更后前后对照;120帧手动详情导出;C++ GTest 运行;reset/后台、旧 STEP-102 场景回归;CPU/GPU/诊断开销;生产性能提升、正式发行。不得把部分结构等价当成现场复测或将 STEP-113 判为 CLOSED/PASS。
- 下一阶段必须分别处理 retained first-build 的安全准入、unsupported continuous layer、unsupported scene;不能直接删除 Gate 放行。 - 下一阶段必须分别处理 retained first-build 的安全准入、unsupported continuous layer、unsupported scene;不能直接删除 Gate 放行。
## RDC 第二轮设备验收(2026-10-11:完整窗口与Source变更)
**本轮状态:设备逐帧诊断 PASS、单次Source变更链路 PASS,完整113层等价与生产优化仍 PARTIAL。** 本记录追加在原有RDC基线结果之后,旧内容中的“未执行单次Source mutation/120帧导出”是第一轮结束时的历史状态,不代表第二轮。
1. 在设备 FZG1-2、ADB 192.168.200.139:5555、版本 13.6.1-particle.23 上运行 SOURCE_CHANGE;通过屏幕中的 STEP 093 → STEP-113 → EXPORT LAST SNAPSHOT,使用明确serial的 adb exec-out run-as 回读 App 私有JSON;文件字节分别为变更前 277980、变更后约272KiB。精确位置:artifacts/maplibre-particle/android-validation/step113/source-change-before-full.json 和 source-change-after-full.json,均保留在 Mac 本机、未纳入Git。
2. 变更前 trace:lifecycle 1,attempts 13859,capacity/windowCount 120,最新119个完成的Full帧、0 Fast帧、最后1帧为pending、decisionMismatch=0;变更后 trace:同lifecycle,attempts 17476,windowCount=120,同样119个已完成Full、0 Fast、decisionMismatch=0。相同frame中前置状态 pre 的 placementBasis 标为上一完成RenderTree,post 完成Full才使用当前Full tree;knownMask覆盖24条Gate。
3. 在 SOURCE_CHANGE 场景操作一次 MUTATE PROBE SOURCE ONCE。Logcat解码的 source-command:mutation=1;变更后导出 commands.sourceMutationCount=1;Native lastMutation.sourceId=step113-source-probe,affectedSegmentIndices=[1],事件 TileMutation。变更前 lastMutation.sourceId=navsea_delivery,affectedSegmentIndices=[0]。累计 content-mutation Gate failure 从12变为14,但中间同时有正常瓦片更新,**不得把全部增量单独归因为这一次probe**。120帧环形窗口会覆盖发生瞬时变更时的精确帧,故本轮只确认命令/Native依赖定位,不声称捕获到单次Mutation帧的全部过渡时序。
4. 从变更后120帧中统计119个 completed 样本:首错 cache-invalid=119/119;同一帧 Gate #3 cache-invalid=119、#4 revision-mismatch=119、#12 static-unstable=105、#13 placement-or-fade=105、#22 unsupported-continuous-layer=119、#23 unsupported-scene=119。24Gate shadow 对应生产首错持续吻合,decisionMismatch=0。该统计是窗口而非全应用时间的FPS度量。
5. PBF同源核验:原始63层按SDK回读生产Style逐层定义保序、baseLayersPreserved=true;spec version=8,源Style名称 NavSea Delivery Full Semantic ExtentFix;productionFingerprintSha256=e0f9c2d1df38ae5d5953b561c52efe2f8590336de80b988e1d2935580d30b996(SDK回读序列化JSON,不是HTTP包字节)。SOURCE_CHANGE运行时67层,连续段[63,67)依次是 weather-color、raster-particle、测试circle、内建 org.maplibre.annotations.points symbol。STATIC_RC的连续段[63,66)同样包括内建annotation symbol。现有 continuousRangeSupportsParticleFastPath 要求其范围内**每一层**均支持 retained dynamic range;因此这些普通circle/symbol使Gate #22持续失败;这项结论为“源码判定+本机层清单”,未进行绕过Gate的运行实验。
6. Gate #23 supportedScene 源码逻辑与 retainedSupported、fastContinuousSupported 及单C配置有关,**#22与#23不是根因完全独立的两次失败**;二者虽为不同Gate,却可能共享同一个不支持的C层根因。Retained R[0,63)仍持续 Build0、unknown-dependency;部分RCRR其它R也有static-placement。不能只消除C阻断就承诺Fast会成功。
7. NavSea只读核对:当前src/map/particle/RenderSegmentHost.tsx 配置 R→C,从 rn-weather-color 开始;旧STEP-112的FZG1 113层RCRR_PREFIX属不同运行配置。同版本113个Layer的完整Source/ID/type/visibility/业务数据清单仍缺,不能把TEST-APP-STRUCTURAL的63/66/67层宣称为113层完整等价。FZG1-2存在debug NavSea安装,但**本轮未启动/修改NavSea用户数据**。
8. Android设备截图已采集:artifacts/maplibre-particle/android-validation/step113/step113-source-change-screen.png(1920×1200),仅归档,未进行NavSea同版本逐像素比对。Mac Native GTest CMake配置尝试退出码1:缺少libuv(记录/tmp/particle-step113-macos-cmake.log);未安装依赖,未进入GTest构建与运行,不记PASS。
9. 后续受保护顺序:先由跨项目负责人获取NavSea同版本113层完整只读snapshot及真实selector;然后在Test App精准构造Layer/Source/顺序并获取120帧一对一同条件比较;分别建立R Build准入、C范围支持、Scene聚合依赖的源码及像素等价证明;通过后才能在Shared Core按受控范围修改Gate逻辑。禁止在证据不足时关闭 fail-closed Gate。RDC未在本轮运行新Android编译、改变渲染逻辑或做正式发行。

View File

@@ -248,3 +248,18 @@ build-macos-metal/mbgl-test-runner --gtest_filter='FastGateTrace.*:ParticleFastP
- 设备摘要 JSON(不纳入 Git):artifacts/maplibre-particle/android-validation/step113/ 下的 pbf63-summary-ready.json、static-rc-summary.json、particle-off-summary.json、partial-rcrr-summary.json、source-change-baseline-summary.json。它们只是低频 summary,不是导出的完整 120 帧。 - 设备摘要 JSON(不纳入 Git):artifacts/maplibre-particle/android-validation/step113/ 下的 pbf63-summary-ready.json、static-rc-summary.json、particle-off-summary.json、partial-rcrr-summary.json、source-change-baseline-summary.json。它们只是低频 summary,不是导出的完整 120 帧。
- 仍 NOT VERIFIED:原 NavSea 113 层完整 Layer/Source/显隐及真实四段边界;实际 PBF/Sprite/Glyph 画面截图;Source 单次变更后前后对照;120帧手动详情导出;C++ GTest 运行;reset/后台、旧 STEP-102 场景回归;CPU/GPU/诊断开销;生产性能提升、正式发行。不得把部分结构等价当成现场复测或将 STEP-113 判为 CLOSED/PASS。 - 仍 NOT VERIFIED:原 NavSea 113 层完整 Layer/Source/显隐及真实四段边界;实际 PBF/Sprite/Glyph 画面截图;Source 单次变更后前后对照;120帧手动详情导出;C++ GTest 运行;reset/后台、旧 STEP-102 场景回归;CPU/GPU/诊断开销;生产性能提升、正式发行。不得把部分结构等价当成现场复测或将 STEP-113 判为 CLOSED/PASS。
- 下一阶段必须分别处理 retained first-build 的安全准入、unsupported continuous layer、unsupported scene;不能直接删除 Gate 放行。 - 下一阶段必须分别处理 retained first-build 的安全准入、unsupported continuous layer、unsupported scene;不能直接删除 Gate 放行。
## RDC 第二轮设备验收(2026-10-11:完整窗口与Source变更)
**本轮状态:设备逐帧诊断 PASS、单次Source变更链路 PASS,完整113层等价与生产优化仍 PARTIAL。** 本记录追加在原有RDC基线结果之后,旧内容中的“未执行单次Source mutation/120帧导出”是第一轮结束时的历史状态,不代表第二轮。
1. 在设备 FZG1-2、ADB 192.168.200.139:5555、版本 13.6.1-particle.23 上运行 SOURCE_CHANGE;通过屏幕中的 STEP 093 → STEP-113 → EXPORT LAST SNAPSHOT,使用明确serial的 adb exec-out run-as 回读 App 私有JSON;文件字节分别为变更前 277980、变更后约272KiB。精确位置:artifacts/maplibre-particle/android-validation/step113/source-change-before-full.json 和 source-change-after-full.json,均保留在 Mac 本机、未纳入Git。
2. 变更前 trace:lifecycle 1,attempts 13859,capacity/windowCount 120,最新119个完成的Full帧、0 Fast帧、最后1帧为pending、decisionMismatch=0;变更后 trace:同lifecycle,attempts 17476,windowCount=120,同样119个已完成Full、0 Fast、decisionMismatch=0。相同frame中前置状态 pre 的 placementBasis 标为上一完成RenderTree,post 完成Full才使用当前Full tree;knownMask覆盖24条Gate。
3. 在 SOURCE_CHANGE 场景操作一次 MUTATE PROBE SOURCE ONCE。Logcat解码的 source-command:mutation=1;变更后导出 commands.sourceMutationCount=1;Native lastMutation.sourceId=step113-source-probe,affectedSegmentIndices=[1],事件 TileMutation。变更前 lastMutation.sourceId=navsea_delivery,affectedSegmentIndices=[0]。累计 content-mutation Gate failure 从12变为14,但中间同时有正常瓦片更新,**不得把全部增量单独归因为这一次probe**。120帧环形窗口会覆盖发生瞬时变更时的精确帧,故本轮只确认命令/Native依赖定位,不声称捕获到单次Mutation帧的全部过渡时序。
4. 从变更后120帧中统计119个 completed 样本:首错 cache-invalid=119/119;同一帧 Gate #3 cache-invalid=119、#4 revision-mismatch=119、#12 static-unstable=105、#13 placement-or-fade=105、#22 unsupported-continuous-layer=119、#23 unsupported-scene=119。24Gate shadow 对应生产首错持续吻合,decisionMismatch=0。该统计是窗口而非全应用时间的FPS度量。
5. PBF同源核验:原始63层按SDK回读生产Style逐层定义保序、baseLayersPreserved=true;spec version=8,源Style名称 NavSea Delivery Full Semantic ExtentFix;productionFingerprintSha256=e0f9c2d1df38ae5d5953b561c52efe2f8590336de80b988e1d2935580d30b996(SDK回读序列化JSON,不是HTTP包字节)。SOURCE_CHANGE运行时67层,连续段[63,67)依次是 weather-color、raster-particle、测试circle、内建 org.maplibre.annotations.points symbol。STATIC_RC的连续段[63,66)同样包括内建annotation symbol。现有 continuousRangeSupportsParticleFastPath 要求其范围内**每一层**均支持 retained dynamic range;因此这些普通circle/symbol使Gate #22持续失败;这项结论为“源码判定+本机层清单”,未进行绕过Gate的运行实验。
6. Gate #23 supportedScene 源码逻辑与 retainedSupported、fastContinuousSupported 及单C配置有关,**#22与#23不是根因完全独立的两次失败**;二者虽为不同Gate,却可能共享同一个不支持的C层根因。Retained R[0,63)仍持续 Build0、unknown-dependency;部分RCRR其它R也有static-placement。不能只消除C阻断就承诺Fast会成功。
7. NavSea只读核对:当前src/map/particle/RenderSegmentHost.tsx 配置 R→C,从 rn-weather-color 开始;旧STEP-112的FZG1 113层RCRR_PREFIX属不同运行配置。同版本113个Layer的完整Source/ID/type/visibility/业务数据清单仍缺,不能把TEST-APP-STRUCTURAL的63/66/67层宣称为113层完整等价。FZG1-2存在debug NavSea安装,但**本轮未启动/修改NavSea用户数据**。
8. Android设备截图已采集:artifacts/maplibre-particle/android-validation/step113/step113-source-change-screen.png(1920×1200),仅归档,未进行NavSea同版本逐像素比对。Mac Native GTest CMake配置尝试退出码1:缺少libuv(记录/tmp/particle-step113-macos-cmake.log);未安装依赖,未进入GTest构建与运行,不记PASS。
9. 后续受保护顺序:先由跨项目负责人获取NavSea同版本113层完整只读snapshot及真实selector;然后在Test App精准构造Layer/Source/顺序并获取120帧一对一同条件比较;分别建立R Build准入、C范围支持、Scene聚合依赖的源码及像素等价证明;通过后才能在Shared Core按受控范围修改Gate逻辑。禁止在证据不足时关闭 fail-closed Gate。RDC未在本轮运行新Android编译、改变渲染逻辑或做正式发行。

View File

@@ -1142,3 +1142,5 @@ Android V3-08 单次综合验收已完成并关闭。Native `13.4.1-particle.2`
- Step与中文交付报告见 `docs/50_Step记录/STEP-113_FZG1_PBF_Layer与FastGate诊断_v1.md`、`docs/报告/STEP-113_FZG1_PBF_Layer与FastGate诊断_Codex完成报告_v1.md`;RDC独立完成编译、FZG1-2逐帧/资源/场景与开销验收,APK成功不等于性能PASS。 - Step与中文交付报告见 `docs/50_Step记录/STEP-113_FZG1_PBF_Layer与FastGate诊断_v1.md`、`docs/报告/STEP-113_FZG1_PBF_Layer与FastGate诊断_Codex完成报告_v1.md`;RDC独立完成编译、FZG1-2逐帧/资源/场景与开销验收,APK成功不等于性能PASS。
- 2026-10-11 STEP-113 RDC:标准Android Validation APK构建exit=0;FZG1-2安装成功,五场景稳定Logcat摘要(Native层64/66/66/66/67)均decisionMismatch=0;STATIC_RC Full875/Fast0,PARTIAL_RCRR Full861/Fast0,发现cache-invalid外#22/#23同时阻断。完整113层、手动Source变化、性能和回归未验收,整体PARTIAL;详细证据追加于STEP与报告。 - 2026-10-11 STEP-113 RDC:标准Android Validation APK构建exit=0;FZG1-2安装成功,五场景稳定Logcat摘要(Native层64/66/66/66/67)均decisionMismatch=0;STATIC_RC Full875/Fast0,PARTIAL_RCRR Full861/Fast0,发现cache-invalid外#22/#23同时阻断。完整113层、手动Source变化、性能和回归未验收,整体PARTIAL;详细证据追加于STEP与报告。
- 2026-10-11 STEP-113第二轮:FZG1-2已保存Source变更前后各120帧完整Snapshot,decisionMismatch=0;单次Source mutation=1,Native最后变更为step113-source-probe、影响C1;稳定119帧同时命中#3/#4/#22/#23。已确认内建annotation symbol进入C,且#22/#23可共享根因;Mac Native GTest因缺libuv未运行,NavSea完整113层/性能仍PARTIAL。详见STEP记录追加段落。