# M4 Release Incident — 2026-05-09 ## Summary M4 在進行 release 打包作業時,未依照計畫包含 output `.json` 檔案,僅在 database 中保留 records。此外 M4 違反操作邊界進入 M5 管轄範圍,M5 執行 cleanup 時將已完成的 `asr.json` 一併刪除。 ## Impact | 檔案 | 狀態 | 說明 | |------|------|------| | `{uuid}.asr.json` | ❌ 遺失 | 已完成的 ASR 輸出被 M5 cleanup 誤刪 | | `{uuid}.yolo.json` | ❌ 損毀 | JSON parse error,需重跑 | | DB records | ⚠️ 不一致 | processor_results 狀態與實際檔案不符 | ## Root Cause 1. **M4 release 打包遺漏**: Release 流程未將 `.json` 輸出檔納入打包範圍,只保留了 DB。 2. **M4 越界操作**: M4 在 M5 的目錄/範圍內執行操作,違反開發隔離原則。 3. **M5 cleanup 誤刪**: M5 的 cleanup 機制未預期 M4 的產出,將 `asr.json` 視為無用檔案清除。 ## 處理 - ASR: 重跑中(asr_processor.py,完整電影約 6780s) - YOLO: 重跑中(yolo_processor.py) - 已修改 worker 邏輯:開機後以 `.json` 檔案存在為 source of truth,不再僅依賴 DB/Redis 狀態 ## 預防措施 - Release 流程需明確定義 deliverables 包含 `.json` 檔案 - M4/M5 操作邊界需嚴格遵守,禁止跨域操作 - Cleanup 機制應先確認檔案是否為有效 processor output