3.1 KiB
STEP-079 真实 QBIN Golden Fixture 接入 RN Test Host 接口阻塞报告 v1
状态:阻塞(未实现,未执行 Android 验收)
结论
STEP-078 的冻结 V4 RN public API 无法表达真实 Wind/Current U 或 V plane 的正确 ColorBinding。因此本 Step 依照任务的停止条款退出,没有以 Test Host wrapper、错误 enum 或 Core/API 修改绕过。
可复核证据
冻结 WeatherV2 fixture manifest/profile registry 规定:
| 数据集 | 要提交的 Color plane | fixture descriptor |
|---|---|---|
Wind wind/1 |
U 或 V | semantic 1/2,group 1,unit 1,VELOCITY_COMPONENT |
Current current/1 |
U 或 V | semantic 1/2,group 1,unit 1,VELOCITY_COMPONENT |
冻结 RN API packages/maplibre-particle-rn/src/FieldRuntime.ts 的 setEncodedColorBinding 只接受 SCALAR、DIRECTION_ANGLE;Android WeatherRuntimeBridgeModule.kt 也只将这两个字符串映射为 native value class。它没有 VELOCITY_COMPONENT 的 public enum 通路。
Core 并非可以安全忽略该差异:src/mbgl/particle/field/field_binding.cpp 会对 ColorBinding 的 selected T0/T1 plane 验证 value class。以 SCALAR 提交真实 U/V 必返回 PlaneClassMismatch。把 value class 伪造为 scalar 既不是 fixture-derived binding,也不会形成有效 V4 bridge 验证。
Wave(scalar Height)与 Rain(scalar precipitation)没有此问题;Wave 的 DirectionAngle particle binding 与 Wind/Current 的 VectorComponents particle binding 也均有冻结 public API 表达。但任务要求同一 Test Host V4 dataset contract 至少包含 ColorBinding,且固定规则特别允许 Wind/Current U/V 的 ColorBinding;缺少该 enum 使四组完整合同无法成立。
未执行的内容
- 未保留或提交 8 个 copied raw QBIN fixture,避免仓库出现无法被完整 Test Host contract 使用的半成品。
- 未创建 V4 dataset/materialize/UI;未修改 V3 UI 或 Test Host Metro。
- 未运行 TypeScript、TurboModule codegen、C++ rebuild/回归、Android Gradle/APK/ADB,因没有可验证的合规实现。
- 未创建实现提交;没有 fixture、Test Host 或 package/Core 改动。阻塞记录已以
afcc74066f1395678621fa2b1a70d10bc722a623(docs: record STEP-079 V4 fixture API blocker)推送到origin/particle/main。
最小解阻条件
需要新的、显式授权的 API 修订 Step:令 EncodedColorBindingInput.expectedValueClass、RN validation、TurboModule spec、Kotlin enum mapping 以同一冻结 ABI 支持 VELOCITY_COMPONENT,并增加相应的 Core/bridge contract tests。该 Step 必须单独决定 Renderer 是否仅 bridge-only;本报告不建议把 vector magnitude 伪造为 color input,也不建议在 Test Host 绕过 public API。
在该修订完成且稳定后,应重新从本任务指定 fixture source materialize 8 个 .qbin,进行完整 source/size/SHA-256 审计,并执行本任务要求的 Linux static validation。Windows 11 Android 验收目前没有可交付的 V4 Test Host,因此不能提供安装/ADB 验收步骤或宣称 Android PASS。