Files
MapLibreParticleLab/docs/报告/STEP-117_原PBF_Fast缓存准入_Codex完成报告_v1.md
tei fb8e78ac1a
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
test: satisfy STEP-117 strict NDK C++ warning checks
2026-10-11 13:06:11 +09:00

13 KiB
Raw Permalink Blame History

STEP-117 原 PBF Fast 缓存准入 Codex 完成报告 v1

日期:2026-10-11(JST)。结果:BLOCKED。缺tide零GPU贡献与Symbol首次Build均未获得充分安全证据,保持fail-closed;已完成源码调查、原120帧复核、七项非Jest回归源码及全部中文交付。原PBF Fast目标没有完成。

1. 实际模型、环境和版本

  • 实际 GPT-6.1-Sol(gpt-6.1-sol)/ high,读取当前会话rollout 01a12912-9a0c-7712-9624-793f04b3f681 的turn_context.model/effort确认;未升级、切换、启动子代理或第二Codex。
  • Mac.lan / Darwin24.6.0 / x86_64;仓库 /Users/tei/dev/MapLibreParticleLab;branch particle/main。
  • 起点/交付HEAD 43e5f5b91598b9c3d3f1c788052d4bbd2d616668;无commit/push、无远端回读、无分支/子模块操作。起点tracked clean,三份未跟踪任务书STEP110/111/117保留。
  • platform/android/VERSION=13.6.1-particle.23,未改公开版本/发行/Source Lock;本轮没有APK/AAR/XCFramework。
  • Integration本地只读HEAD 80667d6c343411d03a760425438e3d292f452118;只读instructions/contract等规范,无跨仓写入、同步或向他人发送消息。

2. 根因与停止点

原实机JSON SHA cd491d2acca97119f1d4f2d6f77eb7b229c17b90d4be1181a59202308429b219 已完整解析并逐帧复算。STEP116的90秒FastDelta=0、FullDelta=920是保留实测。本轮复核120帧为119Full/0Fast/1pending;#3/#4/#23各失败120、#12/#13各105、#22为0、mismatch0。原63层和C两天气层保留,R仍缺tide、Build/Reuse=0。

缺源:缺source没有新LayerRenderItem,但RenderLayer的停用只排队RemoveGroup;processChanges执行后才退出registry,停用并不清旧drawables/tiles/placementData。原JSON无双group/旧数据排除与成功提交代次;不能把absence登记为loaded/stable或伪造revision。保持missing-source。

Symbol:pre有105帧changed=false/fade非零/transition=true及15帧true/0/false,post104+15。正常Continuous重算必changed,recent必stale;duration0/禁用transition也不能建立结果证书。per-R Build及retainedSupported/preparedScene各有独立保护,layer fingerprint只含Impl指针/index,缺opacity/dynamic attributes/atlas/collision/uniform等最终GPU状态。建立完整证书需要跨Placement/Bucket/Drawable/Atlas/Renderer生命周期实现与平台证据,本轮按任务停止该部分,所有Gate保持。

调查文件给出源码链、已成立/未成立证据、反例和B1–B4协调需求。任务明确允许证据不足保持fail-closed;没有以既有烟测或测试进程代替正式目标,也没有把研究完成称为实现完成。

3. 实际修改文件及接口边界

修改:

  1. test/renderer/retained_underlay_cache.test.cpp:新增4项Step117Safety,实际Controller/Placement生命周期、disabled/zero duration、缺源墓碑与恢复的cache状态机、camera/viewport/content/topology/config失效。
  2. test/renderer/render_orchestrator_error.test.cpp:新增3项Step117Safety,实际createRenderTree/sourceDiff、registry RemoveGroup队列、Tile/Glyph/Image回调与context/style清理;仅扩展已有测试friend结构的enqueue辅助,不改生产头文件。
  3. 粒子开发记录.md:只追加STEP117记录。

新增:

  1. docs/20_调查/STEP-117_PBF_R首次缓存Build安全证据_v1.md。
  2. docs/50_Step记录/STEP-117_原PBF_Fast缓存准入_v1.md。
  3. docs/60_测试/STEP-117_FZG1_原PBF真实Fast验收计划_v1.md。
  4. 本报告。

生产src/include/Shader/Android/RN/JNI/API/ABI零修改;没有新增诊断字段/控制协议、源状态或新的准入bool。test/CMakeLists.txt已登记两个测试文件,无需修改构建表。原Step113PbfGateScene、原五场景/SOURCE_CHANGE、STEP116空Annotation修复、STEP102/114入口、旧测试断言均保留。没有测试App假tide,没有删除正式tide-spots或Symbol。README无运行入口变化,本轮无需修改。

4. 七项测试的准确状态

Step117Safety.* 七项全部 NOT RUN / NOT COMPILED,没有GTest成功日志。Controller与sourceDiff/observer/registry测试调用真实实现;空桶、无数据step117-source与两个测试group是最小生命周期fixture,不能当作原PBF像素/旧GPU资源证书。显式markBuildSucceeded仅属于cache状态机fixture,不是GPU成功;observer在测试线程注入,不代表真正异步网络并发。

尚缺完整Renderer首次Build与提交证书、跨source/跨段collision、真实glyph/atlas延迟、曾渲染后缺源的旧Drawable清理、Full/Fast像素对照和设备恢复。既有Annotations.Step116实际图像测试保留,新增tracker测试不冒充真实Annotation设备验证。

5. 已执行与未执行检查

已执行:前置文档和实际源码读取;本机branch/HEAD/status/submodule与Integration本地HEAD只读核对;原JSON SHA/结构/120帧逐项Gate及pre/post统计复核;静态API/变更范围、测试登记/签名/生命周期人工核对;git diff --check、中文文档和开发记录/保护文件完整性核查。最终具体收尾结果见第8节。

未执行:任何Native/CMake/Ninja/Bazel编译/链接/codegen/GTest、Gradle/APK、ADB/安装/运行/设备logcat/截图、Jest、iOS/Metal设备、性能或像素测量、commit/push/远端HEAD、发布。未观察到新编译/测试失败,因为根本未运行;不能推断会通过。历史Mac缺libuv是STEP116 RDC事实,本轮没有重跑或修依赖。

6. RDC接手与具体协调需求

  1. RDC独立审查本报告、调查、diff及七测试。按验收计划逐项运行Mac Native定向命令,首错即停,报告实际匹配7项的数量/结果;不使用旧runner。
  2. 粒子负责人协调Shared Core:缺源absent依赖绑定已应用双group排除、旧Renderable数据与成功提交代次;Symbol结果证书先影子比较,覆盖collision/opacities/vertices/atlas/uniform/camera/context/异步纪元。没有证书维持BLOCKED,不修改Gate迎合计数。
  3. Integration协调正式Style/Host tide是否为真实动态注入、加载与身份语义;不在此仓库改服务器/造数据。公共责任/错误语义改变才提交RFC/ADR;内部优化可以平台中性实现,无需凭空扩大公共合同。
  4. 后续受控实现完成、RDC审计与源码锁定后,按用户明确授权执行一次标准 ./tools/particle_android_validation/build_validation_apk.sh、install -r、同HEAD/设备SHA预检、原STATIC_RC至少90秒、完整120帧24Gate与Mutation/用户画面验收。没有生产改动时重建本轮测试源码不能解决Fast0。

精确命令与证据矩阵在 docs/60_测试/STEP-117_FZG1_原PBF真实Fast验收计划_v1.md。不由Codex运行,不以STEP114 FAST_SMOKE代替。Native编译与测试、Android SHA、真实Build/Reuse/Fast、用户视觉和安全回退分别判定,不把单项成功写成全任务PASS。

7. Git/制品待回填项

本轮不commit/push,提交message/hash不适用;远端HEAD未核验。RDC若后续获授权,只按第3节七个明确任务路径scoped提交(任务书是否纳入另按授权),不得包含STEP110/111、其他dirty/untracked或Git忽略JSON。普通push后回读 origin refs/heads/particle/main 并与实际提交核对。

Native runner来源/日志/exit/耗时、Android构建源码HEAD/制品SHA/设备SHA、独立Fast/视觉验收均为“待RDC回填”,不提前填成功或借用旧c48a72a9来源。

8. 静态收尾结果

  • git diff --check退出0,无空白诊断。tracked差异只含第3节两个测试文件和开发记录,新增356行、删除0行;四份新文档逐个执行git diff --no-index --check /dev/null <明确路径>,无空白诊断,exit1仅表示与空文件有差异。
  • 七项TEST(Step117Safety, ...)源码名称唯一,两个文件在现有test/CMakeLists.txt登记;原文件diff只有插入,原测试代码及断言没有删除或替换。人工核对当前UpdateParameters成员顺序、Placement/observer/sourceDiff相关声明,以及测试source销毁前detach与排空scheduler;未作编译,因此不能据此保证测试可执行。
  • 生产Renderer/Orchestrator/Placement/particle_fast_path/render_segment_json/render_segment公开头、AnnotationManager和STEP113/114场景与HEAD字节相同。原Step113PbfGateScene SHA=d50281713ae551edc9a48b1550254602e4950c9ddca66855bb689620c9f6f2b6。全部tracked修改路径不含src/include、公共API/ABI或Android;24Gate、计数与正式场景保持。
  • 开发记录原HEAD的167,048字节前缀完整,原SHA=8544702389dab5d829afe145dd5e7cd23083992a887b5fc4857a8b57f468cf8a;本轮仅追加2,252字节/10行。
  • STEP110未跟踪MD SHA=33037df71b4b30aa7956d59f4b99f77af3085405b24111bc0fe11ec857a93db0;STEP111=f3a5806f25384bf46055db2edfea0d21bfbc4124184bc813b46e38b8079c1ec4,保持原值且仍未跟踪;暂存区为空。
  • 四份新文档中文正文/成对代码围栏/空白核对完成;验收计划内Python只做AST解析,没有运行其中命令。原274,693字节JSON SHA未变、仍Git忽略,120帧24Gate失败数逐帧与聚合相符,pre/post所有R的Build/Reuse=0、placementGatePassed=false。
  • 静态审计脚本曾分别因Git中文路径转义和pre/post中cache字段为扁平序列化而中止。随后改为--name-only -z读取真实路径,并按原JSON扁平build/reuse字段复核;没有修改证据、测试断言或验收阈值。修正后的范围/证据审计完成。这两次是审计读取错误,不是C++编译/测试结果。
  • 终态HEAD保持43e5f5b91598b9c3d3f1c788052d4bbd2d616668;status只有三个tracked修改、四份新交付文档及起点三份未跟踪任务书。未commit/push,独立RDC验收尚未开始。

以上只证明静态范围与文件完整性。安全准入仍BLOCKED,Native/Android测试未运行,真实Fast/像素/性能目标没有通过。

RDC独立核验附录(2026-10-11)

  • RDC先核对Integration main=80667d6c343411d03a760425438e3d292f452118、Particle当前particle/main=43e5f5b91598b9c3d3f1c788052d4bbd2d616668;源码与git已跟踪改动起点为空,仅两个用户保护未跟踪任务书。
  • 用户本轮要求继续真实STEP113 PBF Fast优化,Codex实际GPT-6.1-Sol High。调查原STEP116实机120帧JSON,缺tide Source以及Symbol placement重算/stale循环仍无法安全创建首次GPU缓存;已有证据只能证明无新的LayerRenderItem,不能证明旧GPU drawables/已经应用的双LayerGroup删除。保留既有24Gate/生产Core,安全准入BLOCKED。
  • Codex新增7个Step117Safety C++测试源码,分布于两个既有登记的test/renderer文件;RDC独立对两个最终文件以当前Android OpenGL/x86_64的NDK clang++、真实compile_commands.json C++20 flags和googletest头文件进行-fsyntax-only。retained_underlay_cache.test.cpp exit0(6.3s),render_orchestrator_error.test.cpp exit0(5.3s),RDC检查结果PASS。语法检查日志存Git忽略artifacts/maplibre-particle/step117-native-syntax/*.log。
  • RDC核查原生产src/include/Renderer/Placement/Fast Gate、Android STEP113/114及Source/style均无文件改动,git diff --check通过。故没有新的运行时改动供Android APK验证:重复编译/安装STEP116相同行为的APK不能使Build/Reuse/Fast改善,未触发第二次高成本Android周期。GTest链接运行、GPU像素等价、iOS/Metal、真实Fast目标仍NOT RUN/BLOCKED,不能将NDK语法退出0标为GTest PASS。
  • Integration正式现有RFC/ADR/Contract/status/coordination未包含所需R Symbol已提交GPU结果证书。B1缺源零贡献、B2 Symbol跨层结果证书与影子验收、B3真实tide Source身份/宿主动态注入语义须由粒子负责人/Integration按职责协调设计;本执行项目不得自行改变Shared Core公共契约或正式Style。
  • 七项测试当前仍是源码语法检查级别,不等于实测; 下一步应先由粒子负责人协调Shared Core结果证书及合法真实tide来源,受控实现后再使用原STEP113 STATIC_RC APK复测。任意无法安全证明的条件继续fail-closed。

RDC 严格 -Werror 编译参数复核修正(2026-10-11)

第一次NDK -fsyntax-only按项目真实C++20参数编译两个测试文件均exit0,但测试辅助函数遗漏可选retainedUnderlayState字段初始化,产生一条 -Wmissing-designated-field-initializers 警告;第一次探测曾附加 -Wno-error,不能直接标作正式 -Werror 验收。RDC后续对 test/renderer/retained_underlay_cache.test.cpp 增加一行显式 retainedUnderlayState={},保留原逻辑,然后从临时核验脚本中移除 -Wno-error,严格复用Android NDK OpenGL/x86_64真实compile_commands.json的 -Werror 及C++20参数重新执行两文件 -fsyntax-only:retained_underlay_cache.test.cpp退出0/5.3秒,render_orchestrator_error.test.cpp退出0/5.2秒;对应Git忽略日志均无警告输出。**严格语法检查PASS;GTest链接运行仍NOT RUN,Symbol GPU证书及Fast仍BLOCKED。**修正仅测试辅助字段初始化,不涉及生产src/renderer、Android APK和正式Gate。