feat: 階段三 - AI 語意去重,失敗時降級保留所有問題

This commit is contained in:
2026-05-11 09:40:38 +00:00
parent 5c5660a34b
commit 4a67dec32a
2 changed files with 40 additions and 3 deletions
+8 -3
View File
@@ -1,7 +1,7 @@
import { GITEA_REPOSITORY, PR_NUMBER, PR_HEAD_BRANCH, PR_BASE_BRANCH, getLLMConfig } from './config.js';
import { loadRoles, getRoleIntro } from './roles.js';
import { getPRDiff, postComment } from './gitea.js';
import { analyzeWithRole, loadOldFindings, mergeFindings, sortByLevel } from './findings.js';
import { analyzeWithRole, loadOldFindings, mergeFindings, sortByLevel, deduplicateWithAI } from './findings.js';
const WORKSPACE = process.env.GITHUB_WORKSPACE || '/workspace';
@@ -66,8 +66,13 @@ async function main() {
console.log('\n🔀 Step3: Findings 合併');
const oldFindings = loadOldFindings(WORKSPACE);
const mergedFindings = mergeFindings(oldFindings, newFindings);
const sorted = sortByLevel(mergedFindings);
console.log(` Step3 merged findings total=${sorted.length} (critical=${sorted.filter(f=>f.level==='critical').length} warning=${sorted.filter(f=>f.level==='warning').length} info=${sorted.filter(f=>f.level==='info').length})`);
console.log(` Step3 merged findings total=${mergedFindings.length}`);
// Step3b: AI 語意去重
console.log('\n🤖 Step3b: AI 語意去重');
const deduped = await deduplicateWithAI(mergedFindings);
const sorted = sortByLevel(deduped);
console.log(` Step3b dedup findings total=${sorted.length} (critical=${sorted.filter(f=>f.level==='critical').length} warning=${sorted.filter(f=>f.level==='warning').length} info=${sorted.filter(f=>f.level==='info').length})`);
console.log('\n📝 Step4: Findings 寫入與 Comment 發布(待實作)');
console.log(' [stub] 寫入 findings.json,發布 comment...');