fix: close V3-08 Android validation
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
This commit is contained in:
@@ -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 收尾。
|
||||
@@ -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`。
|
||||
|
||||
@@ -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`。
|
||||
|
||||
@@ -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 可关闭。
|
||||
@@ -39,3 +39,17 @@ Test Host 同时存在两套 `WeatherRuntimeBridge` 的问题已消除。Expo au
|
||||
|
||||
## 下一步
|
||||
仅由用户执行 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`。
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 扫描为空。
|
||||
|
||||
Reference in New Issue
Block a user