43 lines
4.0 KiB
Markdown
43 lines
4.0 KiB
Markdown
# 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 后交付消息给出。
|