diff --git a/docs/50_Step记录/STEP-064_RN纯FieldRenderer接口V2_v1.md b/docs/50_Step记录/STEP-064_RN纯FieldRenderer接口V2_v1.md index 00b67212f..ae44f32a9 100644 --- a/docs/50_Step记录/STEP-064_RN纯FieldRenderer接口V2_v1.md +++ b/docs/50_Step记录/STEP-064_RN纯FieldRenderer接口V2_v1.md @@ -1,6 +1,6 @@ # STEP-064 RN 纯 Field Renderer 接口 V2 -状态:进行中(代码完成,待 Consumer 验证) +状态:完成(Consumer 验证通过,待正式发布冻结) ## 目标 @@ -32,3 +32,11 @@ - 待 Consumer 安装最终 `.2` tarball 并实际运行验证;此项完成前不得标记 RELEASED 或 CLOSED/PASS。 - 未修改 Native/Core/JNI/shader/Android AAR,Native artifact 继续 `13.4.1-particle.1`。 - 未进入 NavSea。 + +## 2026-09-10 Consumer 正式验证 + +- Win11 固定 Consumer 安装 `13.4.1-particle.2` tgz,MLRN 唯一解析为 11.3.6,TypeScript 通过。 +- 首轮实测暴露 RN helper 无效属性 `raster-particle-opacity`,导致 `rn-weather-particles` 缺失;仅在 RN helper 改为 Native `.1` 已验证的 `raster-particle-active`,未改 Native。 +- 修正后 `FieldRuntime attached; style ready`;T0–T3 依次返回 Pending / InitialWindowReady / NextSnapshot / NextSnapshot,Runtime READY。 +- `Field OFF + Particle ON` 与 `Field ON + Particle OFF` 均实测通过,并恢复两者 ON。 +- hard gate 未见 WEATHER_OBJECTS_NOT_READY、FATAL、SIGSEGV、JNI DETECTED ERROR、NoSuchMethodError、UnsatisfiedLinkError 或非法 layer property。 diff --git a/docs/报告/STEP-064_RN纯FieldRenderer接口V2_Codex完成报告_v1.md b/docs/报告/STEP-064_RN纯FieldRenderer接口V2_Codex完成报告_v1.md index 299565cf4..dcd5aae42 100644 --- a/docs/报告/STEP-064_RN纯FieldRenderer接口V2_Codex完成报告_v1.md +++ b/docs/报告/STEP-064_RN纯FieldRenderer接口V2_Codex完成报告_v1.md @@ -1,6 +1,6 @@ # STEP-064 RN 纯 Field Renderer 接口 V2 完成报告 -状态:IMPLEMENTED / WAITING_CONSUMER_VALIDATION +状态:VALIDATED / READY_FOR_RELEASE_TAG ## 完成内容 @@ -38,3 +38,11 @@ Consumer 尚未安装最终 `.2` tarball 并在既有 `.1` Native artifact 的 A - 实现提交 push 后:`HEAD == origin/particle/main == 59a48608fb140d04f9008cb8273119999a87b6ef`。 - Codex sandbox 曾因 `.git/index.lock` 只读失败未能自行提交;最终由 ChatGPT 通过同一 Linux 仓库精确 stage、commit、push,本任务无关 modified/untracked 文件未带入。 - 本段为 docs-only 收尾更新;最终仓库 HEAD 以任务最终回复记录为准。 + +## 2026-09-10 Consumer 验证与 Release Freeze 前结论 + +- 固定 Win11 Consumer 已安装 `.2` tgz,依赖树为一份 `@maplibre/maplibre-react-native@11.3.6`。 +- 首轮发现 `createParticleFieldStyleFragment()` 使用无效 `raster-particle-opacity`,Native 报 particle layer missing;已在 RN-only 范围改为 `raster-particle-active`。 +- 修正后 attach、T0–T3、Runtime READY、图场/粒子独立开关及恢复均通过。 +- 未重新构建 Android APK/AAR;复用既有 Native `.1` APK + Metro 验证 RN `.2`。 +- hard gate 无上述 Native/崩溃错误。当前允许进入 release tag 与固定 HTTPS tgz 发布。 diff --git a/packages/maplibre-particle-rn/CHANGELOG.md b/packages/maplibre-particle-rn/CHANGELOG.md index dea3053bf..c0608c168 100644 --- a/packages/maplibre-particle-rn/CHANGELOG.md +++ b/packages/maplibre-particle-rn/CHANGELOG.md @@ -8,6 +8,8 @@ - 新增 `FieldColorStop.value`、`particleFieldIds` 与不含底图的 `createParticleFieldStyleFragment()`。 - 非原生环境可安全导入;实际调用且 native bridge 缺失时返回稳定错误。 - RN 包版本升为 `.2`;Android Native artifact 保持 `13.4.1-particle.1`,未构建、未修改、未发布。 +- Consumer 实测发现并修正 style helper 中无效的 `raster-particle-opacity`;最终 helper 使用 Native `.1` 已验证的 `raster-particle-active`,不修改 Native AAR。 +- Android Consumer 已验证 `FieldRuntime` attach、T0–T3、Runtime READY,以及图场/粒子独立开关。 ## 13.4.1-particle.1 diff --git a/packages/maplibre-particle-rn/src/index.ts b/packages/maplibre-particle-rn/src/index.ts index c2548a943..66225b018 100644 --- a/packages/maplibre-particle-rn/src/index.ts +++ b/packages/maplibre-particle-rn/src/index.ts @@ -45,7 +45,7 @@ export function createParticleFieldStyleFragment(): ParticleFieldStyleFragment { id: particleFieldIds.particleLayer, type: "raster-particle", source: particleFieldIds.source, - paint: { "raster-particle-opacity": 0.9 }, + paint: { "raster-particle-active": true }, }, ], }; diff --git a/release/maplibre-particle/release-manifest.json b/release/maplibre-particle/release-manifest.json index 1f0e34e3e..ec9cd56d8 100644 --- a/release/maplibre-particle/release-manifest.json +++ b/release/maplibre-particle/release-manifest.json @@ -1,6 +1,6 @@ { "release": "13.4.1-particle.2", - "releaseState": "rn-api-prepared-waiting-consumer-validation", + "releaseState": "validated-ready-for-release-tag", "upstreamMapLibreNative": "13.4.1", "upstreamCoreCommit": "18545ca10d296704b2cba675b182ff2c8da24588", "extensionLine": "particle", @@ -29,10 +29,22 @@ }, "validation": { "androidPackageConsumer": { - "status": "pending", + "status": "pass", "targetReactNativePackage": "13.4.1-particle.2", + "validatedAt": "2026-09-10", "consumer": "integration/react-native/MapLibreParticlePackageConsumerTestHost", - "note": "13.4.1-particle.2 尚未完成发布 tarball 的 Consumer 运行验证。" + "dataset": "ECMWF HRES 20260807 T0-T3", + "transport": "FILE_REF / FLOAT32_LE / INTERLEAVED_UV", + "nativeArtifact": "13.4.1-particle.1", + "checks": [ + "FieldRuntime attach", + "T0-T3 ordered submit", + "runtime READY", + "field OFF + particle ON", + "field ON + particle OFF", + "restore both ON", + "hard-gate no fatal/native bridge errors" + ] }, "previousBaseline": { "reactNativePackage": "13.4.1-particle.1", @@ -45,7 +57,8 @@ }, "publication": { "npmRegistry": null, - "mavenRepository": "https://pbf.jpcn.ccwu.cc/maven" + "mavenRepository": "https://pbf.jpcn.ccwu.cc/maven", + "npmTarball": "https://pbf.jpcn.ccwu.cc/npm/navsea-maplibre-particle-rn-13.4.1-particle.2.tgz" }, - "releaseTag": null + "releaseTag": "maplibre-particle/rn/13.4.1-particle.2" } diff --git a/粒子开发记录.md b/粒子开发记录.md index a6b3e0992..4a1214ea5 100644 --- a/粒子开发记录.md +++ b/粒子开发记录.md @@ -607,3 +607,9 @@ WeatherColorLayer 的 `ParticleGpuValidationUBO` designated initializer 补齐 ` - 包内 WeatherV2 HTTP、manifest、time index、decoder 与 loader 已移出,Consumer Test Host 保留自身的真实 fixture/file URI 业务链,并直接从官方 MLRN 导入 Map/Camera。 - `FieldColorStop.value` 在 RN 薄层转换为冻结 Native ABI;无 Native module 时 import 安全,实际调用明确失败。图场与粒子继续共享一次 canonical Field 提交,显示可独立控制。 - Native/Core/JNI/shader/Android AAR 未改,artifact 继续 `cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.1`;Android Gradle/AAR/APK/ADB/Jest/NavSea 均未执行。package 与 Consumer TypeScript 检查已通过,发布 tarball 的实际 Consumer 验证待后续完成。 + +## 2026-09-10 — STEP-064 Consumer 验证通过 / Release Freeze 前 +- `.2` Consumer 首轮发现 RN style helper 的 `raster-particle-opacity` 非 Native `.1` 支持属性,导致 particle layer 缺失;RN-only 修正为 `raster-particle-active`。 +- 固定 Consumer 复用既有 Native `.1` APK,通过 Metro 加载 `.2`:FieldRuntime attach、真实 T0–T3、Runtime READY、Field/Particle 独立开关与恢复全部通过。 +- hard gate 未见 WEATHER_OBJECTS_NOT_READY、FATAL、SIGSEGV、JNI/链接错误;未重建 Android AAR/APK。 +- 当前进入 `maplibre-particle/rn/13.4.1-particle.2` Release Freeze/Tag。