修正 Codex Action 重複輸出最後回答 #3

Merged
jiantw83 merged 5 commits from ai-review-resolve/20260624102518 into develop 2026-06-24 14:30:13 +00:00
Showing only changes of commit 9f7a2e97c3 - Show all commits
+6 -15
View File
@@ -2,24 +2,15 @@
{
"level": "warning",
"role": "Bard",
"location": "app/main.js:245",
"problem": "`runCodex` 函式中,對 `lastMessageFile` 的讀取缺乏明確的錯誤處理策略,直接將錯誤靜默處理並初始化為空字串,可能掩蓋真正的檔案系統問題,且導致邏輯錯誤。",
"suggestion": "建議在 `catch` 區塊中至少加入簡單的日誌記錄(如 `console.error`),並明確區分錯誤類型(如檔案不存在 vs 權限問題),給予清晰的回饋。"
},
{
"level": "info",
"role": "Rogue",
"location": "app/main.js:200",
"problem": "每次執行 runCodex 都在建立新的 temp 目錄與追蹤檔案,這種重複性的檔案系統配置開銷對於高頻率呼叫來說是完全浪費的資源。",
"suggestion": "如果執行環境是持續存在的,應快取 tempDir 路徑或使用預設的共享路徑,避免頻繁的檔案系統建立與追蹤開銷。",
"is_new": true
"location": "app/main.js:241",
"problem": "`runCodex` 中 `resultOutput` 的計算邏輯過於緊湊且不易維護,且直接進行檔案同步讀取,若檔案過大可能阻塞 Node.js 事件循環。",
"suggestion": "建議拆解複雜的邏輯為獨立的輔助函數,並改用非同步的檔案讀取方式。"
},
{
"level": "info",
"role": "Bard",
"location": "app/main.js:248",
"problem": "在 `resolve` 函式的回傳值邏輯中使用了 `lastMessage || output.toString()`,這種基於真值判斷(truthiness)的邏輯若 `lastMessage` 為空字串但 `output` 亦為空,會導致語意不明,且與前面處理錯誤的情境交織,增加閱讀複雜度。",
"suggestion": "建議明確區分 `lastMessage` 的來源,若確定檔案應存在,請使用更明確的判斷方式(如檢查檔案是否存在或長度),提升程式碼的可預測性。",
"is_new": true
"location": "app/main.js:321",
"problem": "確保字串結尾換行的樣板程式碼邏輯重複出現。",
"suggestion": "建立 `ensureNewline` 共用工具函式。"
}
]