Files
MapLibreParticleLab/docs/报告/STEP-079_真实QBIN_GoldenFixture接入RNTestHost_Codex完成报告_v2.md
OpenAI Codex d490578b97
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
docs: complete STEP-079 QBIN fixture handoff
2026-09-13 20:07:30 +08:00

3.7 KiB
Raw Blame History

STEP-079 真实 QBIN Golden Fixture 接入 RN Test Host Codex 完成报告 v2

结果

状态:IMPLEMENTED / WAITING FOR WINDOWS 11 ANDROID VALIDATION。

RN Test Host 现保留 V3 功能并新增独立 V4 QBIN Golden 区。8 个冻结 raw QBIN 已随 Test Host 打包,JS 不接收 payload bytes、数组、Base64 或 URL;只由 expo-asset materialize 为本地 file:// URI 并调用冻结的 FieldRuntime.submitEncodedField(...)。

Wind/Current 的真实 U/V descriptor 以 VELOCITY_COMPONENT 传入 ColorBinding,Wave/Rain 以各自真实 scalar semantic 传入;Wave direction 才作为 ParticleBinding,Rain 没有虚构粒子数据。load 按 clear → binding → T0 → T1 → midpoint 运行,T0/T1 必须分别返回 ACCEPTED_INSERTED,否则界面显示实际结果并失败。midpoint 只证明 V4 seek command accepted,不能证明或显示 mix=0.5。

已完成

  • 冻结来源 /root/sourceserver/weatherV2/_artifacts/MapLibre_QBIN_V2_单元测试数据_v1/ 的 8 个 raw fixture 已复制至 Test Host 自有 assets;开发 verifier 对 source 与 copy 的 size/SHA-256 全部 PASS。
  • V4 manifest 保留 profile contract、runtime identity、validTime、midpoint、source path、size/SHA-256 和真实 binding;运行时没有 source-server 依赖。
  • Metro 最小追加 .qbin,V3 UI/transport 没有移除或改成 V4-only。
  • Test Host typecheck、package typecheck、TurboModule schema combine/codegen、Linux OpenGL runner target、Contract JSON / Transport / Source V4 / Binding / QBIN-Ingress / Runtime-Profile / V3 Source 回归和 git diff --check 均 PASS。

未完成与无法验证

  • 未执行 Android Gradle、APK build、install、ADB、模拟器、实体机或 Jest;也未验证 iOS/Metal。
  • 因任务明确禁止 Linux Android 操作,无法声明 Android PASS,也无法在此环境观察 V4 画面、实际 decode/submit、binding、midpoint、clear 或 PLAY/PAUSE 的设备结果。
  • 任务开始前既有 STEP-062 dirty、历史 untracked、.codex-build-logs/、generated Android/Expo/modules、tgz 与旧任务书均未纳入提交。

Windows 11 Android 手工验收

在 Windows checkout 的 particle/main,由用户执行(路径与 APK 产物名如与本地不同,以实际生成工程为准):

git fetch origin
git checkout particle/main
git pull --ff-only origin particle/main
cd integration/react-native/MapLibreParticleRNTestHost
npm ci
npx expo prebuild --platform android --clean
npx expo run:android
adb -s 192.168.1.146 reverse tcp:8091 tcp:8091
adb -s 192.168.1.146 reverse tcp:8081 tcp:8091
adb -s 192.168.1.146 shell am start -n org.maplibre.particle.rntesthost/.MainActivity

如选择手工 APK 安装,须使用实际 APK 路径且显式指定同一设备:adb -s 192.168.1.146 install -r <实际-debug-apk路径>。

观察项:依次选择 Wind/Wave/Current/Rain 并 load;每类均确认 T0/T1 为 ACCEPTED_INSERTED、Color/Particle binding 为 ACCEPTED(Rain Particle=N/A)、midpoint 仅显示 command accepted、T0/T1 seek、V4 PLAY/PAUSE/speed 和 clear selected/all 均返回 ACCEPTED。检查 Metro/Android logcat 无 QBIN 读取、decode、contract 或 binding rejection;不得以画面存在替代以上文字结果。Android build/install/ADB 结果由用户记录后才可更新此状态。

Git 收尾

  • implementation commit hash:f1ea88b0ce9c6995f05a8d2ae2eb2696d72e5f28。
  • commit message:feat: add V4 QBIN golden fixture test host。
  • remote branch:origin/particle/main。
  • implementation Final HEAD:f1ea88b0ce9c6995f05a8d2ae2eb2696d72e5f28。本报告、Step 记录和开发记录随后使用仅文档 scoped commit 推送;push result 和收尾 Final HEAD 以该次 Git 输出为准,完成后立即停止。