7.5 KiB
STEP-114 Fast Path 安全准入与 Test App 闭环 v1
日期:2026-10-11(JST)。状态:进行中;源码交付 PARTIAL,运行闭环待 RDC/用户,Symbol R 准入 BLOCKED。
目标、基线与范围
- Mac / Darwin 24.6.0 / x86_64;
/Users/tei/dev/MapLibreParticleLab;particle/main@b02e54de3d45fcf612126ae8f037cba204f590ea。 - 实际 GPT-6.1-Sol(gpt-6.1-sol)/ high 已从本会话执行记录核实。没有模型升级、子代理或另一 Codex 实例。
- Native/Test App 源码版本
13.6.1-particle.23未改;Integration 契约仅只读,RN/JS公共API/ABI、Source Lock、正式发行不变。 - 只修改 Shared Core 内部安全子集判定/缺源诊断、现有非 Jest 测试、Android Test App、本Step中文文档和开发记录追加。
- 禁止 Codex 执行编译/测试/Gradle/ADB/Jest/CMake/Ninja/Bazel、commit/push、发行、跨项目写入或触碰原有 STEP-110/111 文件。
按顺序完成的源码工作
- 静态闭环:Test App source类型、R初建失败、mutation/异步布局/资源/Annotation追踪、C/scene复合条件、Placement两分支。
- 本机旧STEP-113完整JSON回读发现:navsea_delivery是Vector;R依赖tide但Native source表缺tide。缺revision默认unknown-dependency不能作为CustomMVT已出现的证据。
- R缺失 RenderSource 提前返回missing-source,仍ready/stable=false、revision0;不补假数据,不放行CustomMVT/未知revision。
- 保守GeoJSON/circle R正向独立场景;source admission/cache GPU算法不改,3个C++用例源码补充结构保护与revision/cache状态机覆盖。
- 非粒子C继续fail-closed;独立scene只在确认没有Annotation实例时移除空内建层,正式PBF五场景原样保留。
- 无Symbol全场的controller stale不影响Symbol像素消费者;限定#13只在完整层表有结构性Symbol时阻止。空表/数量不一致仍保守,隐藏或空Symbol不豁免。
- Symbol R真稳定窗口审查:现有commit/fade证据不足,保留全部Build/scene条件;停止更大结果签名设计,明确BLOCKED。
- 独立FAST_SMOKE、CIRCLE_C_BLOCKED、ANNOTATION_BLOCKED、SYMBOL_R_BLOCKED;菜单/Intent、低频真实Native UI、单次Source/Image/Camera/Annotation/Cache命令与操作前后文件、Reload/前后台/Teardown取证入口。
- 调查、场景/定向验收说明、Step、中文完成报告、粒子开发记录实际落盘。
- Mac Native配置/编译和3个新用例及指定回归实际运行。
- Kotlin/Android一次手工编译、真实NativeFast>0、视觉与反向/生命周期设备闭环。
- Symbol R结果证书、CustomMVT完整revision契约、非粒子C复合等价证明:未实现,维持BLOCKED/fail-closed。
- iOS Metal实机/性能与生产Fast:NOT VERIFIED,不能由smoke替代。
当前结果与限制
没有新的编译、测试、APK、设备、GPU计数或性能结果。SOURCE-PROVEN/IMPLEMENTED与旧RETAINED-EVIDENCE分开;整体PARTIAL,不标Fast Path已修复。旧PBF缺tide诊断修正不代表该R可以Build;即使补源仍受SymbolPlacement保护。
预期FAST_SMOKE的真实Native层序4层、R[0,2)/C[2,4),必须取得Build/Reuse/Full/Fast与24Gate同帧证据。UIsceneReady只代表加载/命令成功,实际Native结构由导出JSON检查。三个负场景继续阻止Fast。Source等操作自动100/500/1500ms取证仍可能错过瞬态,缺证据如实记NOT VERIFIED。
已做检查与精确验收入口
Codex仅源码/文档阅读、已有JSON解析、Git只读状态、静态函数/范围/哈希核对、git diff --check和新增文件空白核对。未执行任何构建/测试/设备/Git写操作。
精确命令:docs/60_测试/STEP-114_独立FastSmoke场景与RDC验收_v1.md 第2节Mac Native配置/target/过滤器/日志/失败停止;第3—5节用户后续手工Android/ADB、JSON检查和反向/生命周期矩阵。完成报告也列出Native最小命令。配置失败保留现场,不能使用旧runner或自行安装依赖伪造通过。
独立验收待填写
| 项目 | 当前事实 / RDC或用户证据待填 |
|---|---|
| 源码baseline/diff/hash与制品版本 | 未提交工作区源码;用户构建前保存明确diff/hash与dirty状态 |
| Mac configure/build/新用例3个与回归 | NOT RUN;记录exit/耗时/真实测试数/skipped/日志/首错 |
| APK/ZIP/ABI/大小/SHA/签名 | NOT RUN;唯一现有Validation脚本由用户手工 |
| FAST_SMOKE真实层表/plan/cache/Fast | NOT RUN;4层R[0,2)/C[2,4),decisionMismatch=0,Fast/Reuse delta>0 |
| Source异步失效/Tile/Image/Camera/Cache恢复 | NOT RUN;保存五phase文件与精确变化帧,不从末态猜Gate |
| Circle C/Annotation/Symbol R负场景 | NOT RUN;保持阻止并具备可见内容与真实更新 |
| Reload/前后台/Teardown/重新进入 | NOT RUN;销毁前文件不是销毁完成证据 |
| 原STEP-113五场景与STEP-102回归 | NOT RUN;保留正式PBF全部定义,缺源改报missing-source |
| iOS Metal设备/像素/CPU/GPU性能 | NOT VERIFIED;不以Mac状态机测试替代 |
| Git提交/推送/远端HEAD | NOT RUN且本轮禁止;后续另行授权RDCscoped收尾 |
必做输出与下一步
调查:docs/20_调查/STEP-114_FastPath安全准入与闭环判定_v1.md。
验收:docs/60_测试/STEP-114_独立FastSmoke场景与RDC验收_v1.md。
报告:docs/报告/STEP-114_FastPath安全准入与TestApp闭环_Codex完成报告_v1.md。
以上及本记录、源文件、开发记录已由Codex实际生成。接下来由RDC独立审计并执行MacNative定向验证;用户一次手工Android/设备闭环。若缺libuv、编译失败或真实Fast仍为0,保留首错/24Gate再回交修复;不得继续扩大Symbol/CustomMVT/C放行或进入发行。
RDC 独立审核追加(2026-10-11)
结论:源码/差异/接口静态审核 PASS;Native 与 Android 编译、Fast 帧 NOT VERIFIED;整体 STEP-114 PARTIAL。
- RDC 独立阅读本轮 Native diff、C++ 新用例、STEP-114 Android Test App 新场景与菜单、生命周期接线;git diff --check 退出码 0。本轮只有范围内的五个 tracked 改动和新增 Kotlin/中文文档;原 STEP-110/111 未跟踪任务书不修改、不暂存。
- 新增三项 Step114FastPathSafety 用例存在,覆盖无 Symbol、隐藏/Annotation Symbol 和 Source revision/cache 状态机,但没有实际运行。
- Step113PbfGateScene.kt SHA-256 为 6e7befeb90ae172aaeff4b636a7640274dfb1065d8c97744cbc6af8d22b4ccae,Step102PlacementFixture.kt SHA-256 为 e44912970dd6353787be7a3e5f9924fe1249e2305d495f1e25e707352c97d3c7,均未变化。
- Java SDK 只读核对实际提供 Style.removeLayer(String) 与 MapLibreMap.getAnnotations()。Kotlin/Gradle 编译未执行。
- Mac 预检:pkg-config --exists libuv 返回 1,与先前 macos-metal CMake required libuv 失败一致。独立 C++ header -fsyntax-only 试验退出码 1,首错为 Xcode AppleClang 找不到标准 C++ 头文件 array,实际在进入项目源码检查前终止。日志存于 Mac /tmp/step114-header-check.log。两项均是环境阻塞,不是本轮 Native 测试 PASS 或已证明代码错误;未安装/修改依赖。
- 实际 Fast Path 命中、正反 GPU 渲染、Android 设备、性能、iOS 均未验证。正式 PBF 仍有 tide 缺源、Symbol R Placement、内建 Annotation C 的阻断。STEP-114 独立最小场景属于待用户一次 Android 手工构建集中验收内容,不能用旧 APK。
- 后续 scoped Git 收尾若执行仅表示 PARTIAL 源码及测试入口已归档,不代表正式发布或 Fast Path 修复完成,不打 Tag/Source Lock。