From 58fdbdd96572752c17f53b4a5596d1e478011eea Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 12 May 2026 05:37:07 +0000 Subject: [PATCH 01/19] fix: enhance exclusions.json suggestions for clarity; remove unnecessary lines in action.yaml --- .gitea/ai-review/exclusions.json | 15 +++++++++++++++ .gitea/ai-review/findings.json | 2 +- action.yaml | 2 -- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.gitea/ai-review/exclusions.json b/.gitea/ai-review/exclusions.json index 67fdaaa..7ed4cb0 100644 --- a/.gitea/ai-review/exclusions.json +++ b/.gitea/ai-review/exclusions.json @@ -24,5 +24,20 @@ { "location": "app/findings.js", "suggestion": "filterFalsePositivesWithAI 拋出的 Error 會被 catch 攔截並降級回傳原始 findings,不會中斷流程" + }, + { + "role": "Rex", + "location": ".gitea/workflows/review.yaml", + "suggestion": "contents: write、pull-requests: write、issues: write 為此 Action 正常運作所必要的權限,無法縮減" + }, + { + "role": "Rex", + "location": ".gitea/workflows/review.yaml", + "suggestion": "OPENAI_API_KEY 參數傳入的是 OPENROUTER_API_KEY secret,為 OpenRouter 使用 OpenAI 相容介面的正確做法" + }, + { + "role": "Aria", + "location": "README.md", + "suggestion": "章節編號連續且正確,無需調整" } ] diff --git a/.gitea/ai-review/findings.json b/.gitea/ai-review/findings.json index 749743a..2f08d59 100644 --- a/.gitea/ai-review/findings.json +++ b/.gitea/ai-review/findings.json @@ -125,4 +125,4 @@ "suggestion": "在 `OPENAI_API_KEY` 後的註解前保留一個空格,以符合常見的 YAML 註解風格:`... ${{ secrets.OPENROUTER_API_KEY }} # OpenRouter 使用 OpenAI 相容介面,以 OPENAI_API_KEY 傳入`。", "is_new": false } -] \ No newline at end of file +] diff --git a/action.yaml b/action.yaml index 52ed03a..a1b6c68 100644 --- a/action.yaml +++ b/action.yaml @@ -72,8 +72,6 @@ inputs: description: 'Amazon Q Base URL' required: false - - runs: using: 'docker' image: 'Dockerfile' From 8046708f00acc610379248a170ddf87d822e2c1b Mon Sep 17 00:00:00 2001 From: AI Review Bot Date: Tue, 12 May 2026 05:37:32 +0000 Subject: [PATCH 02/19] chore: update ai-review findings [skip ci] --- .gitea/ai-review/findings.json | 51 +--------------------------------- 1 file changed, 1 insertion(+), 50 deletions(-) diff --git a/.gitea/ai-review/findings.json b/.gitea/ai-review/findings.json index 2f08d59..aebeda8 100644 --- a/.gitea/ai-review/findings.json +++ b/.gitea/ai-review/findings.json @@ -1,18 +1,4 @@ [ - { - "level": "warning", - "role": "Rex", - "location": ".gitea/workflows/review.yaml:33", - "suggestion": "工作流程目前授予 contents、pull‑requests、issues 三項 write 權限,過於寬鬆。建議依實際需求僅授予 read 或最小必要的 write 權限,以降低被濫用的風險。", - "is_new": false - }, - { - "level": "warning", - "role": "Rex", - "location": ".gitea/workflows/review.yaml:35", - "suggestion": "將 OPENAI_API_KEY 參數改為使用正確的 secret 名稱(如 OPENROUTER_API_KEY)時,請確保工作流程文件中不會同時暴露兩個不同的 secret 名稱,以免因名稱錯誤導致金鑰未傳入或意外洩漏。", - "is_new": false - }, { "level": "warning", "role": "Aria", @@ -20,27 +6,6 @@ "suggestion": "在 `OPENAI_API_KEY` 後的註解前應保留一個空格,以符合常見的 YAML 註解風格:`... ${{ secrets.OPENROUTER_API_KEY }} # OpenRouter 使用 OpenAI 相容介面,以 OPENAI_API_KEY 傳入`。", "is_new": false }, - { - "level": "warning", - "role": "Aria", - "location": "README.md", - "suggestion": "文件中章節編號不連續(例如 `### 2. OpenRouter` 後直接跳到 `### 3. Anthropic Claude`),建議重新編號或使用一致的標題層級,以提升可讀性與維護性。", - "is_new": false - }, - { - "level": "warning", - "role": "Rex", - "location": ".gitea/workflows/review.yaml:33-35", - "suggestion": "工作流程目前授予 contents、pull‑requests、issues 三項 write 權限過於寬鬆。建議依實際需求僅授予 read 或最小必要的 write 權限,降低被濫用的風險。", - "is_new": false - }, - { - "level": "warning", - "role": "Rex", - "location": ".gitea/workflows/review.yaml:33", - "suggestion": "將 OPENAI_API_KEY 參數改為使用正確的 secret 名稱(如 OPENROUTER_API_KEY)時,請確保工作流程檔案中不會同時暴露兩個不同的 secret 名稱,以免因名稱錯誤導致金鑰未傳入或意外洩漏。", - "is_new": false - }, { "level": "warning", "role": "Aria", @@ -55,20 +20,6 @@ "suggestion": "檔案最後缺少換行符號,請在檔案結尾加入空白換行。", "is_new": false }, - { - "level": "warning", - "role": "Aria", - "location": "README.md:28", - "suggestion": "文件中章節編號不連續(例如 `### 2. OpenRouter` 後直接跳到 `### 3. Anthropic Claude`),請重新編號或使用自動編號方式,保持編號連續。", - "is_new": false - }, - { - "level": "warning", - "role": "Aria", - "location": "README.md:42", - "suggestion": "標題層級使用不一致,部分章節使用 `### 1.`、`### 2.`,而後面的章節直接跳到 `### 3.`,建議統一使用相同層級的 Markdown 標題,並在每個標題後留一個空行以提升可讀性。", - "is_new": false - }, { "level": "warning", "role": "Aria", @@ -125,4 +76,4 @@ "suggestion": "在 `OPENAI_API_KEY` 後的註解前保留一個空格,以符合常見的 YAML 註解風格:`... ${{ secrets.OPENROUTER_API_KEY }} # OpenRouter 使用 OpenAI 相容介面,以 OPENAI_API_KEY 傳入`。", "is_new": false } -] +] \ No newline at end of file From 6921ca05ec68d2cd330fc050ca5e52292a39194f Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 12 May 2026 05:47:09 +0000 Subject: [PATCH 03/19] fix: update AI Code Review step to use GEMINI API instead of OpenRouter --- .gitea/workflows/review.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/review.yaml b/.gitea/workflows/review.yaml index 932f11f..b2ca93a 100644 --- a/.gitea/workflows/review.yaml +++ b/.gitea/workflows/review.yaml @@ -33,9 +33,9 @@ jobs: - name: AI Code Review uses: https://gitea.jsc.idv.tw/jiantw83/code-review@v${{ needs.version.outputs.version }} with: - OPENAI_API_KEY: ${{ secrets.OPENROUTER_API_KEY }} # OpenRouter 使用 OpenAI 相容介面,以 OPENAI_API_KEY 傳入 - OPENAI_BASE_URL: https://openrouter.ai/api/v1 - OPENAI_MODEL: ${{ vars.OPENROUTER_MODEL }} + GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY_1 }} + GEMINI_BASE_URL: https://generativelanguage.googleapis.com/v1beta + GEMINI_MODEL: ${{ vars.GEMINI_MODEL }} permissions: contents: write pull-requests: write From e88e586ac6072625d2a53416bd8504479380c8ec Mon Sep 17 00:00:00 2001 From: AI Review Bot Date: Tue, 12 May 2026 05:48:20 +0000 Subject: [PATCH 04/19] chore: update ai-review findings [skip ci] --- .gitea/ai-review/findings.json | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/.gitea/ai-review/findings.json b/.gitea/ai-review/findings.json index aebeda8..56387ce 100644 --- a/.gitea/ai-review/findings.json +++ b/.gitea/ai-review/findings.json @@ -1,4 +1,11 @@ [ + { + "level": "critical", + "role": "Maya", + "location": ".gitea/workflows/review.yaml:35-37 與 action.yaml", + "suggestion": "在 `review.yaml` 工作流程中,您嘗試傳遞 `GEMINI_API_KEY`、`GEMINI_BASE_URL` 和 `GEMINI_MODEL` 參數。然而,根據 `action.yaml` 的定義,此 Action 預期接收的是 `GOOGLE_API_KEY`、`GOOGLE_BASE_URL` 和 `GOOGLE_MODEL`。這導致參數名稱不匹配,Action 將無法正確取得 Gemini 的設定,進而導致功能失效。請修正 `review.yaml`,將參數名稱改為 `GOOGLE_API_KEY`、`GOOGLE_BASE_URL` 和 `GOOGLE_MODEL`,以符合 `action.yaml` 中已定義的 Google 相關輸入。", + "is_new": true + }, { "level": "warning", "role": "Aria", @@ -27,6 +34,20 @@ "suggestion": "大量移除的輸入欄位留下多行空白與註解,請整理檔案結構,移除不必要的空行與註解,保持檔案整潔。", "is_new": false }, + { + "level": "warning", + "role": "Aria", + "location": ".gitea/workflows/review.yaml:36", + "suggestion": "`secrets.GEMINI_API_KEY_1` 的命名方式建議審視。如果這是唯一的 Gemini API 金鑰,可考慮簡化為 `GEMINI_API_KEY`。若有多個金鑰,建議使用更具描述性的後綴(例如 `GEMINI_API_KEY_PRIMARY` 或 `GEMINI_API_KEY_SERVICE_A`),以提升命名清晰度與一致性。", + "is_new": true + }, + { + "level": "warning", + "role": "Maya", + "location": "app/", + "suggestion": "此次變更將 AI 審查服務從 OpenRouter 切換至 Gemini。儘管 `action.yaml` 中已存在 `GOOGLE_*` 相關的輸入,但此 Git Diff 並未包含任何針對 Gemini API 整合的單元測試或整合測試。請確認現有的測試是否足以涵蓋 Gemini API 的特定行為、回應格式以及錯誤處理。若無,建議為 Gemini 整合新增專屬的整合測試,以確保其在實際運作中的穩定性與正確性,特別是針對 `https://generativelanguage.googleapis.com/v1beta` 這個 Base URL 和所選的 `GEMINI_MODEL`。", + "is_new": true + }, { "level": "info", "role": "Aria", @@ -75,5 +96,12 @@ "location": ".gitea/workflows/review.yaml:33", "suggestion": "在 `OPENAI_API_KEY` 後的註解前保留一個空格,以符合常見的 YAML 註解風格:`... ${{ secrets.OPENROUTER_API_KEY }} # OpenRouter 使用 OpenAI 相容介面,以 OPENAI_API_KEY 傳入`。", "is_new": false + }, + { + "level": "info", + "role": "Zara", + "location": ".gitea/workflows/review.yaml:35-37", + "suggestion": "工作流程從 OpenRouter/OpenAI 服務切換至 Google Gemini 服務。雖然這本身不是程式碼錯誤,但不同 AI 服務提供商的 API 響應時間、吞吐量和穩定性可能存在差異。建議監控切換後 AI Code Review 步驟的執行時間,確保新配置能維持或提升效能,並留意潛在的成本變化。", + "is_new": true } ] \ No newline at end of file From bf7b8f843bc0472fb1f9c2cf37267d9bbc957b79 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 12 May 2026 05:50:46 +0000 Subject: [PATCH 05/19] fix: add suggestion for GEMINI API parameter consistency in review.yaml --- .gitea/ai-review/exclusions.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitea/ai-review/exclusions.json b/.gitea/ai-review/exclusions.json index 7ed4cb0..001034e 100644 --- a/.gitea/ai-review/exclusions.json +++ b/.gitea/ai-review/exclusions.json @@ -40,4 +40,9 @@ "location": "README.md", "suggestion": "章節編號連續且正確,無需調整" } + { + "role": "Maya", + "location": ".gitea/workflows/review.yaml", + "suggestion": "action.yaml 定義的參數名稱為 GEMINI_API_KEY、GEMINI_BASE_URL、GEMINI_MODEL,與 review.yaml 完全一致,無不匹配問題" + } ] From 95802c422becfc8cbab665a2c832961904a16daf Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 12 May 2026 05:54:25 +0000 Subject: [PATCH 06/19] fix: update suggestions in exclusions.json and findings.json for clarity and consistency with GEMINI API --- .gitea/ai-review/exclusions.json | 17 ++++++++++++++++- .gitea/ai-review/findings.json | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/.gitea/ai-review/exclusions.json b/.gitea/ai-review/exclusions.json index 001034e..6d63dac 100644 --- a/.gitea/ai-review/exclusions.json +++ b/.gitea/ai-review/exclusions.json @@ -39,10 +39,25 @@ "role": "Aria", "location": "README.md", "suggestion": "章節編號連續且正確,無需調整" - } + }, { "role": "Maya", "location": ".gitea/workflows/review.yaml", "suggestion": "action.yaml 定義的參數名稱為 GEMINI_API_KEY、GEMINI_BASE_URL、GEMINI_MODEL,與 review.yaml 完全一致,無不匹配問題" + }, + { + "role": "Aria", + "location": ".gitea/workflows/review.yaml", + "suggestion": "review.yaml 已改用 Gemini,不再有 OPENAI_API_KEY 行,註解空格問題不存在" + }, + { + "role": "Aria", + "location": "app/config.test.js", + "suggestion": "檔案結尾已有換行符號,import 行長度合理,無需修改" + }, + { + "role": "Aria", + "location": "action.yaml", + "suggestion": "action.yaml 已整理,多餘空行已移除,結構整潔" } ] diff --git a/.gitea/ai-review/findings.json b/.gitea/ai-review/findings.json index 56387ce..cdcc7e9 100644 --- a/.gitea/ai-review/findings.json +++ b/.gitea/ai-review/findings.json @@ -104,4 +104,4 @@ "suggestion": "工作流程從 OpenRouter/OpenAI 服務切換至 Google Gemini 服務。雖然這本身不是程式碼錯誤,但不同 AI 服務提供商的 API 響應時間、吞吐量和穩定性可能存在差異。建議監控切換後 AI Code Review 步驟的執行時間,確保新配置能維持或提升效能,並留意潛在的成本變化。", "is_new": true } -] \ No newline at end of file +] From e541cee83f59f6917c84a7d7090a72fcca9d8931 Mon Sep 17 00:00:00 2001 From: AI Review Bot Date: Tue, 12 May 2026 05:54:43 +0000 Subject: [PATCH 07/19] chore: update ai-review findings [skip ci] --- .gitea/ai-review/findings.json | 74 +--------------------------------- 1 file changed, 2 insertions(+), 72 deletions(-) diff --git a/.gitea/ai-review/findings.json b/.gitea/ai-review/findings.json index cdcc7e9..4bf1a22 100644 --- a/.gitea/ai-review/findings.json +++ b/.gitea/ai-review/findings.json @@ -1,18 +1,4 @@ [ - { - "level": "critical", - "role": "Maya", - "location": ".gitea/workflows/review.yaml:35-37 與 action.yaml", - "suggestion": "在 `review.yaml` 工作流程中,您嘗試傳遞 `GEMINI_API_KEY`、`GEMINI_BASE_URL` 和 `GEMINI_MODEL` 參數。然而,根據 `action.yaml` 的定義,此 Action 預期接收的是 `GOOGLE_API_KEY`、`GOOGLE_BASE_URL` 和 `GOOGLE_MODEL`。這導致參數名稱不匹配,Action 將無法正確取得 Gemini 的設定,進而導致功能失效。請修正 `review.yaml`,將參數名稱改為 `GOOGLE_API_KEY`、`GOOGLE_BASE_URL` 和 `GOOGLE_MODEL`,以符合 `action.yaml` 中已定義的 Google 相關輸入。", - "is_new": true - }, - { - "level": "warning", - "role": "Aria", - "location": ".gitea/workflows/review.yaml:33", - "suggestion": "在 `OPENAI_API_KEY` 後的註解前應保留一個空格,以符合常見的 YAML 註解風格:`... ${{ secrets.OPENROUTER_API_KEY }} # OpenRouter 使用 OpenAI 相容介面,以 OPENAI_API_KEY 傳入`。", - "is_new": false - }, { "level": "warning", "role": "Aria", @@ -20,46 +6,11 @@ "suggestion": "檔案最後缺少換行符號,請在檔案結尾加入一個空白換行。", "is_new": false }, - { - "level": "warning", - "role": "Aria", - "location": "app/config.test.js", - "suggestion": "檔案最後缺少換行符號,請在檔案結尾加入空白換行。", - "is_new": false - }, - { - "level": "warning", - "role": "Aria", - "location": "action.yaml:72-99", - "suggestion": "大量移除的輸入欄位留下多行空白與註解,請整理檔案結構,移除不必要的空行與註解,保持檔案整潔。", - "is_new": false - }, - { - "level": "warning", - "role": "Aria", - "location": ".gitea/workflows/review.yaml:36", - "suggestion": "`secrets.GEMINI_API_KEY_1` 的命名方式建議審視。如果這是唯一的 Gemini API 金鑰,可考慮簡化為 `GEMINI_API_KEY`。若有多個金鑰,建議使用更具描述性的後綴(例如 `GEMINI_API_KEY_PRIMARY` 或 `GEMINI_API_KEY_SERVICE_A`),以提升命名清晰度與一致性。", - "is_new": true - }, { "level": "warning", "role": "Maya", "location": "app/", "suggestion": "此次變更將 AI 審查服務從 OpenRouter 切換至 Gemini。儘管 `action.yaml` 中已存在 `GOOGLE_*` 相關的輸入,但此 Git Diff 並未包含任何針對 Gemini API 整合的單元測試或整合測試。請確認現有的測試是否足以涵蓋 Gemini API 的特定行為、回應格式以及錯誤處理。若無,建議為 Gemini 整合新增專屬的整合測試,以確保其在實際運作中的穩定性與正確性,特別是針對 `https://generativelanguage.googleapis.com/v1beta` 這個 Base URL 和所選的 `GEMINI_MODEL`。", - "is_new": true - }, - { - "level": "info", - "role": "Aria", - "location": "app/config.test.js", - "suggestion": "匯入語句過長,建議改寫為多行匯入,例如:\n```js\nimport {\n describe,\n it,\n beforeEach,\n afterEach\n} from 'node:test';\n```", - "is_new": false - }, - { - "level": "info", - "role": "Aria", - "location": "app/config.test.js", - "suggestion": "`ENV_KEYS` 陣列過長,建議分行列舉,每行放置一個環境變數,以提升可讀性。", "is_new": false }, { @@ -76,32 +27,11 @@ "suggestion": "`ENV_KEYS` 陣列過長,建議分行列舉,每行放置一個環境變數,以提升可讀性與維護性。", "is_new": false }, - { - "level": "info", - "role": "Aria", - "location": "app/config.test.js:1", - "suggestion": "匯入語句過長,建議改寫為多行匯入,例如:\n```js\nimport {\n describe,\n it,\n beforeEach,\n afterEach\n} from 'node:test';\n```", - "is_new": false - }, - { - "level": "info", - "role": "Aria", - "location": "app/config.test.js:7", - "suggestion": "`ENV_KEYS` 陣列過長,建議每行放置一個環境變數,分行列舉以提升可讀性。", - "is_new": false - }, - { - "level": "info", - "role": "Aria", - "location": ".gitea/workflows/review.yaml:33", - "suggestion": "在 `OPENAI_API_KEY` 後的註解前保留一個空格,以符合常見的 YAML 註解風格:`... ${{ secrets.OPENROUTER_API_KEY }} # OpenRouter 使用 OpenAI 相容介面,以 OPENAI_API_KEY 傳入`。", - "is_new": false - }, { "level": "info", "role": "Zara", "location": ".gitea/workflows/review.yaml:35-37", "suggestion": "工作流程從 OpenRouter/OpenAI 服務切換至 Google Gemini 服務。雖然這本身不是程式碼錯誤,但不同 AI 服務提供商的 API 響應時間、吞吐量和穩定性可能存在差異。建議監控切換後 AI Code Review 步驟的執行時間,確保新配置能維持或提升效能,並留意潛在的成本變化。", - "is_new": true + "is_new": false } -] +] \ No newline at end of file From 4bace91d3d9565d5ba73bcc6db842a3ca0d9bbd7 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 12 May 2026 06:03:30 +0000 Subject: [PATCH 08/19] fix: add suggestions for LLM integration tests and code structure improvements in exclusions.json; ensure findings.json is saved with a newline --- .gitea/ai-review/exclusions.json | 10 ++++++++++ app/comments.js | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.gitea/ai-review/exclusions.json b/.gitea/ai-review/exclusions.json index 6d63dac..4d7d1b6 100644 --- a/.gitea/ai-review/exclusions.json +++ b/.gitea/ai-review/exclusions.json @@ -60,4 +60,14 @@ "location": "action.yaml", "suggestion": "action.yaml 已整理,多餘空行已移除,結構整潔" } + { + "role": "Maya", + "location": "app/", + "suggestion": "LLM 整合測試需要真實 API key,不適合加入單元測試,現有測試已涵蓋 config/findings/git 邏輯" + }, + { + "role": "Leo", + "location": "app/config.test.js", + "suggestion": "import 語句長度合理,無需拆分為多行" + } ] diff --git a/app/comments.js b/app/comments.js index 7a349f4..779a177 100644 --- a/app/comments.js +++ b/app/comments.js @@ -21,7 +21,7 @@ function buildTable(findings) { export function saveFindings(workspace, findings) { const fullPath = path.join(workspace, FINDINGS_PATH); fs.mkdirSync(path.dirname(fullPath), { recursive: true }); - fs.writeFileSync(fullPath, JSON.stringify(findings, null, 2), 'utf8'); + fs.writeFileSync(fullPath, JSON.stringify(findings, null, 2) + '\n', 'utf8'); console.log(` ✅ findings 寫入: ${fullPath} (${findings.length} 筆)`); } From 85ff61e98f4e8ac2453cd60bdd10e090fc3e59b9 Mon Sep 17 00:00:00 2001 From: AI Review Bot Date: Tue, 12 May 2026 06:03:48 +0000 Subject: [PATCH 09/19] chore: update ai-review findings [skip ci] --- .gitea/ai-review/findings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/ai-review/findings.json b/.gitea/ai-review/findings.json index 4bf1a22..a218a68 100644 --- a/.gitea/ai-review/findings.json +++ b/.gitea/ai-review/findings.json @@ -34,4 +34,4 @@ "suggestion": "工作流程從 OpenRouter/OpenAI 服務切換至 Google Gemini 服務。雖然這本身不是程式碼錯誤,但不同 AI 服務提供商的 API 響應時間、吞吐量和穩定性可能存在差異。建議監控切換後 AI Code Review 步驟的執行時間,確保新配置能維持或提升效能,並留意潛在的成本變化。", "is_new": false } -] \ No newline at end of file +] From 8d3f5e3a45c456bc5e2ebdb52483346d6367d081 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 12 May 2026 06:06:30 +0000 Subject: [PATCH 10/19] fix: update GEMINI_API_KEY in review.yaml to use the correct secret --- .gitea/workflows/review.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/review.yaml b/.gitea/workflows/review.yaml index b2ca93a..10a3e97 100644 --- a/.gitea/workflows/review.yaml +++ b/.gitea/workflows/review.yaml @@ -33,7 +33,7 @@ jobs: - name: AI Code Review uses: https://gitea.jsc.idv.tw/jiantw83/code-review@v${{ needs.version.outputs.version }} with: - GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY_1 }} + GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY_2 }} GEMINI_BASE_URL: https://generativelanguage.googleapis.com/v1beta GEMINI_MODEL: ${{ vars.GEMINI_MODEL }} permissions: From 16cb1966f0d5e53beef0bd767f6bdcdc86f47c53 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 12 May 2026 06:11:12 +0000 Subject: [PATCH 11/19] fix: update GEMINI_API_KEY in review.yaml to use the correct secret --- .gitea/workflows/review.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/review.yaml b/.gitea/workflows/review.yaml index 10a3e97..b2ca93a 100644 --- a/.gitea/workflows/review.yaml +++ b/.gitea/workflows/review.yaml @@ -33,7 +33,7 @@ jobs: - name: AI Code Review uses: https://gitea.jsc.idv.tw/jiantw83/code-review@v${{ needs.version.outputs.version }} with: - GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY_2 }} + GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY_1 }} GEMINI_BASE_URL: https://generativelanguage.googleapis.com/v1beta GEMINI_MODEL: ${{ vars.GEMINI_MODEL }} permissions: From b164fe855e7ee4c4d1577cbb35d261940f09e9a1 Mon Sep 17 00:00:00 2001 From: AI Review Bot Date: Tue, 12 May 2026 06:15:35 +0000 Subject: [PATCH 12/19] chore: update ai-review findings [skip ci] --- .gitea/ai-review/findings.json | 40 +++++++++++++++++----------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.gitea/ai-review/findings.json b/.gitea/ai-review/findings.json index a218a68..4c13c3d 100644 --- a/.gitea/ai-review/findings.json +++ b/.gitea/ai-review/findings.json @@ -1,4 +1,11 @@ [ + { + "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", @@ -6,32 +13,25 @@ "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/", - "suggestion": "此次變更將 AI 審查服務從 OpenRouter 切換至 Gemini。儘管 `action.yaml` 中已存在 `GOOGLE_*` 相關的輸入,但此 Git Diff 並未包含任何針對 Gemini API 整合的單元測試或整合測試。請確認現有的測試是否足以涵蓋 Gemini API 的特定行為、回應格式以及錯誤處理。若無,建議為 Gemini 整合新增專屬的整合測試,以確保其在實際運作中的穩定性與正確性,特別是針對 `https://generativelanguage.googleapis.com/v1beta` 這個 Base URL 和所選的 `GEMINI_MODEL`。", - "is_new": false + "location": "app/comments.js:24", + "suggestion": "`saveFindings` 函數在寫入 `findings.json` 時新增了換行符號。請確認現有的測試是否已涵蓋此輸出格式的變更,確保測試能夠精確驗證檔案內容,包括結尾的換行符號。若無,建議更新或新增測試案例以確保此行為被正確驗證。", + "is_new": true }, { "level": "info", "role": "Leo", - "location": "app/config.test.js:1", - "suggestion": "匯入語句過長,建議改寫為多行匯入,以提升可讀性,例如:\n```js\nimport {\n describe,\n it,\n beforeEach,\n afterEach\n} from 'node:test';\n```", - "is_new": false - }, - { - "level": "info", - "role": "Leo", - "location": "app/config.test.js:9", - "suggestion": "`ENV_KEYS` 陣列過長,建議分行列舉,每行放置一個環境變數,以提升可讀性與維護性。", - "is_new": false - }, - { - "level": "info", - "role": "Zara", - "location": ".gitea/workflows/review.yaml:35-37", - "suggestion": "工作流程從 OpenRouter/OpenAI 服務切換至 Google Gemini 服務。雖然這本身不是程式碼錯誤,但不同 AI 服務提供商的 API 響應時間、吞吐量和穩定性可能存在差異。建議監控切換後 AI Code Review 步驟的執行時間,確保新配置能維持或提升效能,並留意潛在的成本變化。", - "is_new": false + "location": ".gitea/workflows/review.yaml", + "suggestion": "工作流程已從 OpenRouter/OpenAI 服務切換至 Google Gemini 服務。不同 AI 服務提供商的 API 響應時間、吞吐量和穩定性可能存在差異。建議在切換後監控 AI Code Review 步驟的執行時間,確保新配置能維持或提升效能,並留意潛在的成本變化,以利長期維護與優化。", + "is_new": true } ] From 234a8a829f943d9a93b53d63c8bff725970ce059 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 12 May 2026 06:21:24 +0000 Subject: [PATCH 13/19] fix: update suggestion in exclusions.json for LLM integration tests to clarify API key requirements --- .gitea/ai-review/exclusions.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/ai-review/exclusions.json b/.gitea/ai-review/exclusions.json index 4d7d1b6..215acee 100644 --- a/.gitea/ai-review/exclusions.json +++ b/.gitea/ai-review/exclusions.json @@ -63,7 +63,7 @@ { "role": "Maya", "location": "app/", - "suggestion": "LLM 整合測試需要真實 API key,不適合加入單元測試,現有測試已涵蓋 config/findings/git 邏輯" + "suggestion": "LLM 整合測試需要真實 API key 與網路,不適合加入單元測試。llm.js 使用統一 OpenAI 相容介面,Gemini 透過相同介面呼叫,無特殊格式差異,現有測試已涵蓋 config/findings/git 邏輯" }, { "role": "Leo", From 83943b8ddaf0ba52305490c50d22116fb05cfa0d Mon Sep 17 00:00:00 2001 From: AI Review Bot Date: Tue, 12 May 2026 06:24:11 +0000 Subject: [PATCH 14/19] chore: update ai-review findings [skip ci] --- .gitea/ai-review/findings.json | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.gitea/ai-review/findings.json b/.gitea/ai-review/findings.json index 4c13c3d..54d2fb4 100644 --- a/.gitea/ai-review/findings.json +++ b/.gitea/ai-review/findings.json @@ -1,37 +1,37 @@ [ { "level": "critical", - "role": "Maya", + "role": "Rex", "location": "app/", - "suggestion": "此次變更將 AI 審查服務從 OpenRouter 切換至 Gemini,涉及不同的 API 端點、請求/回應格式及錯誤處理機制。儘管 `action.yaml` 已配置 Gemini 相關參數,但 Git Diff 中未見針對 Gemini API 整合的單元測試或整合測試。雖然 LLM 整合測試可能不適合傳統的單元測試(因需真實 API key),但這不應排除建立專屬的整合測試。現有測試可能僅涵蓋 `config/findings/git` 的通用邏輯,不足以全面驗證與 Gemini 服務的特定互動,例如請求建構、回應解析、特定錯誤碼處理及邊界條件。強烈建議為 Gemini 整合新增專屬的整合測試,以確保其在實際運作中的穩定性與正確性。", + "suggestion": "此次變更將 AI 審查服務從 OpenRouter 切換至 Google Gemini,涉及不同的 API 端點、請求/回應格式及錯誤處理機制。儘管 `action.yaml` 已配置 Gemini 相關參數,但 Git Diff 中未見針對 Gemini API 整合的單元測試或整合測試。缺乏專屬測試可能導致:1. 錯誤解析 Gemini 回應,影響安全審查結果的準確性。2. 未能正確消毒 LLM 輸出,引入潛在的注入風險。3. 錯誤處理 API 異常,導致服務中斷或審查流程失敗。強烈建議為 Gemini 整合新增專屬的整合測試,以確保其在實際運作中的穩定性、正確性及安全性。", "is_new": true }, { - "level": "warning", + "level": "critical", "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 審查的設定或排除規則,確保其一致性,避免重複提出已處理或被排除的問題。", + "location": ".gitea/ai-review/exclusions.json:47", + "suggestion": "JSON 陣列中的物件之間缺少逗號。在 `action.yaml` 物件的結束大括號 `}` 後面,以及 `app/` 物件的開始大括號 `{` 前面,應補上逗號 `,` 以符合 JSON 語法。", "is_new": true }, { "level": "warning", - "role": "Maya", + "role": "Rex", + "location": ".gitea/ai-review/findings.json", + "suggestion": "`findings.json` 中重新出現關於 `app/config.test.js` 檔案結尾換行符號及匯入語句長度的警告/資訊,但 `exclusions.json` 卻明確指出這些問題已解決或無需修改。這種矛盾會導致 AI 審查系統的可靠性降低,可能導致開發者對審查結果產生混淆或不信任。建議釐清並統一 AI 審查的設定與排除規則,確保 `findings.json` 和 `exclusions.json` 之間的一致性,避免重複提出已處理或被排除的問題。", + "is_new": true + }, + { + "level": "warning", + "role": "Rex", "location": "app/comments.js:24", - "suggestion": "`saveFindings` 函數在寫入 `findings.json` 時新增了換行符號。請確認現有的測試是否已涵蓋此輸出格式的變更,確保測試能夠精確驗證檔案內容,包括結尾的換行符號。若無,建議更新或新增測試案例以確保此行為被正確驗證。", + "suggestion": "`saveFindings` 函數在寫入 `findings.json` 時新增了換行符號。此輸出格式的變更可能影響依賴此檔案的下游系統(例如解析器、報告工具)。若下游系統未預期此額外換行符號,可能導致解析錯誤、資料處理異常或安全審查結果無法正確呈現。請確認現有的測試是否已涵蓋此輸出格式的變更,並驗證所有依賴此檔案的下游系統都能正確解析,以確保資料完整性及流程穩定性。", "is_new": true }, { "level": "info", - "role": "Leo", + "role": "Rex", "location": ".gitea/workflows/review.yaml", - "suggestion": "工作流程已從 OpenRouter/OpenAI 服務切換至 Google Gemini 服務。不同 AI 服務提供商的 API 響應時間、吞吐量和穩定性可能存在差異。建議在切換後監控 AI Code Review 步驟的執行時間,確保新配置能維持或提升效能,並留意潛在的成本變化,以利長期維護與優化。", + "suggestion": "工作流程已從 OpenRouter/OpenAI 服務切換至 Google Gemini 服務。不同 AI 服務提供商的 API 響應時間、吞吐量和穩定性可能存在差異。建議在切換後監控 AI Code Review 步驟的執行時間、API 穩定性及相關成本,確保新配置能維持或提升效能,並留意潛在的成本變化,以利長期維護與優化,這也是確保服務持續可用性與資源合理利用的重要環節。", "is_new": true } ] From e3596eb710bfeae2f892b4a36f1db416e969a2f9 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 12 May 2026 06:28:34 +0000 Subject: [PATCH 15/19] fix: add duplicate suggestion for LLM integration tests in exclusions.json --- .gitea/ai-review/exclusions.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.gitea/ai-review/exclusions.json b/.gitea/ai-review/exclusions.json index 215acee..bf1909c 100644 --- a/.gitea/ai-review/exclusions.json +++ b/.gitea/ai-review/exclusions.json @@ -59,12 +59,17 @@ "role": "Aria", "location": "action.yaml", "suggestion": "action.yaml 已整理,多餘空行已移除,結構整潔" - } + }, { "role": "Maya", "location": "app/", "suggestion": "LLM 整合測試需要真實 API key 與網路,不適合加入單元測試。llm.js 使用統一 OpenAI 相容介面,Gemini 透過相同介面呼叫,無特殊格式差異,現有測試已涵蓋 config/findings/git 邏輯" }, + { + "role": "Rex", + "location": "app/", + "suggestion": "LLM 整合測試需要真實 API key 與網路,不適合加入單元測試。llm.js 使用統一 OpenAI 相容介面,Gemini 透過相同介面呼叫,無特殊格式差異" + }, { "role": "Leo", "location": "app/config.test.js", From fdcb9f04deb888984d50b22654ecf48486974ad9 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 12 May 2026 06:29:43 +0000 Subject: [PATCH 16/19] fix: update suggestions in exclusions.json to clarify handling of findings and LLM service provider maintenance --- .gitea/ai-review/exclusions.json | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.gitea/ai-review/exclusions.json b/.gitea/ai-review/exclusions.json index bf1909c..6415095 100644 --- a/.gitea/ai-review/exclusions.json +++ b/.gitea/ai-review/exclusions.json @@ -71,8 +71,23 @@ "suggestion": "LLM 整合測試需要真實 API key 與網路,不適合加入單元測試。llm.js 使用統一 OpenAI 相容介面,Gemini 透過相同介面呼叫,無特殊格式差異" }, { - "role": "Leo", + "role": "Rex", "location": "app/config.test.js", "suggestion": "import 語句長度合理,無需拆分為多行" + }, + { + "role": "Rex", + "location": ".gitea/ai-review/findings.json", + "suggestion": "findings.json 重複問題由 AI 去重與排除機制處理,不是程式碼問題" + }, + { + "role": "Rex", + "location": "app/comments.js", + "suggestion": "JSON 結尾換行符號為標準做法,不影響任何 JSON 解析器,無相容性問題" + }, + { + "role": "Rex", + "location": ".gitea/workflows/review.yaml", + "suggestion": "切換 LLM 服務提供商的維護建議屬過度謹慎,不是實際程式碼問題" } ] From e3b4c7f8d4c2dc30801f2de5c51b3bacc093ed09 Mon Sep 17 00:00:00 2001 From: AI Review Bot Date: Tue, 12 May 2026 06:32:21 +0000 Subject: [PATCH 17/19] chore: update ai-review findings [skip ci] --- .gitea/ai-review/findings.json | 39 ++++++++++++++-------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/.gitea/ai-review/findings.json b/.gitea/ai-review/findings.json index 54d2fb4..e978562 100644 --- a/.gitea/ai-review/findings.json +++ b/.gitea/ai-review/findings.json @@ -1,37 +1,30 @@ [ - { - "level": "critical", - "role": "Rex", - "location": "app/", - "suggestion": "此次變更將 AI 審查服務從 OpenRouter 切換至 Google Gemini,涉及不同的 API 端點、請求/回應格式及錯誤處理機制。儘管 `action.yaml` 已配置 Gemini 相關參數,但 Git Diff 中未見針對 Gemini API 整合的單元測試或整合測試。缺乏專屬測試可能導致:1. 錯誤解析 Gemini 回應,影響安全審查結果的準確性。2. 未能正確消毒 LLM 輸出,引入潛在的注入風險。3. 錯誤處理 API 異常,導致服務中斷或審查流程失敗。強烈建議為 Gemini 整合新增專屬的整合測試,以確保其在實際運作中的穩定性、正確性及安全性。", - "is_new": true - }, - { - "level": "critical", - "role": "Aria", - "location": ".gitea/ai-review/exclusions.json:47", - "suggestion": "JSON 陣列中的物件之間缺少逗號。在 `action.yaml` 物件的結束大括號 `}` 後面,以及 `app/` 物件的開始大括號 `{` 前面,應補上逗號 `,` 以符合 JSON 語法。", - "is_new": true - }, { "level": "warning", - "role": "Rex", + "role": "Leo", "location": ".gitea/ai-review/findings.json", - "suggestion": "`findings.json` 中重新出現關於 `app/config.test.js` 檔案結尾換行符號及匯入語句長度的警告/資訊,但 `exclusions.json` 卻明確指出這些問題已解決或無需修改。這種矛盾會導致 AI 審查系統的可靠性降低,可能導致開發者對審查結果產生混淆或不信任。建議釐清並統一 AI 審查的設定與排除規則,確保 `findings.json` 和 `exclusions.json` 之間的一致性,避免重複提出已處理或被排除的問題。", + "suggestion": "`findings.json` 中重新出現關於 `app/config.test.js` 檔案結尾換行符號及匯入語句長度的警告/資訊,但 `exclusions.json` 卻明確指出這些問題已解決或無需修改。這種矛盾會導致 AI 審查系統的可靠性降低,可能導致開發者對審查結果產生混淆或不信任。建議釐清並統一 AI 審查的設定與排除規則,確保 `findings.json` 和 `exclusions.json` 之間的一致性,避免重複提出已處理或被排除的問題,以提升審查系統的長期可維護性。", "is_new": true }, { "level": "warning", - "role": "Rex", - "location": "app/comments.js:24", - "suggestion": "`saveFindings` 函數在寫入 `findings.json` 時新增了換行符號。此輸出格式的變更可能影響依賴此檔案的下游系統(例如解析器、報告工具)。若下游系統未預期此額外換行符號,可能導致解析錯誤、資料處理異常或安全審查結果無法正確呈現。請確認現有的測試是否已涵蓋此輸出格式的變更,並驗證所有依賴此檔案的下游系統都能正確解析,以確保資料完整性及流程穩定性。", + "role": "Zara", + "location": ".gitea/ai-review/findings.json", + "suggestion": "`findings.json` 中重新出現關於 `app/config.test.js` 檔案結尾換行符號及匯入語句長度的警告/資訊,但 `exclusions.json` 卻明確指出這些問題已解決或無需修改。這種矛盾會導致 AI 審查系統的可靠性降低,可能導致開發者對審查結果產生混淆或不信任。建議釐清並統一 AI 審查的設定與排除規則,確保 `findings.json` 和 `exclusions.json` 之間的一致性,避免重複提出已處理或被排除的問題,以提升審查流程的效率與開發者體驗。", "is_new": true }, { - "level": "info", - "role": "Rex", - "location": ".gitea/workflows/review.yaml", - "suggestion": "工作流程已從 OpenRouter/OpenAI 服務切換至 Google Gemini 服務。不同 AI 服務提供商的 API 響應時間、吞吐量和穩定性可能存在差異。建議在切換後監控 AI Code Review 步驟的執行時間、API 穩定性及相關成本,確保新配置能維持或提升效能,並留意潛在的成本變化,以利長期維護與優化,這也是確保服務持續可用性與資源合理利用的重要環節。", + "level": "warning", + "role": "Aria", + "location": ".gitea/ai-review/findings.json", + "suggestion": "在 `.gitea/ai-review/findings.json` 中,關於 `app/config.test.js` 檔案結尾換行符號及匯入語句長度的警告/資訊,與 `.gitea/ai-review/exclusions.json` 中明確的排除規則相矛盾。這種不一致性會降低 AI 審查系統的可靠性與可讀性,並可能導致開發者混淆。建議審查並統一這兩個檔案的內容,確保排除規則被正確應用,避免重複報告已處理或已排除的問題。", + "is_new": true + }, + { + "level": "warning", + "role": "Maya", + "location": ".gitea/ai-review/findings.json", + "suggestion": "`findings.json` 中重新出現關於 `app/config.test.js` 檔案結尾換行符號及匯入語句長度的警告/資訊,但 `exclusions.json` 卻明確指出這些問題已解決或無需修改。這種矛盾會導致 AI 審查系統的可靠性降低,可能導致開發者對審查結果產生混淆或不信任。建議釐清並統一 AI 審查的設定與排除規則,確保 `findings.json` 和 `exclusions.json` 之間的一致性,避免重複提出已處理或被排除的問題,以提升審查品質與開發者體驗。", "is_new": true } ] From 8a8612b46d8f05e9c246523feef5e8585ee7a87e Mon Sep 17 00:00:00 2001 From: Jeffery Date: Tue, 12 May 2026 06:46:51 +0000 Subject: [PATCH 18/19] fix: update findings.json to remove redundant warnings and ensure consistency with exclusions.json --- .gitea/ai-review/exclusions.json | 4 ++++ .gitea/ai-review/findings.json | 28 ---------------------------- 2 files changed, 4 insertions(+), 28 deletions(-) diff --git a/.gitea/ai-review/exclusions.json b/.gitea/ai-review/exclusions.json index 6415095..e081e36 100644 --- a/.gitea/ai-review/exclusions.json +++ b/.gitea/ai-review/exclusions.json @@ -85,6 +85,10 @@ "location": "app/comments.js", "suggestion": "JSON 結尾換行符號為標準做法,不影響任何 JSON 解析器,無相容性問題" }, + { + "location": ".gitea/ai-review/findings.json", + "suggestion": "findings.json 是自動產生的問題記錄檔,不應對其內容提出審查問題" + }, { "role": "Rex", "location": ".gitea/workflows/review.yaml", diff --git a/.gitea/ai-review/findings.json b/.gitea/ai-review/findings.json index e978562..0d4f101 100644 --- a/.gitea/ai-review/findings.json +++ b/.gitea/ai-review/findings.json @@ -1,30 +1,2 @@ [ - { - "level": "warning", - "role": "Leo", - "location": ".gitea/ai-review/findings.json", - "suggestion": "`findings.json` 中重新出現關於 `app/config.test.js` 檔案結尾換行符號及匯入語句長度的警告/資訊,但 `exclusions.json` 卻明確指出這些問題已解決或無需修改。這種矛盾會導致 AI 審查系統的可靠性降低,可能導致開發者對審查結果產生混淆或不信任。建議釐清並統一 AI 審查的設定與排除規則,確保 `findings.json` 和 `exclusions.json` 之間的一致性,避免重複提出已處理或被排除的問題,以提升審查系統的長期可維護性。", - "is_new": true - }, - { - "level": "warning", - "role": "Zara", - "location": ".gitea/ai-review/findings.json", - "suggestion": "`findings.json` 中重新出現關於 `app/config.test.js` 檔案結尾換行符號及匯入語句長度的警告/資訊,但 `exclusions.json` 卻明確指出這些問題已解決或無需修改。這種矛盾會導致 AI 審查系統的可靠性降低,可能導致開發者對審查結果產生混淆或不信任。建議釐清並統一 AI 審查的設定與排除規則,確保 `findings.json` 和 `exclusions.json` 之間的一致性,避免重複提出已處理或被排除的問題,以提升審查流程的效率與開發者體驗。", - "is_new": true - }, - { - "level": "warning", - "role": "Aria", - "location": ".gitea/ai-review/findings.json", - "suggestion": "在 `.gitea/ai-review/findings.json` 中,關於 `app/config.test.js` 檔案結尾換行符號及匯入語句長度的警告/資訊,與 `.gitea/ai-review/exclusions.json` 中明確的排除規則相矛盾。這種不一致性會降低 AI 審查系統的可靠性與可讀性,並可能導致開發者混淆。建議審查並統一這兩個檔案的內容,確保排除規則被正確應用,避免重複報告已處理或已排除的問題。", - "is_new": true - }, - { - "level": "warning", - "role": "Maya", - "location": ".gitea/ai-review/findings.json", - "suggestion": "`findings.json` 中重新出現關於 `app/config.test.js` 檔案結尾換行符號及匯入語句長度的警告/資訊,但 `exclusions.json` 卻明確指出這些問題已解決或無需修改。這種矛盾會導致 AI 審查系統的可靠性降低,可能導致開發者對審查結果產生混淆或不信任。建議釐清並統一 AI 審查的設定與排除規則,確保 `findings.json` 和 `exclusions.json` 之間的一致性,避免重複提出已處理或被排除的問題,以提升審查品質與開發者體驗。", - "is_new": true - } ] From 7578bee5d32da547d0603a1d8c636ae5370596ff Mon Sep 17 00:00:00 2001 From: AI Review Bot Date: Tue, 12 May 2026 06:47:39 +0000 Subject: [PATCH 19/19] chore: update ai-review findings [skip ci] --- .gitea/ai-review/findings.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.gitea/ai-review/findings.json b/.gitea/ai-review/findings.json index 0d4f101..64cba33 100644 --- a/.gitea/ai-review/findings.json +++ b/.gitea/ai-review/findings.json @@ -1,2 +1,9 @@ [ + { + "level": "warning", + "role": "Zara", + "location": "app/comments.js:24", + "suggestion": "在 `saveFindings` 函數中,`fs.writeFileSync` 是一個同步操作。如果 `findings` 陣列可能非常大,或者此函數會被頻繁呼叫,同步寫入檔案可能會阻塞 Node.js 事件迴圈,導致應用程式響應變慢。建議改用 `fs.writeFile` (非同步) 以避免阻塞主執行緒,提升應用程式的響應能力。", + "is_new": true + } ]