视觉按最新原型,业务按已确认PRD。现有代码为满足设计而改造。执行见按设计实施与任务卡;当前代码与验证范围见消费者功能页。
缓存容量实现
2026-10-04。已修改两个现有项目,未发布 API、App 或 OTA。普通渠道在线继续按本站/App 内 Web10、App50 集接入,直连失败后才转发。
当前行为
默认上限为100集、2GiB,任一达到后暂停新增缓存。计数按当前账号和 API 地址在本机的原生缓存隔离;不是所有账号及系统临时文件合计的硬磁盘上限。下载中、失败、暂停、待删除的原生记录占集数,尚未开工的 JS 选集不占;容量使用原生缓存的实际视频文件字节。另保留已有128MiB系统可用空间检查。
选集确认前读取原生占用;容量不足保留已选集数、关闭确认框并提供“管理缓存”。队列在申请许可前检查占用,清理完成后继续原订单。准备期间后台修改上限时,新的交付响应再次检查;已签发的原许可继续用于后续恢复,不重复扣次或延长有效期。后台调低上限不自动删除已完成的视频。
Payload“用户端配置”增加最多集数和最多MiB。保存为草稿,点击既有发布按钮后写入消费者配置;App从预览、订单恢复及交付响应获取数值。没有新增平台业务表。Payload官方生成的迁移新增配置与版本字段,并包含此前site-direct默认值变更;已在隔离数据库执行,未触碰真实数据库。
原生实现
Android复用Media3 DownloadManager、DownloadIndex、SimpleCache和CacheDataSink。两条下载共享容量计数,未知长度下载也在写入前检查;不自动淘汰已缓存的视频。异步索引尚未发布时,原生已接收的任务仍占集数。因容量失败后用同一DownloadRequest恢复,沿用缓存片段及原许可。
iOS复用URLSession/AVAssetDownloadURLSession,在进度回调、系统文件交付及可播放校验时检查。超限的新文件停止下载并清理,不标为可播放;原有文件保留。系统临时文件与回调间增长无法逐字节硬限制。HLS按已登记包内的实际文件字节统计,未登记的进行中任务使用系统进度;这是视频负载大小,不等同文件系统分配空间。iOS完整安装包、低磁盘和系统后台回调仍需真机验收。
原生接口为enqueueWithCapacity、configureLimits、usage,App runtimeVersion更新为7。旧二进制缺少能力时不会申请新下载许可。当前代码包已成功导出,仍需重新构建和安装原生App。
验证
平台255/255、App325/325、Payload86/86及App类型检查通过。Android实际Media3/SQLite/Cache28/28;Apple Foundation/AVFoundation SDK162项检查通过。覆盖实际文件占用、并发未知长度、清理恢复、异步索引集数、后台发布和上下限、原许可重试、账号隔离及重启恢复。
中英文320/390px的实际RN选集组件在Chrome检查8组:集数满、容量满、不产生订单、管理入口、清理后提交,无横向溢出。API、原生占用和导航为明确适配器,不代表真机下载。react-native-video补丁在干净6.19.2包上应用成功,21个源码文件与本机一致;Android/iOS Hermes导出通过。详细记录见验证结果。
本轮为主Agent自查,没有新一轮独立子Agent复审。仍待真实来源下载、下载直连失败后的转发、服务端解码缓存、真机及完整iOS构建、剩余选集后台调度;Redis视频缓存未接入。