4.5 KiB
STEP-064 RN 纯 Field Renderer 接口 V2 完成报告
状态:RELEASED / CLOSED / PASS
完成内容
@navsea/maplibre-particle-rn 已升为 13.4.1-particle.2。根入口仅公开 FieldRuntime、纯渲染类型、particleFieldIds 与 createParticleFieldStyleFragment();旧 Weather/Wind 公共名称、MLRN facade 导出与兼容 wrapper 均已删除。
FieldRuntime.submitField() / clearFields() 继续薄映射既有 Native ingress。图场与粒子消费同一 canonical Field,分别由 setFieldVisible() 与 setParticleVisible() 控制。FieldColorStop 使用 value,RN 内部才转换既有 Native ABI 所需字段。
package 内 WeatherV2 HTTP、manifest、time index、WVECBIN1 decoder 与高层 loader 已移除。Consumer Test Host 改为直接使用官方 MLRN 的 Map/Camera,并自行保有 GSI、真实 fixture 与本地文件物化;最终仍只向 SDK 提交 metadata 与 file URI。
冻结边界
- Native/Core/JNI/shader/Android AAR 未修改。
- Native artifact 为
cc.navsea.maplibre:android-sdk-particle-opengl:13.4.1-particle.1;.2仅为 RN/TS 公共 API revision。 - 未构建/发布 AAR,未执行 Android Gradle、APK、ADB 或 Jest,未进入 NavSea。
静态验证
- package TypeScript typecheck:通过。
- Consumer TypeScript typecheck:通过;因 Consumer 尚未安装
.2发布包,检查采用临时 TypeScript module-resolution 配置,不改变 Consumer 产品依赖。 npm pack:通过,.2tarball 仅生成在/tmp/step064-pack/,未触碰仓库既有未跟踪.1tarball。- tarball 内容审计:通过;不含
src/weatherV2/、WeatherV2 HTTP/decoder/loader、Test Host、node_modules 或构建缓存。 - package 根导出、业务语义残留审计和
git diff --check:通过。旧 Weather/Wind 名称仅留在内部 Native ABI/codegen 接缝及其薄映射实现,不构成公开 API。 - RN 0.85.2 Codegen parser 已核对支持
TurboModuleRegistry.get()与getEnforcing();当前 import-safeget()方案保留。 - 收尾复审修正:
.2Consumer validation 明确为 pending,.1PASS 仅作为 previous baseline;FieldColorStop 文档示例改为满足至少 2 个 stop 的既有 Native 契约。
未完成与后续最小验证
Consumer 尚未安装最终 .2 tarball 并在既有 .1 Native artifact 的 APK 中运行。后续最小步骤是:安装 .2 tarball,启动 Metro,确认 Map/Camera 来自官方 MLRN,加载宿主 canonical T0-T3 fixture,确认 FieldRuntime attach、提交、独立开关与控制命令正常。该人工 Consumer 验证完成前,本 Step 保持等待状态。
Git 收尾
- 实现提交:
59a48608fb140d04f9008cb8273119999a87b6ef - 提交信息:
refactor: make RN particle API field-renderer only - Push:成功,
particle/main -> origin/particle/main。 - 实现提交 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 已安装
.2tgz,依赖树为一份@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
.1APK + Metro 验证 RN.2。 - hard gate 无上述 Native/崩溃错误。当前允许进入 release tag 与固定 HTTPS tgz 发布。
正式发布结果
- Release source:
e43b58707cfd0f87965424477ed3f95625b3f724。 - Tag:
maplibre-particle/rn/13.4.1-particle.2,已推送远端。 - 正式 tgz URL:
https://pbf.jpcn.ccwu.cc/npm/navsea-maplibre-particle-rn-13.4.1-particle.2.tgz。 - size:10,660 bytes;SHA256:
ace9e0401824839d18a93cc4201c1f5d4cccbff0636570cfde82fd80b60779b5。 - NAS 文件、tag pack 与公网重新下载内容一致;公网返回 HTTP 200。
- Win11 固定 Consumer 从正式 HTTPS URL 重装成功,
@navsea/maplibre-particle-rn=13.4.1-particle.2、MLRN=11.3.6 且 dedupe,TypeScript PASS。 - Native AAR 仍为
13.4.1-particle.1,本次没有重新构建、修改或发布 AAR。