[ { "level": "warning", "role": "Mage", "location": "app/tags.js:52", "problem": "cleanupOrphanTags 分兩次 API 呼叫取得 releases 與 tags,過濾過程未保證原子性;期間 Gitea 狀態變更可能誤刪非孤立 tag。", "suggestion": "考量原子性需求,或在刪除前增加確認機制;並明確文件化此風險。", "status": "deferred", "defer_reason": "Gitea API 無交易機制,無法在應用層做到真正原子;已於 cleanupOrphanTags 以註解明確文件化此 TOCTOU 殘餘競態,並於流程開頭重新抓取最新 release 作為主要緩解。此屬排程清理任務可接受的殘餘風險(下次執行會自我修正),完整原子性需 Gitea 端支援,保留待人工評估。" } ]