DEV-PROJECT-INFO-BILI-DYNAMIC-COLLECTOR-MVP-20260804-00111917/16C14FB2751A0EAB63F76371E75D0569FF8EF5B47FDD8724BE861314B6062733 + V002 6342/DA3B3DDAA3C8B8EE33E2C0B6857B962754D740EB4BEE075E3BFB0F0FD4382736F1_R1_ACTIVE_MOVE_ALLOWLIST_REGRESSIONV002 中“或没有移动终态”“无终态”两处表述废止,禁止作为实施依据。
读取每个实体最新有效 manifest 事件后,只允许按以下顺序分类:
VIDEO_MOVED 或 COMPLETE:TERMINAL_MOVED,按 V002 投影为 ALREADY_MOVED、exit 0。VIDEO_MOVED_SOURCE_RETAINED:TERMINAL_RETAINED,按 V002 投影为同名状态、exit 4。TODO_QUEUED 或 MOVE_FAILED:ACTIVE_MOVE,允许进入阶段 B 的源/目标安全预检。PROCESSING_HANDOFF_CONFIRMED、PROCESSING、PROCESSING_FAILED,事件缺少/空白 status,或任何未知状态:在阶段 A 返回 E_STATUS、SAFETY_STOP、exit 3。第 4 类禁止进入阶段 B,禁止 stat/resolve 源文件,禁止复制、创建目标、删除源文件或追加 manifest;正式业务文件和 manifest 原始 bytes 必须不变。该安全停止不改变 V001 的任何状态、exit code 或产品边界。
| 最新状态 | 分类 | 是否进入阶段 B | 输出/exit | manifest 变化 |
|---|---|---|---|---|
VIDEO_MOVED / COMPLETE |
TERMINAL_MOVED |
否 | ALREADY_MOVED / 0 |
无 |
VIDEO_MOVED_SOURCE_RETAINED |
TERMINAL_RETAINED |
否 | VIDEO_MOVED_SOURCE_RETAINED / 4 |
无 |
TODO_QUEUED / MOVE_FAILED |
ACTIVE_MOVE |
是 | 按冻结事务合同 | 仅运行时事务可追加 |
PROCESSING_HANDOFF_CONFIRMED / PROCESSING / PROCESSING_FAILED |
禁止状态 | 否 | E_STATUS + SAFETY_STOP / 3 |
无 |
缺失、空白或未知 status |
禁止状态 | 否 | E_STATUS + SAFETY_STOP / 3 |
无 |
测试通过 CLI/main() 入口参数化覆盖:
PROCESSING_HANDOFF_CONFIRMEDPROCESSINGPROCESSING_FAILEDstatusstatus=""status="UNKNOWN_STATE"每个 case 均在 TemporaryDirectory 中准备净化 manifest、合法 mapping 和一个哨兵源文件;调用前记录 manifest 原始 bytes、源文件 bytes、业务目录树和所有文件哈希。调用后统一断言:exit 3、stdout 中 status=SAFETY_STOP 且 error.code=E_STATUS;manifest 原始 bytes、源文件、正式目标集合和所有业务文件均完全不变;无 .partial、锁残留或新增事件。
V001+V002+V003 为唯一组合实施合同。V003 限定复审 PASS 前,代码、配置、测试和 fixture 继续冻结。PASS 后只实施前序 HOLD/5 五项,不增加网络、浏览器、下载、调度、自动发送或正式数据能力。