Files
MapLibreParticleLab/docs/50_Step记录/STEP-071_MapLibreParticleLab_V3-07_Linux综合冻结_v1.md
OpenAI Codex a4bf6b7aea
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
test: close V3 Linux freeze
2026-09-11 11:51:34 +08:00

2.3 KiB
Raw Permalink Blame History

STEP-071 — MapLibreParticleLab V3-07 Linux 综合冻结

状态:CLOSED / PASS(Linux) 日期:2026-09-11 基线:fcc533dc9518395d0c25794131f53f0fae20d51c

目标

在进入 V3-08 Android 统一验收前,对 V3-02~V3-06 的 canonical field、Host ingress、Timeline、RasterParticle 与 RN 公共桥接做一次 Linux 综合冻结。

冻结链结果

  • canonical fixture validator:PASS。
  • packages/maplibre-particle-rn TypeScript:PASS。
  • RN Test Host npm run typecheck:PASS。
  • RN TurboModule codegen:PASS。
  • mbgl-test / mbgl-test-runner Linux OpenGL target:PASS / up-to-date。
  • V3 综合过滤测试:21/21 PASS。
  • git diff --check:PASS。
  • Android Gradle/AAR/APK/ADB/Jest:本 Step 不运行。

综合测试覆盖

过滤范围:Source.ParticleField*、Source.HostField*、Source.RasterArrayTimeline*、Source.RasterArraySharesCanonicalSnapshotsWithWeatherColorLayer、Layer.RasterParticle*。 最终 18 个 Source + 3 个 Layer,共 21 项全部 PASS。

冻结中发现并修正的测试问题

  1. HostFieldSubmissionRejectsInvalidWithoutChangingLastValidField 旧测试用同一 uniform-east payload 构造 T0/T1,正确 Runtime 会先返回 Duplicate。测试改为 east→north 两份兼容但不同内容。
  2. RasterArrayTimelineCandidatesReachReadyThroughFieldAdapter 使用的 east/north/vortex 旧 fixture 均为 timeIndex=0;当前 Adapter 保留 validTime=timeIndex+1,导致 Timeline 正确 fail-closed。测试仅在局部 metadata 副本中改为 0/1/2,未修改共享 fixture。
  3. 两处均为 test fixture 陈旧,不修改 Runtime、Duplicate 判定顺序、Timeline fail-closed 或生产 API。

对应 Codex 任务:

  • docs/40_任务/STEP-071A_V3-07_Linux综合冻结_测试Fixture修正_Codex任务_v1.md
  • docs/40_任务/STEP-071A_V3-07_Linux综合冻结_测试Fixture修正_Codex任务_v2.md

边界

  • 未修改 src/、include/、shader、JNI、Android、RN runtime、WeatherV2 或 NavSea。
  • 已知既有 Layer.WeatherColorUsesIndependentFixedOpacity 断言债不属于本 Step,不修、不作为 V3-07 gate。
  • STEP-062 用户 dirty 与历史 untracked/build/cache/tgz 均保持隔离。
  • 下一步:V3-08,一次 Android 编译/安装/实体机综合验收。