diff --git a/docs/50_Step记录/STEP-051_Local_Production-like_Field_Feed与Core_Snapshot_Submit_Bridge_v1.md b/docs/50_Step记录/STEP-051_Local_Production-like_Field_Feed与Core_Snapshot_Submit_Bridge_v1.md index 5297a4a7f..515506a2e 100644 --- a/docs/50_Step记录/STEP-051_Local_Production-like_Field_Feed与Core_Snapshot_Submit_Bridge_v1.md +++ b/docs/50_Step记录/STEP-051_Local_Production-like_Field_Feed与Core_Snapshot_Submit_Bridge_v1.md @@ -65,3 +65,21 @@ TIME/NORMAL validation 入口现可选择 production-like source(UI 状态标 - `PRODUCTION FEED → field-00.json` 与 `INVALID PROD → field-invalid.json` 的判断逻辑保持不变。 - 未修改 Core、Timeline、Runtime、Renderer 或 production metadata contract;Android build 尚待用户手工复验。 - STEP-051 状态仍为:`IMPLEMENTED / WAITING_ANDROID_VALIDATION`。 + +## Android 最终复验与关闭 + +用户已在 Windows 11 / Android 设备 `192.168.1.146` 基于最新 Host 修复版本完成手工复验,结论如下: + +- production-like T0~T3 加载:PASS;`PRODUCTION_FEED_LOAD` 可见。 +- initial T0/T1 submit:PASS;`SNAPSHOT_SUBMIT kind=INITIAL_T0_T1` 可见。 +- Timeline READY、Playback、自动 MIX:PASS。 +- 至少两次 Window Boundary:PASS;`OLD_T1 → NEW_T0` reuse、only NEW_T1 upload:PASS。 +- 正常 Boundary:`simulationRebuild=false`、`trailCleared=false`:PASS。 +- Duplicate T1:PASS,结果为 NOOP,upload/reset 计数不增加。 +- Invalid production metadata:PASS;Adapter reject、fail-closed、保持最后有效 Field,Renderer 持续运行。 +- Renderer 连续运行、无黑屏、无 crash:PASS。 +- Pause/Resume:沿用 STEP-049 已通过回归基线;本轮日志未作为独立阻塞项重新执行。 + +Validation UI 的 MIX 文本可能滞后、WAITING/INVALID 可视提示仍不够强,继续标记为 `NON-BLOCKING observability`,本次不修复、不重新触发 Android build/install。Runtime Window、Core-owned Timeline/Playback、Pause、Gap/Invalid fail-closed 与 Renderer 边界保持不变。 + +最终状态:`CLOSED / PASS`。 diff --git a/docs/报告/STEP-051_Android复验与最终收尾_Codex完成报告_v1.md b/docs/报告/STEP-051_Android复验与最终收尾_Codex完成报告_v1.md new file mode 100644 index 000000000..2faea6856 --- /dev/null +++ b/docs/报告/STEP-051_Android复验与最终收尾_Codex完成报告_v1.md @@ -0,0 +1,64 @@ +# STEP-051 Android 复验与最终收尾 — Codex 完成报告 + +## 最终状态 + +`STEP-051 = CLOSED / PASS` + +## 基线与环境 + +- Starting HEAD:`abfb4f40abc3c6aed7d4c1c00cc5622097f15e0b` +- branch:`particle/main` +- Android 手工复验操作机:Windows 11 +- Android 设备/虚拟机:`192.168.1.146` +- ADB 规则:`adb -s 192.168.1.146 ...` +- Android Gradle、APK build/install、ADB、App 启动和设备操作均由用户手工执行;Codex 本任务未执行。 + +## Android 复验矩阵 + +| 验收项 | 结果 | +|---|---| +| Production-like T0~T3 load / `PRODUCTION_FEED_LOAD` | PASS | +| Initial T0/T1 submit | PASS | +| Timeline READY | PASS | +| PLAY / Playback | PASS | +| Auto MIX | PASS | +| Window Boundary #1 | PASS | +| Window Boundary #2 | PASS | +| `OLD_T1 → NEW_T0` reuse | PASS | +| Only NEW_T1 upload | PASS | +| `simulationRebuild=false` | PASS | +| `trailCleared=false` | PASS | +| Pause/Resume | PASS(沿用 STEP-049 已通过基线,本轮未独立重复执行) | +| Duplicate T1 NOOP | PASS | +| Invalid metadata fail-closed | PASS | +| Renderer continuity | PASS | +| Black screen | 未发生 | +| Crash | 未发生 | + +关键日志包括 `PRODUCTION_FEED_LOAD`(T0~T3)、`SNAPSHOT_SUBMIT kind=INITIAL_T0_T1`、`ParticleTimeline: event=READY snapshots=4`、至少两次 `WINDOW_BOUNDARY`,以及 Invalid metadata 的 `ADAPTER_REJECTED errorCode=INVALID_TIMESTAMP_OR_IDENTITY`。 + +## 技术债与架构保护 + +Validation UI 的 auto MIX 文本可能滞后,WAITING/INVALID 视觉提示仍不够明显,分类为 `NON-BLOCKING observability`;本任务未修复,也未因此重新 build/install。Rotation/Viewport 技术债未处理。 + +已确认未破坏:`OLD_T1 → NEW_T0` reuse、only NEW_T1 upload、正常播放 `simulationRebuild=false`/`trailCleared=false`、MIX property-only、Core-owned Timeline/Playback、Pause 语义、Invalid/Gap fail-closed、Renderer provider-neutral 边界,以及 WeatherColorLayer 与 RasterParticleLayer 分离。 + +## 本任务范围与 Git + +本任务仅修改: + +- `docs/50_Step记录/STEP-051_Local_Production-like_Field_Feed与Core_Snapshot_Submit_Bridge_v1.md` +- 本最终收尾报告 + +未修改任何功能代码、Kotlin、JNI、Core、Timeline、Runtime、Renderer、Adapter、生产数据或测试。未执行 Jest。无关 untracked 文件未修改、未 stage、未提交。 + +- `git diff --check`:PASS。 +- commit hash:待提交后回填。 +- commit message:`docs: close STEP-051 Android validation` +- push result:待执行。 +- remote branch:`origin/particle/main` +- Final HEAD:待 push 后回填。 + +## 结论 + +Android production-like feed、Snapshot submit、Timeline、Window boundary、Duplicate、Invalid fail-closed 和 Renderer continuity 已完成最终复验。STEP-051 正式关闭为 `CLOSED / PASS`;不进入 STEP-052。