Files
MapLibreParticleLab/docs/报告/STEP-060A_RNTestHost编译前修正_Codex完成报告_v1.md
OpenAI Codex 80f360be78
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
docs: finalize STEP-060A report metadata
2026-09-07 18:12:19 +08:00

4.0 KiB
Raw Permalink Blame History

STEP-060A RN Test Host 编译前修正 — Codex 完成报告

状态:READY_ANDROID_VALIDATION

实际修正

  1. RN 0.85.2 当前安装的 node_modules/@react-native/codegen/lib/generators/modules/GenerateModuleJavaSpec.js 第 36 行生成 public abstract class,第 526 与 536 行为必选方法生成 @ReactMethod 与 abstract。Promise 返回在同一模板中追加 Promise promise。这证明 STEP-060 的 Kotlin implementation 必须 override Spec 方法。
  2. WeatherRuntimeBridgeModule.kt 已为 attach、detach、getState、enabled/visible/target FPS、forecast、playback/speed、stops、particle/trail colors 及全部 visual controls 共 20 个 JS Spec 方法补齐 override。逐项脚本比较 NativeWeatherRuntimeBridge.ts 的 20 个方法与 Kotlin override fun,没有缺失。View attach listener 的两个 override 是 Android 回调,不是 Spec 方法。
  3. 未发现除 override 外的 Codegen signature mismatch;number→Double、boolean→Boolean、string enum→String、ColorStop list→ReadableArray 和 Promise 末参均保持现有最小实现,没有重构 bridge。
  4. Test Host 统一使用 npm,packageManager 为 npm@10.9.4,锁文件是现有 package-lock.json(lockfile v3);没有 yarn.lock。
  5. 实际 npm ci --ignore-scripts --no-audit --no-fund 通过,未需要 --legacy-peer-deps。当前环境 npm 为 11.19.0;packageManager 声明保留任务指定的 npm 10.9.4 目标,人工验收以 npm ci 使用 lock。
  6. package/config 明确控制 package 版本、app.json 的 New Architecture 请求、MLRN native 13.4.1/opengl root extras 与 Maven Local 防 fallback。AGP、Gradle、Kotlin、SDK、NDK、Hermes 和最终 New Architecture 生成值仍待首次 prebuild 后实际检查;文档不再把它们表述为已验证冻结。
  7. STEP-060 ownership/lifecycle 未改:每次 command 仍通过 Fabric UIManager 定位 concrete MLRNMapView,再到 MapLibreMap 的 map-owned WeatherRuntime。未新增 Adapter、Normalizer、global/current map 或第二 registry。
  8. 未实现 Binary Field,未加入 number[]/JSON/base64 field、JSI、NavSea、iOS、Core renderer/timeline 改动。

文件

  • integration/react-native/MapLibreParticleRNTestHost/modules/weather-runtime-bridge/android/src/main/java/org/maplibre/particle/rntesthost/weather/WeatherRuntimeBridgeModule.kt
  • integration/react-native/MapLibreParticleRNTestHost/package.json
  • integration/react-native/MapLibreParticleRNTestHost/README.md
  • docs/50_Step记录/STEP-060A_RNTestHost编译前修正_v1.md
  • docs/60_测试/STEP-060_RNTestHost_Android人工编译与验收_v1.md
  • docs/报告/STEP-060_RNTestHost与WeatherRuntime薄桥接_Codex完成报告_v1.md
  • 粒子开发记录.md 与本报告。

实际验证

  • npm install --package-lock-only --ignore-scripts --no-audit --no-fund:PASS。
  • npm ci --ignore-scripts --no-audit --no-fund:PASS(530 packages);不需 legacy peer deps。
  • throttle 下 npx tsc --noEmit:PASS。
  • RN Codegen generator 语义、20 个 JS Spec 与 Kotlin override 一一检查、node --check、package/lock 检查、yarn 残留搜索、git diff --check:PASS。

未执行与人工验收

未执行 Android Gradle、custom AAR publish、Expo prebuild、APK/AAB、ADB、安装、App launch、模拟器/真机、Jest。用户下一步按更新后的 STEP-060 人工验收说明:先记录 HEAD、清除旧 Maven Local 同版本 artifact、publish 当前 custom SDK、npm ci、Expo prebuild、核对实际工具链/Hermes/New Architecture 与 custom resolution,再进行 Phase A/B、style reload 和 remount 验收。

Git

  • Starting HEAD:6a99f1a1424ce7e30c26e825251df956a46bf4c4
  • 功能 commit:51b58024323aeb47103ccc08e50a53ac0ab75d43(fix: correct RN WeatherRuntime codegen bridge)
  • 文档 commit:7c771709e012d3525aa07b766d36fedde12aed7c(docs: record STEP-060A prebuild fixes)
  • Final HEAD / Remote HEAD / push:由本报告元数据收尾 commit 与 push 后交付消息给出。