视觉按最新原型,业务按已确认PRD。现有代码为满足设计而改造。执行见按设计实施与任务卡;当前代码与验证范围见消费者功能页。
缓存与账号生命周期复审
本页保留此前阶段的实现与验收范围。2026-10-04 已追加后端订单、App 多选/队列与离线播放器接线,当前进展见缓存订单与页面及本轮复审。真实签发器、完整 iOS 与真机仍待验收。
2026-10-03。独立复审模型为 gpt-6.1-sol,reasoning_effort=max;范围为 root 编写的 JS 账号/缓存接线与 Android 生命周期改动。原始夹具和执行记录由子 Agent 生成,报告由 root 对照源码与日志归档。iOS 代码由该 Agent 实现,其 119 项 SDK 检查单列为实现证据,不计入本次独立复验。
已发现并关闭
| 问题 | 修复与复验 |
|---|---|
| P2:进度持久化失败提前中断 clearConsumerAccount,跳过旧 viewer 与私有查询清理;viewer 文件删除错误也可能跳过订阅通知和来源状态重置 | 身份失效、查询取消/移除、进度与原生清理分别执行并收集错误;等待真实原生结果后报告 local_cleanup_pending。writeViewer 通知和 forgetViewer 状态重置移到 finally,保留存储错误,不能假报清理成功 |
修复前两个实际模块场景复现:ProgressJournal.remove 抛错,以及官方 Expo signOut 遇到进度存储错误。原生清理已经开始、官方凭据可被撤销,但旧 viewer 和私有 QueryClient 数据仍保留。修复后对应数据立即失效;本地错误仍返回未完成,服务端退出仍执行一次。
独立执行结果
| 检查 | 通过 | 范围 |
|---|---|---|
| 新增 JS 故障复验 | 4/4 | 实际 ProgressJournal、api 模块、QueryClient 与官方 Expo SDK;桥接/HTTP/SecureStore 为适配器,另用真实本地文件删除错误检查通知 |
| 作者 JS 相关回归复跑 | 29/29 | 16 项生命周期、2 项身份相关检查、11 项逐集进度;不与新增独立检查混算 |
| 新增 Android 独立交错 | 3/3 | 实际 Media3、SQLite、SimpleCache、ReactExoplayerView 与 ExoPlayer;源网络为受控合成 transport |
| 作者 Android 集成复跑 | 19/19 | 实际下载队列、索引、缓存、账号锁定、清理与来源准备;0 失败、0 错误、0 跳过 |
JS 新增检查为:进度删除失败仍使 viewer/query 失效并等待原生清理;真实 viewer 文件删除错误仍通知订阅并清空私有查询;官方 Expo 退出在存储错误后仍清凭据、撤销服务端会话并移除旧缓存;同 UID 不同 origin 的迟到清理保留当前账号查询与书签。
Android 新增检查为:持久 queued 任务冷启动及 configureOwner 不请求源,显式 resume 后才下载;中断的 A 清理在重启后仍锁住 A,B 的真实缓存仍可读,完成 A 清理后可重新确认 A;实际构造 ReactExoplayerView,执行生产 buildMediaSource 注册的 owner observer,让 ExoPlayer 媒体项由 1 变 0、进入 STATE_IDLE,重新确认 A 后调用旧 Source 的初始化也不能重新挂载或请求网络。
本次范围内没有仍未修复的已确认 P0/P1/P2。验证零媒体项与 STATE_IDLE,没有运行解码器或证明设备上的已缓冲画面、系统后台下载、DRM 或远程即时撤权。
root 补充验收
App 全量 228/228 与类型检查通过。最终 Android assembleRelease 成功,实际 APK 含原生模块、服务注册、Hermes bundle 与四种 ABI;采用现有 debug 签名和本机受控 API,未安装或发布。react-native-video 补丁在全新 6.19.2 npm 包上正常应用,19 个改动文件与已验证源码逐字节一致;没有新增 hash 或冻结契约。
iOS 119 项真实 macOS Foundation/AVFoundation SDK 夹具通过,其中 AVPlayer/helper、账号锁定和实际写盘故障均执行;RCTVideo 仅通过 iOS target 的语法 parse。完整 UIKit/React 编译、iPhone 真机、后台 URLSession 与每个 HLS 子请求的隔离仍未验收。
证据与剩余范围
原始记录:offline-lifecycle-independent-repro.log、offline-lifecycle-independent-fixed.log、offline-lifecycle-review-js-author-final.log、offline-lifecycle-independent-android.log 及两份实际 JUnit XML。实现详情见缓存与账号生命周期。
尚未完成的 O01 来源许可/签发、额度与缓存界面、iOS 宿主后台转发及完整构建、两端真机、真实许可/密钥清理,均保留在实施路线中。消费者下载入口仍关闭。没有发布真实 API、App 或 OTA,也没有提交/推送仓库;在线更新只包含文档与已有设计预览。