前四个工单已把单商品全链路跑通并验证:#9 专属 Chrome 与登录、 #12 以图搜(签名算法确认有效)、#13 详情视频提取与下载。 本工单在其外面套一层队列,实现批量处理,是 MVP2 的最后一块。
真机验证证据(负责人 2026-09-03):videos 表 3 条全部 downloaded, 文件大小 2.1MB / 4.5MB / 1.6MB,均通过 ffprobe 校验; 另有 1 个商品搜完所有同款确认无视频,video_status=none 分支正常。
videos
video_status=none
这一条做错会同时踩两个坑,因此在提示词中特别强调:
因此队列结构为:
串行阶段(一次一个商品,全程持有同一 CDP): 登录深度检查 → 图搜 → 逐个同款开详情页提取视频地址 ↓ 并行阶段(按 Download.Concurrency,默认 2): 纯 HTTP 下载 + ffprobe 校验,不碰 CDP
串行阶段处理完一个商品后按配置随机等待;下载阶段不等待。 明确禁止「给 CDP 加锁让多协程抢」——那只是把串行伪装成并行,更难排查。
last_error
商品的 download_status 本身就是断点:
download_status
download_status == done
video_status == none
中断后重新点「下载视频」自然从未完成处继续。这样断点是免费的, 不会出现断点文件与数据库不一致的问题。
前三个工单连续出现用 window.go.main.App 绕过 Wails 生成绑定的写法 (#8 一处、#10 三处、#13 三处),每次都由审核者重新生成绑定并改回。 本工单已将「前端不得出现绕过绑定的写法」列为硬性验收项,需要新绑定 应在报告中列出方法名,由审核者生成。
window.go.main.App
internal/task
FetchVideosForProduct
go vet ./... go test ./... cd frontend; npx vite build
真机验证:负责人勾选若干商品运行批量任务,并测试中途停止与登录失效。
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
前四个工单已把单商品全链路跑通并验证:#9 专属 Chrome 与登录、
#12 以图搜(签名算法确认有效)、#13 详情视频提取与下载。
本工单在其外面套一层队列,实现批量处理,是 MVP2 的最后一块。
真机验证证据(负责人 2026-09-03):
videos表 3 条全部 downloaded,文件大小 2.1MB / 4.5MB / 1.6MB,均通过 ffprobe 校验;
另有 1 个商品搜完所有同款确认无视频,
video_status=none分支正常。关键设计:图搜串行、下载并行
这一条做错会同时踩两个坑,因此在提示词中特别强调:
同时 Navigate/Evaluate 会互相踩,拿到别人页面的结果。
因此队列结构为:
串行阶段处理完一个商品后按配置随机等待;下载阶段不等待。
明确禁止「给 CDP 加锁让多协程抢」——那只是把串行伪装成并行,更难排查。
全局停止门(AGENTS.md 红线)
不自动重试、不自动重新登录;通过事件通知前端提示重新登录
记入该商品
last_error并继续,不中断整批断点:不另建断点文件
商品的
download_status本身就是断点:download_status == donevideo_status == none(已确认无同款视频,再搜多半仍无,浪费时间与风控额度)
中断后重新点「下载视频」自然从未完成处继续。这样断点是免费的,
不会出现断点文件与数据库不一致的问题。
硬性验收项
前三个工单连续出现用
window.go.main.App绕过 Wails 生成绑定的写法(#8 一处、#10 三处、#13 三处),每次都由审核者重新生成绑定并改回。
本工单已将「前端不得出现绕过绑定的写法」列为硬性验收项,需要新绑定
应在报告中列出方法名,由审核者生成。
做什么 / 不做什么
internal/task队列与状态机、进度事件、停止、任务条界面不复制
FetchVideosForProduct,必须抽出复用;不做上传(R5 仍被 Q1/Q2 阻塞)验收标准
验证方式
真机验证:负责人勾选若干商品运行批量任务,并测试中途停止与登录失效。