46 lines
2.7 KiB
Markdown
46 lines
2.7 KiB
Markdown
# STEP-049 Timeline 回归修复 — Codex 完成报告
|
||
|
||
## 状态
|
||
|
||
`IMPLEMENTED / WAITING_ANDROID_REVALIDATION`。本报告不宣称 `CLOSED / PASS`。
|
||
|
||
## 基线与根因
|
||
|
||
- Starting HEAD:`dcedbe7394e74b80d91f00315a9956dfaea35229`
|
||
- 实际远端 `origin/particle/main` 起始 HEAD:`dcedbe7394e74b80d91f00315a9956dfaea35229`
|
||
- 根因:`tryLoadRuntimeField()` 以 generation `0` 调用正式 adapter;adapter 合法拒绝,Timeline candidate 在更晚的 `tryInitializeTimeline()` 才分配 generation。Runtime Window 使用已分配 generation,故出现 Timeline 失败而 Window 正常。
|
||
- 原 STEP-049 11/11 未捕获:测试覆盖了直接 adapter、手工 Timeline 和 Runtime Window,但没有覆盖真实 Source 异步 candidate preload → adapter → Timeline READY 顺序。
|
||
|
||
## 实际修改
|
||
|
||
- `src/mbgl/style/sources/raster_array_source.cpp`:candidate decode 前分配全局 generation,移除 Timeline 阶段重复赋值;增强低频 adapter rejection 日志。
|
||
- `src/mbgl/particle/field/field_data_adapter.cpp`、`.hpp` 与 fixture wrapper:保留正式 contract 和 generation 非零校验,提供 error code 名称用于日志。
|
||
- `test/style/source.test.cpp`:新增真实 candidate → adapter → Timeline READY 回归测试。
|
||
- `platform/android/MapLibreAndroidTestApp/.../ParticleCoreLayerValidationActivity.kt`:仅整理 Window/Timeline 状态可见性。
|
||
- `docs/50_Step记录/STEP-049..._v2.md`、本报告、`粒子开发记录.md`。
|
||
|
||
未修改 Runtime Field Window、Duplicate、Renderer simulation、Timeline Core 状态机或 Android per-frame JNI;未新增兼容层。
|
||
|
||
## 验证
|
||
|
||
- C++/Core/OpenGL:`cmake --build build-linux-opengl --target mbgl-test-runner -j3`,PASS。
|
||
- 定向测试:`Source.RasterArrayTimelineCandidatesReachReadyThroughFieldAdapter:Source.ParticleFieldDataAdapter*:Source.RasterArray*`,12/12 PASS。
|
||
- 合法 candidate 通过正式 adapter 并进入 Timeline READY:PASS。
|
||
- generation=0 / invalid descriptor 结构化拒绝:PASS。
|
||
- `git diff --check`:PASS。
|
||
- Android Gradle/APK/copy/install/ADB/设备:未执行。
|
||
- Jest:未新增、未执行。
|
||
|
||
## Android 待复验
|
||
|
||
需验证 `ParticleTimeline: event=READY`、PLAY 不再 `TIMELINE_NOT_READY`、MIX/cursor 推进、跨至少两个 Window boundary、Pause/Resume、GAP WAIT、INVALID NEXT、fail-closed、Renderer 持续和 `simulationRebuild=false`/`trailCleared=false`。
|
||
|
||
## Git 收尾
|
||
|
||
- commit hash:`a418e50a0105a23e70112eb77cd813485eae6855`
|
||
- commit message:`fix: restore particle timeline readiness after field adapter`
|
||
- push result:`SUCCESS`
|
||
- remote branch:`origin/particle/main`
|
||
- Final HEAD(修复提交推送时):`a418e50a0105a23e70112eb77cd813485eae6855`
|
||
- 无关 untracked 文件:保留,未修改、未 stage、未提交。
|