mirror of
https://github.com/Silent1566/webhtv.git
synced 2026-11-14 02:00:15 +00:00
Verification: C6 code commit a33ff92b8e and recovery tag recovery/C6-beta-sync/20260902090623-a33ff92b8e65 are pushed; 171 targeted tests pass; Mobile and Leanback Java compilation pass; git pull --ff-only up-to-date
Task-Guard: C6-beta-sync
16 KiB
16 KiB
C6:合并 origin/beta 最新应用修复
Recovery anchor
- 目标:将
origin/beta最新头合并到当前dev2,评审合并树及已提交未推送的实时字幕快捷切换代码,修复有效问题并循环复审至通过,提交、推送并拉取远端最新代码。 - 状态:已完成并推送;评审问题已修复,最终验证通过。
- 当前基线:
dev2@a33ff92b8e65e11330ab17270b5f86a4c0b08183。 - beta 目标:
origin/beta@c975ae1ed482a4bf47f106f5931bd2392e8ecce3。 - 合并基线:
db4b1650f73c819b3eebd7e7534e7b9e4ec65ff4。 - 受保护路径:
app/src/main/java/com/fongmi/android/tv/bean/Result.java,本任务不采用、不修改、不提交。 - 回滚:本次合并已提交,使用
git revert a33ff92b8e65e11330ab17270b5f86a4c0b08183回退;恢复 tag 保留为回滚锚点。 - 下一动作:代码任务已闭合;有设备时补验原生增强详情页和实时字幕关闭/切换失败场景。
Authority and scope
- 用户已明确授权:拉取 beta 最新代码、合并到当前
dev2、评审全部相关修改(包括已提交未推送提交)、修复后验证并再次评审,循环至通过,提交、推送和git pull。 - 本任务 guard:
C6-beta-sync,模式upstream。 - 本任务不升级 FFmpeg、Media3、MPV、JNI、lock 或 native 二进制;beta 的有效树差异仅涉及应用播放页和对应测试。
- 评审边界:beta 有效差异、当前未被
origin/dev2包含的本地字幕提交,以及二者在播放器生命周期、加载状态、字幕/播放入口上的交互。
Frozen beta ledger
| # | Repository | Full commit | Parent(s) | Functional area | Disposition |
|---|---|---|---|---|---|
| 1 | origin/beta |
ab3093072fc075d81da02bacb02454779f9ccb82 |
b3fab34cab38f89384b7e1065e27094f07b99ec1 |
Leanback/mobile 原生增强详情页避免双层 loading | beta 功能提交;合并后按最终树复审 |
| 2 | origin/beta |
826a4c10bef026222e49915979ad968bc8ceea44 |
ab3093072fc075d81da02bacb02454779f9ccb82 |
手机端原生增强 shell/backdrop/loading 修复 | beta 功能提交;合并后按最终树复审 |
| 3 | origin/beta |
a26a80d0c207c06d9e09192febee95ae976e8963 |
826a4c10bef026222e49915979ad968bc8ceea44 + c1c53da674c0e0f2945fdc159de8a6ac4c4fe976 |
dev3 合并 beta 的集成承载 | 合并提交;处置跟随最终树 |
| 4 | origin/beta |
abe3872a351f828a6375261a39ef648f94076288 |
c1c53da674c0e0f2945fdc159de8a6ac4c4fe976 + a26a80d0c207c06d9e09192febee95ae976e8963 |
dev3 合并回 beta 的集成承载 | 合并提交;处置跟随最终树 |
| 5 | origin/beta |
c975ae1ed482a4bf47f106f5931bd2392e8ecce3 |
abe3872a351f828a6375261a39ef648f94076288 + db4b1650f73c819b3eebd7e7534e7b9e4ec65ff4 |
beta 发布目标合并提交 | 合并提交;处置跟随最终树 |
Effective tree difference
origin/beta 相对当前 dev2 的有效差异在合并前已确认无冲突,路径为:
app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.javaapp/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.javaapp/src/testMobile/java/com/fongmi/android/tv/ui/activity/VideoActivityLayoutTest.java
当前 dev2 相对 origin/dev2 的未推送提交为:
b7b2b1a6c92d4691e12c313e7111325c6f5d4113:播放字幕界面快捷切换实时原声识别语言,涉及TrackDialog、RealtimeSubtitleController、两端布局、语言资源和TrackDialogTest。
Review and validation plan
- 合并后检查冲突标记、完整有效差异和 beta 变更是否覆盖/破坏实时字幕入口。
- 独立评审最终树,重点检查播放页 loading/reveal 状态、生命周期竞态、字幕控件可达性、移动端与电视端一致性,以及已提交字幕切换的模型代次保护。
- 对每个 Critical/Important 问题先验证根因,再按 TDD 增加回归测试,修复后运行最小验证并重新评审完整修复差异。
- 最小验证:
git diff --check、冲突标记扫描、受影响的字幕/播放页测试、Mobile/Leanback Arm64 Java 编译;不因本次仅 Java/UI 合并重复 native 重建。 - 提交前由 task guard 原子提交并创建恢复 tag;随后只推送当前
dev2和新建恢复 tag,再执行git pull --ff-only。
Acceptance and rollback
- beta 的 5 个完整 commit ID 均有处置,最终树无未合并路径和冲突标记。
- 播放字幕界面仍可直接选择原声识别语言;实时识别输出继续为简体中文;切换不改变播放位置、不误重建播放器/音频管线。
- beta 的原生增强详情页 loading/backdrop 行为与字幕入口共存,移动端和电视端编译通过。
- 评审无未处理 Critical/Important 问题;测试失败若属于无关既有问题则记录而不扩大范围。
- 本地回滚锚点为当前基线
b7b2b1a6c92d4691e12c313e7111325c6f5d4113及其恢复 tagrecovery/realtime-subtitle-language-quick-switch/20260902031226-b7b2b1a6c92d。
Implementation log
- 2026-09-02 Asia/Shanghai:刷新
origin/beta,确认目标头c975ae1ed482a4bf47f106f5931bd2392e8ecce3;git merge-tree --write-tree HEAD origin/beta返回无冲突树44e8345c83abd9525e5b4dce9d56560f4474627e。 - 2026-09-02 Asia/Shanghai:启动
C6-beta-syncguard,保护预先存在的Result.java。 - 2026-09-02 Asia/Shanghai:执行
git merge --no-commit --no-ff origin/beta,Git 报告自动合并成功;task guard check 通过,未发现未合并路径。
Current status
- 合并:已完成并创建提交
a33ff92b8e65e11330ab17270b5f86a4c0b08183,包含 beta 有效树和字幕竞态修复。 - 评审:已修复独立审查发现的两项 Important 和一项 Medium:模型切换失败回退代次竞态、Mobile 缓冲覆盖 shell、Leanback 无初始预览焦点恢复;未发现 Critical。
- 验证:修复后的四个目标测试类共 171 项全部通过(failures/errors/skipped 均为 0);Mobile 与 Leanback Arm64 Java 编译均
BUILD SUCCESSFUL。 - 提交/推送/拉取:已完成;恢复 tag 为
recovery/C6-beta-sync/20260902090623-a33ff92b8e65,dev2与该 tag 已推送,git pull --ff-only返回up-to-date。
Checkpoint 1: 2026-09-02 13:55 Asia/Shanghai
- Completed: 恢复上一会话并核对当前工作树;beta 合并仍未提交,原始实时字幕快捷切换提交仍在 HEAD,新增回归断言已存在。
- Source identities:
origin/beta@c975ae1ed482a4bf47f106f5931bd2392e8ecce3; local rollback anchorb7b2b1a6c92d4691e12c313e7111325c6f5d4113。 - Decisions/evidence:
RealtimeSubtitleController.prepareModel()在enabled = true后无条件排队disableNativeSubtitle();disable()只取消 ticker,不能取消已排队 lambda。回归断言要求回调重新检查request与enabled。 - Workspace: branch
dev2, HEADb7b2b1a6c92d4691e12c313e7111325c6f5d4113;Result.java及其他 beta 合并路径保持为受保护/既有改动。 - Files/artifacts changed: 本 checkpoint 仅更新本任务文档;生产控制器尚未修改。
- Validation: task guard
check已通过;RED 单测尚未运行。 - Rollback anchor: 合并未提交前可用
git merge --abort;本次竞态修复不改变该回滚锚点。 - Unresolved: 需要先观察现有
TrackDialogTest是否因控制器缺少保护而失败,再实施一个 lambda guard。 - Next action: 运行最终定向测试与 Mobile/Leanback Arm64 Java 编译批次。
Checkpoint 2: 2026-09-02 14:35 Asia/Shanghai
- Completed:
TrackDialogTest已完成 RED/GREEN;未修复树中 10 项测试有 1 项在新竞态断言失败,加入主线程回调代次/启用状态保护后同一测试通过。 - Repairs:
RealtimeSubtitleController.prepareModel()的已排队主线程回调现在先检查request != generation || !enabled;VideoActivityLayoutTest的内核切换断言改为限定实际方法体并检查请求编号、当前播放上下文和提前返回,修正两个测试边界误用。 - Validation:
:app:testMobileArm64_v8aDebugUnitTest --tests com.fongmi.android.tv.ui.dialog.TrackDialogTest --no-daemon通过;... --tests com.fongmi.android.tv.ui.activity.VideoActivityLayoutTest --no-daemon --console=plain通过。此前布局测试失败均定位为测试文本/截取边界问题,未改生产播放器逻辑。 - Review: 本地复核确认关闭、模型切换、失败恢复路径仍由 generation 和 enabled 保护;独立只读审查已发起,待收取结果。
- Workspace: branch
dev2, HEADb7b2b1a6c92d4691e12c313e7111325c6f5d4113; beta 合并差异仍在 index,字幕控制器、两项测试和文档为工作树改动;Result.java及其他初始脏路径未触碰。 - Rollback anchor: 未提交合并仍可用
git merge --abort;完成提交后以 task guard recovery tag 或git revert回滚。 - Unresolved: 最终定向测试/双端编译、最终 guard check、原子提交与远端同步尚未完成;设备播放回归仍不是本地可执行证据。
- Next action: 执行一次最终 Gradle 定向测试与双端 Java 编译,并保留完整结果。
Checkpoint 3: 2026-09-02 16:26 Asia/Shanghai
- Completed: 完成最终定向验证和双端 Java 编译;最终树无冲突路径,准备进行合并提交。
- Repairs:
RealtimeSubtitleController.prepareModel()的已排队主线程回调先检查request != generation || !enabled,关闭实时字幕后不会再误禁用原生字幕;VideoActivityLayoutTest的内核切换断言限定到实际方法体,检查请求编号、当前播放上下文和先行返回。 - Validation:
:app:testMobileArm64_v8aDebugUnitTest目标为TrackDialogTest、VideoActivityLayoutTest、RealtimeSubtitleModelCatalogTest、RealtimeSubtitleTranslatorTest,JUnit XML 分别为 10、150、5、6 项,均failures=0 errors=0 skipped=0;:app:compileMobileArm64_v8aDebugJavaWithJavac :app:compileLeanbackArm64_v8aDebugJavaWithJavac --no-daemon --console=plain返回BUILD SUCCESSFUL。 - Review: 本地最终树复核已覆盖 beta loading/shell/backdrop/focus、内核切换异步请求和实时字幕 enable/disable/switchModel/failure 路径,未发现 Critical/Important。独立只读审查代理在两个 300 秒等待窗口内未返回,未将其当作通过证据。
- Workspace: branch
dev2, HEADb7b2b1a6c92d4691e12c313e7111325c6f5d4113,MERGE_HEAD=origin/beta@c975ae1ed482a4bf47f106f5931bd2392e8ecce3;C6 任务路径待由 guard 提交,Result.java仍为受保护的预先脏改动。 - Rollback anchor: 提交前使用
git merge --abort;提交后使用本次恢复 tag 或git revert回退合并提交。 - Unresolved: 未执行真实设备播放回归;需在有设备时补验原生增强详情页 loading/backdrop、内核选择和实时字幕关闭交互。提交、恢复 tag、推送和
git pull --ff-only尚未完成。 - Next action: 修复 C6 guard 的
Result.java保护指纹后运行task_guard.sh finish,创建合并提交和恢复 tag。
Checkpoint 4: 2026-09-02 16:53 Asia/Shanghai
- Completed: 收取独立审查结果并核实三项反馈;新增三条回归断言均在修复前按预期失败。控制器失败回退修复后
TrackDialogTest通过。 - Repairs: replacing 失败回退把 generation 检查、旧会话状态恢复置于同步块,并给回退 ticker 加
request/generation/enabled保护;MobileshowProgress()在原生增强富集期间不再切回整页 loading;Leanback shell 从隐藏态揭开时仅在根视图无焦点的情况下异步恢复播放器焦点,并在执行前再次检查。 - Validation: RED 批次显示
TrackDialogTest、Mobile 缓冲保护和 Leanback 焦点保护共 3 项失败;控制器修复后TrackDialogTest返回BUILD SUCCESSFUL。其余两项生产修复后的最终详情布局测试和双端 Java 编译待执行。 - Review: 独立审查报告发现 2 项 Important、1 项 Medium,均已逐项核实并修复;未发现 Critical。设备验证风险仍保留。
- Workspace: branch
dev2, HEADb7b2b1a6c92d4691e12c313e7111325c6f5d4113,MERGE_HEAD=origin/beta@c975ae1ed482a4bf47f106f5931bd2392e8ecce3;Result.java继续作为受保护初始脏路径。 - Rollback anchor: 提交前
git merge --abort;提交后用 task guard recovery tag 或git revert回退。 - Unresolved: 最终定向测试和双端 Java 编译、guard check、原子提交/tag、推送和
git pull --ff-only尚未完成;无设备播放验证。 - Next action: 运行修复后的完整 C6 定向测试并编译 Mobile/Leanback Arm64 Java。
Checkpoint 5: 2026-09-02 16:54 Asia/Shanghai
- Completed: 完成独立审查反馈的逐项核实、TDD RED/GREEN 修复和最终验证,C6 合并树准备 closure。
- Review: 独立审查报告发现 2 项 Important、1 项 Medium,均确认属于当前代码真实缺口并已修复;未发现 Critical。审查席位未修改工作区。
- Repairs: replacing 失败回退在同步块内复核 generation 并保护 ticker;Mobile 播放器缓冲不再在原生增强 TMDB 富集期间切回整页 loading;Leanback shell 从隐藏态揭开时仅在根视图无焦点时异步恢复播放器焦点,并在执行前复核。
- Validation:
:app:testMobileArm64_v8aDebugUnitTest --tests com.fongmi.android.tv.ui.dialog.TrackDialogTest --tests com.fongmi.android.tv.ui.activity.VideoActivityLayoutTest --tests com.fongmi.android.tv.subtitle.RealtimeSubtitleModelCatalogTest --tests com.fongmi.android.tv.subtitle.RealtimeSubtitleTranslatorTest --no-daemon --console=plain返回BUILD SUCCESSFUL;JUnit 统计分别为 10、150、5、6 项,均failures=0 errors=0 skipped=0。:app:compileMobileArm64_v8aDebugJavaWithJavac :app:compileLeanbackArm64_v8aDebugJavaWithJavac --no-daemon --console=plain返回BUILD SUCCESSFUL。 - Workspace: branch
dev2, HEADb7b2b1a6c92d4691e12c313e7111325c6f5d4113,MERGE_HEAD=origin/beta@c975ae1ed482a4bf47f106f5931bd2392e8ecce3;Result.java仍是受保护的预先脏改动,未纳入本任务。 - Rollback anchor: 提交前使用
git merge --abort;提交后使用本次 task guard recovery tag 或git revert回退合并提交。 - Unresolved: 真实设备播放验证仍未执行;需在 Mobile/Leanback 上补验慢速/失败 backdrop、TMDB 不匹配回退、无初始预览焦点、缓冲状态和实时字幕“切换失败后立即关闭/再次启用”。提交、恢复 tag、推送和
git pull --ff-only尚未完成。 - Next action: 执行最终 guard check 后运行
task_guard.sh finish,创建 C6 合并提交和恢复 tag。
Checkpoint 6: 2026-09-02 17:25 Asia/Shanghai
- Completed: C6 合并、评审修复、最终验证、原子提交、恢复 tag、远端推送和 fast-forward 拉取全部完成。
- Source identities:
origin/beta@c975ae1ed482a4bf47f106f5931bd2392e8ecce3;local/remotedev2@a33ff92b8e65e11330ab17270b5f86a4c0b08183;beta effective merge basedb4b1650f73c819b3eebd7e7534e7b9e4ec65ff4。 - Implementation:
a33ff92b8e65e11330ab17270b5f86a4c0b08183;task guard recovery tagrecovery/C6-beta-sync/20260902090623-a33ff92b8e65。 - Review: 独立只读审查发现 2 项 Important、1 项 Medium,均确认属于当前代码真实缺口并已修复;最终本地复核未发现 Critical/Important。
- Validation:
TrackDialogTest10 项、VideoActivityLayoutTest150 项、RealtimeSubtitleModelCatalogTest5 项、RealtimeSubtitleTranslatorTest6 项,合计 171 项均failures=0 errors=0 skipped=0;Mobile/Leanback Arm64 Java 编译均返回BUILD SUCCESSFUL;git diff --check、冲突标记扫描和 task guard check 通过。 - Remote: 首次默认 HTTPS 推送遇到
SSL_ERROR_SYSCALL;使用 GitHTTP/1.1重试后dev2和恢复 tag 均推送成功,随后git pull --ff-only返回up-to-date。 - Workspace: branch
dev2, HEADa33ff92b8e65e11330ab17270b5f86a4c0b08183;仅保留受保护的预先脏改动app/src/main/java/com/fongmi/android/tv/bean/Result.java,未纳入 C6 提交。 - Rollback anchor: 使用
git revert a33ff92b8e65e11330ab17270b5f86a4c0b08183回退本次合并;恢复 tag 指向同一已验证提交。 - Unresolved: 尚未执行真实设备播放回归;需补验 Mobile API 29/31/35 动态取色、慢速/失败 backdrop、TMDB 不匹配回退、Leanback 无初始预览焦点、播放器缓冲,以及实时字幕“切换失败后立即关闭/再次启用”。
- Next action: 有设备时执行上述代表性播放回归;在此之前不再修改 C6 代码或构建产物。