9.0 KiB
STEP-113 FZG1 PBF Layer 与 Fast Gate 诊断 v1
日期:2026-10-11(JST)。状态:进行中;源码交付PARTIAL,等待RDC独立编译/设备验收,113层完整等价缺证据。
目标、基线与边界
优先B:每次真实Fast尝试可靠保存24 Gate、首错及失败全集;再交付真PBF专项场景、低频UI和机器可读导出。
- Mac
particle/main@c6d13e1059d464d312ac33acac87967300fa5dc4,仓库/Users/tei/dev/MapLibreParticleLab。 - 已实际核实模型
gpt-6.1-sol/high;NavSea只读ad9aa043,Integration本地80667d6c。 - 当前源码版本
13.6.1-particle.23未改;本次修改未发行。 - 只修改Shared Core诊断、Android Test App、相关C++测试源码、本Step/报告及开发记录追加。禁止改变Gate/Placement/Fade/Cache安全判定、公开RN方法、NavSea/Integration、构建基线、正式发行或Git提交推送。
- 既有STEP-110/111/113未跟踪任务书原样保留,无branch/worktree变更。
必做项与当前结果
- 同一次已计算input保存24项状态掩码与生产首错,一致性计数明确,不重复副作用函数。
- 120帧有界环形数据、生命周期及窗口聚合,所有Gate记录;pre/post明确分离。
- per-R实际pre cache validity/revision和两phase的cache build/reuse/invalidation/fallback/原因/执行状态;每phase最多16R,超限显式。
- 使用现有Native JSON出口追加可选fastGateTrace;共享锁快照,UI不访问Renderer mutable state。
- 明确reset位置;普通Full miss不清历史。新增4个C++回归用例,尚未运行。
- 正式URL专项PBF63/STATIC_RC/PARTICLE_OFF/PARTIAL_RCRR/SOURCE_CHANGE场景源码;保留原场景和STEP-102动态fixture。
- 运行时原63层完整定义/顺序保存检查,真实Sprite/Glyph/Tile URI检查、Style fingerprint/版本/Layer表/plan接受及最终解析原因导出。
- 固定camera/forecast请求、30fps目标;禁用手势;静态轮询不改Symbol/Source/forecast。
- UI每3秒单次query、30秒摘要、手动最近snapshot导出;Logcat标签STEP113Gate,Base64分块防截断。
- 中文完成报告、精确RDC命令、开发记录末尾追加与静态范围检查。
- 113层全量生产Layer/Source/显隐/业务数据与现场四段数字边界:缺同版本完整快照,未复制。
- Native/Kotlin编译、定向测试、APK、FZG1-2资源/层/逐帧/性能/开销验收:本轮Codex未执行。
证据等级与剩余风险
SOURCE-PROVEN:NavSea URL配置、当前源码RC选择器、shared天气片段ID/type/source。TEST-APP-STRUCTURAL:保序63层和部分RCRR检查代码、额外Source探针、既有canonical风场。DEVICE-MEASURED:本轮无结果。NOT-VERIFIED:正式服务回读(本机域名无法解析)、设备实际Layer表/113层全等价、构建与性能。
原始JSON63层不包含SDK可能追加的Annotation等内部层;必须使用实际Native styleLayers总数与Layer ID解析边界。部分RCRR锚点不同于现场[0,13)/[13,33)/[33,107)/[107,113),不能把结构测试说成同等画面。NavSea当前RenderSegmentHost源码RC与该历史现场RCRR_PREFIX分别记录。
pre里的changed/fade是上一完成RenderTree快照;当前Controller transition另存preFastPlacementTransition。Fast post不是新Placement结果。Debug simulationAdvance是进程级计数;实际forecast时间未新增Native回读接口,导出null并保存accepted请求。环形覆盖会丢弃最早详情但保留聚合;内存字节/CPU开销未实测。不能从零Fast提升或APK编译成功直接判性能PASS。
独立验收填写栏(由RDC追加真实结果)
| 项目 | 本轮状态 / RDC证据待填 |
|---|---|
| 源码diff/hash、分支/HEAD/dirty | Codex交付未提交;RDC填写制品对应源码 |
| 设备serial/主ABI/ABI list | 目标192.168.200.139:5555;未读取 |
| Native配置/编译/4个新用例与相关回归 | NOT RUN;填写命令/exit/耗时/日志/首错 |
| APK build-info/ZIP/ABI/字节/SHA/签名/安装 | NOT RUN;标准Validation脚本,禁止复用失败旧APK |
| PBF63完整资源、实际Layer manifest | NOT VERIFIED;填写SDK回读fingerprint和原/实际层数 |
| STATIC_RC首错/24Gate/window/mismatch | NOT VERIFIED;mismatch必须0,保存120帧详情 |
| PARTICLE_OFF/固定预报/camera | NOT VERIFIED;保存对照窗口和请求接受结果 |
| PARTIAL_RCRR实际四段/Layer ID/缓存状态 | NOT VERIFIED;明确部分等价,不能补写113层PASS |
| SOURCE_CHANGE基线/单次变化/pre-post | NOT VERIFIED;记录Source mutation和两次导出 |
| reset/前后台/退出/旧STEP-102回归 | NOT VERIFIED;不能以进程正常退出替代场景检查 |
| 内存/trace开销/CPU/FPS/截图/crash | NOT VERIFIED;不能用单制品构建成功替代 |
| 完整113层及原始现场selector | 缺证据;另需真实同版本快照 |
构建、检查与必做输出
Codex仅执行只读调查、文本一致性/范围检查、git diff --check与新增文件空白检查;无编译、C++运行、Jest、Gradle/APK、ADB、设备、发行或Git提交推送。
精确macOS Shell构建/ADB/场景/Logcat/私有JSON回读及Native定向命令见:docs/报告/STEP-113_FZG1_PBF_Layer与FastGate诊断_Codex完成报告_v1.md 第5节。Android ABI先匹配标准脚本x86_64,所有设备命令固定 -s 192.168.200.139:5555,由RDC执行。
交付源码/测试、本记录、上述完成报告、粒子开发记录追加已落盘。下一步仅由RDC独立验收;失败保留首个真实error及完整日志,再按本任务范围修复。不得借此放宽Fast/Placement/Cache安全判定或进入正式发行。
RDC 独立验收补记(2026-10-11,设备证据)
以下是 Codex 退出后 RDC 新执行的证据,不修改上文 Codex 未构建/未实测的历史结论。本次阶段判定:PARTIAL;Android 构建 PASS;五场景稳定基线采样 PASS;113 层等价与性能 NOT VERIFIED。
- 环境:Mac、particle/main;构建源码基于
c6d13e1059加 STEP-113 未提交改动,build-info 明确 git_dirty=true。此 APK 不是 Source Lock / 正式发行。 - 标准 build_validation_apk.sh 于 2026-10-11 08:35:08 JST 退出码 0;Gradle BUILD SUCCESSFUL in 19m 22s;Java 17.0.20.1;OpenGL/x86_64;ZIP/ABI/体积/SHA 自检通过。
- APK:artifacts/maplibre-particle/android-validation/MapLibreAndroidTestApp-validation-opengl-debug-x86_64.apk;66,587,454 bytes;libmaplibre.so 40,033,976 bytes;SHA-256 0054248bc3872e8670df4e9a10d11f1d65c0912a0482586cd7a247e880a6eaef。记录:同目录 build-info.txt、build.log。
- 设备:FZG1-2,ADB 192.168.200.139:5555,主 ABI x86_64;明确 -s 的 adb install -r 返回 Success,未卸载数据;设备安装后版本 13.6.1-particle.23。正式 PBF Style 模式运行并加载。启动前数秒 sceneReady=true 但 Native Layer=0 / plan not-configured 是加载暂态;只接受之后的 Native Layers 非零、planValid=true 稳定记录。
- 五个场景均由 ADB 明确 serial 启动;STEP113Gate Logcat Base64 summary 成功还原。每场景实际设备稳定状态的 decisionMismatch 都是 0。Full/Fast/Attempts 为生命周期累计,并非精确 60 秒窗口。
| 场景 | Native Layers | Attempts | Full | Fast | Retained 及关键证据 |
|---|---|---|---|---|---|
| PBF63 | 64(63+内部层) | 106 | 106 | 0 | R[0,64) Build0,unknown-dependency;无粒子持续驱动 |
| STATIC_RC | 66 | 876 | 875 | 0 | R[0,63) Build0,unknown-dependency;unsupported-continuous-layer、unsupported-scene 各876 |
| PARTICLE_OFF | 66 | 70 | 70 | 0 | no-particle-repaint=70;非相等时长性能对照 |
| PARTIAL_RCRR | 66 | 862 | 861 | 0 | R0[0,3) unknown-dependency;R2[39,64) 与 R3[64,66) Build0/static-placement;两个 unsupported Gate 各862 |
| SOURCE_CHANGE | 67 | 888 | 888 | 0 | 基线已记录;没有执行菜单手动 Source mutation |
- STATIC_RC 同帧失败全集汇总 CacheInvalid=870、revision-mismatch=871、placement-or-fade=780;PARTIAL_RCRR CacheInvalid=856。这些失败条件可能在同一帧并存,不能累加为帧数。即使修复缓存 Build,也还有 #22/#23 与其它独立 Gate。
- 设备摘要 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。
- 下一阶段必须分别处理 retained first-build 的安全准入、unsupported continuous layer、unsupported scene;不能直接删除 Gate 放行。