Compare commits

...

4 Commits

3 changed files with 31 additions and 32 deletions
+28
View File
@@ -279,5 +279,33 @@
{
"location": "app/json.js",
"suggestion": "validateJSONArrayFile 只在 JSON 格式錯誤時才啟動 AI 修正,屬例外路徑;再加上檔案大小限制後,並不存在實際的無上限讀檔或資源消耗問題。"
},
{
"location": "app/json.test.js",
"suggestion": "邊界值測試已存在,`MAX_JSON_BYTES` 等於上限時可正常讀取,這不是未解決問題。"
},
{
"location": "app/gitea.test.js:64",
"suggestion": "`describe` 已改為同步 callback`async` 不再出現在這個區塊。"
},
{
"location": "app/git.test.js:13",
"suggestion": "`makeTmpWorkspace` 已直接使用 `app/git.js` 匯出的 `SYNC_PATHS`,不再維護重複清單。"
},
{
"location": "app/gitea.js:32",
"suggestion": "`filterDiff` 內層縮排已符合專案的 2-space 風格,這是誤報。"
},
{
"location": "app/json.test.js:76",
"suggestion": "1MB 上限下的 JSON 讀取不需要改成串流解析;現有實作已先做大小檢查,這個建議屬過度設計。"
},
{
"location": "app/json.test.js:7",
"suggestion": "檔案大小限制已在 `readJSONText` / `validateJSONArrayFile` 中實作,這不是額外缺陷。"
},
{
"location": "app/json.test.js:10",
"suggestion": "`MAX_JSON_BYTES` 是 `json.js` 的內部限制常數,不需要匯出成公開 API。"
}
]
+1 -30
View File
@@ -1,30 +1 @@
[
{
"level": "warning",
"role": "Maya",
"location": "app/json.test.js",
"suggestion": "在 `readJSONText` 相關的測試中,除了測試檔案過大的情況,也建議增加一個測試案例,驗證當檔案大小剛好等於 `MAX_JSON_BYTES` 時,檔案能夠被成功讀取且不會拋出錯誤。這能確保邊界條件的處理是正確的。",
"is_new": false
},
{
"level": "warning",
"role": "Aria",
"location": "app/gitea.test.js:64",
"suggestion": "`describe` 區塊的回呼函數不應使用 `async` 關鍵字。`describe` 區塊應同步執行,而異步操作應在 `it` 或 `beforeEach` 等鉤子函數中處理。",
"is_new": false
},
{
"level": "warning",
"role": "Leo",
"location": "app/git.test.js:13",
"suggestion": "在 `makeTmpWorkspace` 函式中,`files` 陣列的內容與 `app/git.js` 中的 `SYNC_PATHS` 常數高度重複。為了避免未來修改 `SYNC_PATHS` 時遺漏更新測試檔案,建議將 `SYNC_PATHS` 從 `app/git.js` 匯出,並在測試中直接引用,以確保兩者保持同步。",
"is_new": true
},
{
"level": "warning",
"role": "Aria",
"location": "app/gitea.js:32",
"suggestion": "在 `filterDiff` 函數中,`excludePrefixes.some` 回呼函數內的程式碼區塊(`const prefix`, `const singleFile`, `return` 語句)的縮排不正確。請將這些行相對於 `p => {` 縮排 2 個空格,以符合專案的 2-space 縮排規範。",
"is_new": true
}
]
[]
+2 -2
View File
@@ -12,16 +12,16 @@ const api = (path) => `${GITEA_SERVER_URL.replace(/\/$/, '')}/api/v1${path}`;
export async function getPRDiff() {
const resp = await axios.get(api(`/repos/${GITEA_REPOSITORY}/pulls/${PR_NUMBER}.diff`), { headers: headers(), timeout: 60000, httpsAgent });
return filterDiff(resp.data, [
'.gitea/',
'.amazonq/',
'.claude/',
'.codex/',
'.gemini/',
'.gitea/',
'.github/',
'CLAUDE.md',
'GEMINI.md',
'TODO.md',
'README.md',
'TODO.md',
]);
}