fix: close V3-08 Android validation
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled

This commit is contained in:
OpenAI Codex
2026-09-11 18:10:33 +08:00
parent 1e84de3dd5
commit a0aa367f30
8 changed files with 163 additions and 9 deletions

View File

@@ -0,0 +1,32 @@
# STEP-072B V3-08 RN Kotlin ReadableMap 编译修复 Codex 任务 v1
## 背景
V3-08 Win11 正式 npm 消费链已验证到 Android Kotlin 编译阶段。`@navsea/maplibre-particle-rn@13.4.1-particle.3` 的 `WeatherRuntimeBridgeModule.kt` 在 `setWeatherColorStops()` 中使用 `ReadableMap`,但源码 import 区缺少 `com.facebook.react.bridge.ReadableMap`。
Win11 错误:
- `Unresolved reference 'ReadableMap'`
- 后续多个 `getDouble` unresolved 均为级联错误。
## 唯一允许的代码修改
仅修改:
`packages/maplibre-particle-rn/android/src/main/java/org/navsea/maplibre/particle/weather/WeatherRuntimeBridgeModule.kt`
在 React Native bridge import 区加入:
`import com.facebook.react.bridge.ReadableMap`
除此之外不得修改任何生产代码、接口、行为或格式。
## 禁止项
- 不得运行 Android Gradle、APK/AAR build、ADB、Jest。
- 不得修改版本号、Maven 坐标、npm package metadata、TurboModule spec、README、CHANGELOG 或 release manifest。
- 不得修改 Win11 临时 worktree。
- 不得执行 Git add/commit/push/reset/clean。
- 不得触碰 STEP-062 dirty 文件和任何无关 untracked/build 目录。
## Codex 完成要求
1. 读取目标 Kotlin 文件并确认缺失 import。
2. 只增加 `ReadableMap` import。
3. 输出 `git diff -- <目标文件>` 供人工审计。
4. 不执行任何编译或测试。
## 后续由 ChatGPT 执行
ChatGPT 将直接完成 Linux 静态检查、重新 npm pack/publish、Win11 dependency/build 验证、文档与 Git 收尾。

View File

@@ -41,3 +41,17 @@
## Git 实现基线
- implementation/preparation commit:`11cf58d344e64e6aff77deceb2c34c8eda045f1b`(`chore: prepare V3-08 android validation`)。
- 已成功 push 到 `origin/particle/main`;push 后实现基线 HEAD 与远端一致。
## 2026-09-11 V3-08 最终关闭
状态:**CLOSED / PASS**。
Win11/CARBON7i 使用 Gradle 8.14.3、AGP 8.12.0、Kotlin 2.1.20、JDK 17.0.18、NDK 27.1.12297006、compileSdk/targetSdk 36、minSdk 24 完成正式 npm 消费链与 Debug APK 构建。dependencyInsight 最终解析到 `cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.2`。
实体机 `192.168.1.146` 上五组数据均满足 T0=`ACCEPTED_PENDING_INITIAL_WINDOW`、T1=`INITIAL_WINDOW_READY`、最终 Runtime=`READY`:Wind real、Rain scalar-only、Wave real、Tide/Current、Wave synthetic independence。
控制面 PLAY/PAUSE、HALF/NORMAL/DOUBLE、FPS AUTO/30/60、seek T0/T1、Weather/Particle 独立显隐、Field stops、Particle color、Trail color、Apply visual 均返回 `ACCEPTED`;最终 FATAL/JNI/UnsatisfiedLinkError 扫描为空。
测试期间发现 fixture 位于 Metro project root 外,临时 Win11 `D:\V308` 验收 worktree 通过 `watchFolders` 纳入 `integration/react-native/particle-v3-fields` 后 bundle 成功。该临时 Metro 修改不进入正式仓库,不属于 Native/RN Runtime 缺陷。
最终产物:Native `.2` AAR SHA-256 `f890f834692d3cacb8a281b2d0f82cf4a7f8ba7756132092be800505b961e9a2`;RN `.3` tgz SHA-256 `16e5dab86aac9832f7a48d8c35dd9821f80f52e7e53ff4e0e6c98724781eda3a`;APK SHA-256 `49824062CAB72771282294114B5A818D2067F9B786B8697D2D2A983BF0B743E2`。

View File

@@ -106,3 +106,17 @@ adb -s 192.168.1.146 logcat -v time | Select-String -Pattern 'submitField|INITIA
```
记录每组的 T0/T1/READY 证据、控制项结果、AAR SHA 比对、`javap` 输出摘要及 logcat。仅当五组均符合要求且无 fatal bridge/JNI 错误时,才可由用户决定更新 Android 验收状态;本文件本身不代表已执行或通过。
## 2026-09-11 V3-08 最终关闭
状态:**CLOSED / PASS**。
Win11/CARBON7i 使用 Gradle 8.14.3、AGP 8.12.0、Kotlin 2.1.20、JDK 17.0.18、NDK 27.1.12297006、compileSdk/targetSdk 36、minSdk 24 完成正式 npm 消费链与 Debug APK 构建。dependencyInsight 最终解析到 `cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.2`。
实体机 `192.168.1.146` 上五组数据均满足 T0=`ACCEPTED_PENDING_INITIAL_WINDOW`、T1=`INITIAL_WINDOW_READY`、最终 Runtime=`READY`:Wind real、Rain scalar-only、Wave real、Tide/Current、Wave synthetic independence。
控制面 PLAY/PAUSE、HALF/NORMAL/DOUBLE、FPS AUTO/30/60、seek T0/T1、Weather/Particle 独立显隐、Field stops、Particle color、Trail color、Apply visual 均返回 `ACCEPTED`;最终 FATAL/JNI/UnsatisfiedLinkError 扫描为空。
测试期间发现 fixture 位于 Metro project root 外,临时 Win11 `D:\V308` 验收 worktree 通过 `watchFolders` 纳入 `integration/react-native/particle-v3-fields` 后 bundle 成功。该临时 Metro 修改不进入正式仓库,不属于 Native/RN Runtime 缺陷。
最终产物:Native `.2` AAR SHA-256 `f890f834692d3cacb8a281b2d0f82cf4a7f8ba7756132092be800505b961e9a2`;RN `.3` tgz SHA-256 `16e5dab86aac9832f7a48d8c35dd9821f80f52e7e53ff4e0e6c98724781eda3a`;APK SHA-256 `49824062CAB72771282294114B5A818D2067F9B786B8697D2D2A983BF0B743E2`。

View File

@@ -0,0 +1,17 @@
# STEP-072B V3-08 RN Kotlin ReadableMap 编译修复 Codex 完成报告 v1
## 结论
**PASS / CLOSED**。
Codex 严格按任务边界,仅在 `WeatherRuntimeBridgeModule.kt` 增加 `com.facebook.react.bridge.ReadableMap` import,未修改 API、ABI、TurboModule spec、Maven 坐标或业务逻辑。
## 验证结果
Linux hard gate 全部通过:fixture validator、package TypeScript、RN Test Host typecheck、TurboModule codegen、`git diff --check`。
重新发布的 `@navsea/maplibre-particle-rn@13.4.1-particle.3` 公网 tarball SHA-256 为 `16e5dab86aac9832f7a48d8c35dd9821f80f52e7e53ff4e0e6c98724781eda3a`。
Win11 正式 npm 消费链编译通过:`:navsea_maplibre-particle-rn:compileDebugKotlin` PASS,`:app:assembleDebug` PASS,`BUILD SUCCESSFUL in 6m 20s`。APK SHA-256 为 `49824062CAB72771282294114B5A818D2067F9B786B8697D2D2A983BF0B743E2`。
实体机五组 V3 数据与 Runtime/控制面最终验收全部通过,STEP-072/V3-08 可关闭。

View File

@@ -38,4 +38,18 @@ Test Host 同时存在两套 `WeatherRuntimeBridge` 的问题已消除。Expo au
- 本报告 Git 元数据回填将作为 docs-only closeout 提交;该提交后的仓库 Final HEAD 由最终验证结果记录,不伪造自引用 hash。
## 下一步
仅由用户执行 V3-08 单次 Android 综合验收。验收通过前 release manifest 保持 `awaiting_android_manual_build_publish_acceptance` / Android `not_run`,不得把 `.3` 标记 released 或创建 release tag。
仅由用户执行 V3-08 单次 Android 综合验收。验收通过前 release manifest 保持 `awaiting_android_manual_build_publish_acceptance` / Android `not_run`,不得把 `.3` 标记 released 或创建 release tag。
## 2026-09-11 V3-08 最终关闭
状态:**CLOSED / PASS**。
Win11/CARBON7i 使用 Gradle 8.14.3、AGP 8.12.0、Kotlin 2.1.20、JDK 17.0.18、NDK 27.1.12297006、compileSdk/targetSdk 36、minSdk 24 完成正式 npm 消费链与 Debug APK 构建。dependencyInsight 最终解析到 `cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.2`。
实体机 `192.168.1.146` 上五组数据均满足 T0=`ACCEPTED_PENDING_INITIAL_WINDOW`、T1=`INITIAL_WINDOW_READY`、最终 Runtime=`READY`:Wind real、Rain scalar-only、Wave real、Tide/Current、Wave synthetic independence。
控制面 PLAY/PAUSE、HALF/NORMAL/DOUBLE、FPS AUTO/30/60、seek T0/T1、Weather/Particle 独立显隐、Field stops、Particle color、Trail color、Apply visual 均返回 `ACCEPTED`;最终 FATAL/JNI/UnsatisfiedLinkError 扫描为空。
测试期间发现 fixture 位于 Metro project root 外,临时 Win11 `D:\V308` 验收 worktree 通过 `watchFolders` 纳入 `integration/react-native/particle-v3-fields` 后 bundle 成功。该临时 Metro 修改不进入正式仓库,不属于 Native/RN Runtime 缺陷。
最终产物:Native `.2` AAR SHA-256 `f890f834692d3cacb8a281b2d0f82cf4a7f8ba7756132092be800505b961e9a2`;RN `.3` tgz SHA-256 `16e5dab86aac9832f7a48d8c35dd9821f80f52e7e53ff4e0e6c98724781eda3a`;APK SHA-256 `49824062CAB72771282294114B5A818D2067F9B786B8697D2D2A983BF0B743E2`。

View File

@@ -8,6 +8,7 @@ import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.turbomodule.core.interfaces.TurboModule
import com.facebook.react.bridge.ReactMethod
import com.facebook.react.bridge.ReadableArray
import com.facebook.react.bridge.ReadableMap
import com.facebook.react.uimanager.IllegalViewOperationException
import com.facebook.react.uimanager.UIManagerHelper
import com.facebook.react.uimanager.common.UIManagerType

View File

@@ -1,6 +1,6 @@
{
"release": "13.4.1-particle.3",
"releaseState": "awaiting_android_manual_build_publish_acceptance",
"releaseState": "android_device_acceptance_pass",
"upstreamMapLibreNative": "13.4.1",
"upstreamCoreCommit": "18545ca10d296704b2cba675b182ff2c8da24588",
"extensionLine": "particle",
@@ -19,7 +19,7 @@
"group": "cc.navsea.maplibre",
"artifact": "android-sdk-particle-opengl",
"version": "13.4.1-particle.2",
"state": "awaiting_manual_build_publish_acceptance"
"state": "published_validated"
},
"releaseRelationship": "13.4.1-particle.3 的 v2 multi-plane RN/TS API 目标为新的 Native artifact 13.4.1-particle.2;不得复用、覆盖或宣称发布旧 13.4.1-particle.1。",
"canonicalField": {
@@ -30,14 +30,61 @@
},
"validation": {
"android": {
"status": "not_run",
"status": "pass",
"required": [
"Native .2 Release OpenGL AAR build and Maven Local publish",
"AAR SHA consistency check",
"javap WeatherRuntime v2 API check",
"Test Host clean prebuild/build/install/start",
"five field datasets and Runtime READY acceptance"
]
],
"validatedBuildEnvironment": {
"gradle": "8.14.3",
"agp": "8.12.0",
"kotlin": "2.1.20",
"jdk": "17.0.18",
"ndk": "27.1.12297006",
"compileSdk": 36,
"targetSdk": 36,
"minSdk": 24
},
"buildResult": {
"status": "pass",
"task": ":app:assembleDebug",
"duration": "6m20s",
"apkSha256": "49824062CAB72771282294114B5A818D2067F9B786B8697D2D2A983BF0B743E2",
"apkSizeBytes": 185729464
},
"deviceAcceptance": {
"status": "pass",
"validatedAt": "2026-09-11",
"device": "192.168.1.146",
"package": "org.maplibre.particle.rntesthost",
"datasets": [
"wind-real",
"rain-decoder-fixture",
"wave-real",
"tide-real",
"wave-synthetic-independence"
],
"runtimeGate": {
"T0": "ACCEPTED_PENDING_INITIAL_WINDOW",
"T1": "INITIAL_WINDOW_READY",
"final": "READY"
},
"controls": [
"PLAY/PAUSE",
"HALF/NORMAL/DOUBLE",
"FPS AUTO/30/60",
"seek T0/T1",
"Field/Particle visibility",
"Field stops",
"Particle color",
"Trail color",
"Apply visual"
],
"fatalScan": "pass"
}
},
"previousBaseline": {
"reactNativePackage": "13.4.1-particle.2",
@@ -65,10 +112,21 @@
},
"publication": {
"nativeArtifact": {
"status": "not_published",
"aarSha256": null,
"publishedAt": null
"status": "published",
"aarSha256": "f890f834692d3cacb8a281b2d0f82cf4a7f8ba7756132092be800505b961e9a2",
"aarSizeBytes": 166519805,
"publishedAt": "2026-09-11",
"publicHttpStatus": 200,
"publicBytesVerified": true
},
"releaseTag": null
"releaseTag": null,
"reactNativePackage": {
"status": "published",
"tarball": "https://pbf.jpcn.ccwu.cc/npm/navsea-maplibre-particle-rn-13.4.1-particle.3.tgz",
"sha256": "16e5dab86aac9832f7a48d8c35dd9821f80f52e7e53ff4e0e6c98724781eda3a",
"sizeBytes": 12849,
"publicHttpStatus": 200,
"publicBytesVerified": true
}
}
}

View File

@@ -681,3 +681,7 @@ WeatherColorLayer 的 `ParticleGpuValidationUBO` designated initializer 补齐 `
- 已冻结 V3-08 单次 Android 验收流程:Linux 构建/发布 Native `.2` → SHA/API 检查 → Win11 Maven Local handoff → clean prebuild/dependencyInsight/一次 APK build → Metro 8091 → 固定设备 `192.168.1.146` → Wind/Rain/Wave/Tide/synthetic Wave 五组综合验收。Android Gradle/AAR/APK/ADB/Jest 均未执行,状态 `IMPLEMENTED / WAITING_ANDROID_VALIDATION`。
- STEP-072 implementation/preparation `11cf58d344e64e6aff77deceb2c34c8eda045f1b`(`chore: prepare V3-08 android validation`)已成功 push 到 `origin/particle/main`;push 后实现基线 HEAD 与远端一致。
### 2026-09-11 STEP-072 / V3-08 CLOSED / PASS
Android V3-08 单次综合验收已完成并关闭。Native `13.4.1-particle.2` 已发布并验证;RN `13.4.1-particle.3` 通过正式 npm tarball + 远程 Maven 消费链。Win11 Gradle 8.14.3 / AGP 8.12.0 / Kotlin 2.1.20 构建 PASS。实体机 `192.168.1.146` 五组 Wind/Rain/Wave/Tide/Wave synthetic 均通过 T0/T1/READY 门槛,播放、速度、FPS、seek、独立显隐和视觉 API 均 ACCEPTED,fatal/JNI 扫描为空。