[ { "level": "critical", "role": "Maya", "location": "app/", "suggestion": "此次變更將 AI 審查服務從 OpenRouter 切換至 Gemini,涉及不同的 API 端點、請求/回應格式及錯誤處理機制。儘管 `action.yaml` 已配置 Gemini 相關參數,但 Git Diff 中未見針對 Gemini API 整合的單元測試或整合測試。雖然 LLM 整合測試可能不適合傳統的單元測試(因需真實 API key),但這不應排除建立專屬的整合測試。現有測試可能僅涵蓋 `config/findings/git` 的通用邏輯,不足以全面驗證與 Gemini 服務的特定互動,例如請求建構、回應解析、特定錯誤碼處理及邊界條件。強烈建議為 Gemini 整合新增專屬的整合測試,以確保其在實際運作中的穩定性與正確性。", "is_new": true }, { "level": "warning", "role": "Aria", "location": ".gitea/ai-review/findings.json", "suggestion": "檔案最後缺少換行符號,請在檔案結尾加入一個空白換行。", "is_new": false }, { "level": "warning", "role": "Leo", "location": ".gitea/ai-review/findings.json", "suggestion": "`findings.json` 中重新出現關於 `app/config.test.js` 檔案結尾換行符號及匯入語句長度的警告/資訊,但 `exclusions.json` 卻明確指出這些問題已解決或無需修改。這種矛盾會導致審查流程混亂,降低 AI 審查系統的可靠性。建議釐清並統一 AI 審查的設定或排除規則,確保其一致性,避免重複提出已處理或被排除的問題。", "is_new": true }, { "level": "warning", "role": "Maya", "location": "app/comments.js:24", "suggestion": "`saveFindings` 函數在寫入 `findings.json` 時新增了換行符號。請確認現有的測試是否已涵蓋此輸出格式的變更,確保測試能夠精確驗證檔案內容,包括結尾的換行符號。若無,建議更新或新增測試案例以確保此行為被正確驗證。", "is_new": true }, { "level": "info", "role": "Leo", "location": ".gitea/workflows/review.yaml", "suggestion": "工作流程已從 OpenRouter/OpenAI 服務切換至 Google Gemini 服務。不同 AI 服務提供商的 API 響應時間、吞吐量和穩定性可能存在差異。建議在切換後監控 AI Code Review 步驟的執行時間,確保新配置能維持或提升效能,並留意潛在的成本變化,以利長期維護與優化。", "is_new": true } ]