本卡屬 FR-107(母卡 CM-1843),第 .4 棒:歸檔進任務。這是子需求卡,實際工作在底下的子任務卡。
這一棒是整案最關鍵的一步:讓分類結果真的變成系統裡的證據。前作 FR-030 分類完只是把檔複製到 Google Drive 的另一個資料夾,系統的任務證據表一筆都沒寫,稽核員在系統上什麼都看不到。
改成:審閱確認後按「歸檔進任務」,系統把每一份檔對到的每一個檢查點,各寫一筆任務證據紀錄(job_evidences,來源標 AI_CLASSIFIED)。不複製實體檔——同一筆檔案紀錄改綁任務而已,一檔對到三個檢查點就是三筆證據紀錄指向同一個實體檔。
冪等(同樣的操作做兩次結果一樣):連按兩次歸檔不會產生重複證據,靠資料庫的 partial UNIQUE 索引保證。
沒對到任何任務的檔留在批次裡標「無對應任務」;歸檔完系統問「剩下這 Z 份檔要清掉嗎」,選清掉就實刪實體檔,但批次檔表留一筆紀錄(檔名/雜湊/AI 判定結果都在)。
歸檔是「檔案從暫存區進入正式證據」的唯一入口,演算法(一檔多檢查點怎麼展開、沒對到任務怎麼辦、重按怎麼擋)與冪等索引必須一起做,拆開會留下會產生重複證據的半成品。
job_evidences 新來源值 + classification_run_id + 冪等索引 + 宿主掛證據 adapter歸檔後到「我的任務」證據頁看得到那份檔;DEV 查 job_evidences 有 source='AI_CLASSIFIED' 的列、upload_files 沒多出實體副本;同一批連按兩次歸檔不會產生重複證據;清掉剩餘檔後儲存後端上實體檔不見、批次檔表那列標 removed。
前置:FR-107.3 完成。下游:.6 的 e2e 全鏈要走到這裡。
docs/features/FR-107-2609-evidence-classification-v2/design.md(HTML 版 design.html)discussion.md~/Projects/Jedicogy/module/jedi-python-package/jedi-evidence-classification/、.../jedi-file-upload/