Commit Graph
144 Commits
Author SHA1 Message Date
Jeffery a27555b35a test(ai-review): 補使用量統計與 resolve 安全與邊界測試 2026-06-23 12:58:43 +08:00
Jeffery f23d015e62 fix(ai-review 對話收斂): 補路徑穿越防護、提示詞注入防護與正則預編譯 2026-06-23 12:58:43 +08:00
Jeffery 1151535161 feat(ai-review 使用量): 新增多平台 AI 助理使用量統計與剩餘可用百分比 2026-06-23 12:58:43 +08:00
Jeffery 9e3f7afee2 test(ai-review 對話收斂): 補解析預設、AI 判斷過濾與收斂失敗路徑測試 2026-06-23 11:30:21 +08:00
Jeffery 5bee498e4b fix(ai-review 對話收斂): 並行取檔與 resolve、處理單檔失敗與無路徑留言 2026-06-23 11:30:21 +08:00
Jeffery 7a29a5be1c test(ai-review 對話收斂): 補對話收斂與 Gitea review comment API 測試 2026-06-23 11:09:50 +08:00
Jeffery a99163468b feat(ai-review 對話收斂): 讀 PR review 留言判斷解決狀態並收斂 findings 2026-06-23 11:09:50 +08:00
jiantw83 31de74c603 refactor(ai-review 統計): 精簡 action log 統計輸出
AI / 計算版本號 (pull_request) Successful in 2s
AI / Code Review (pull_request) Successful in 1m26s
2026-06-23 02:27:18 +00:00
jiantw83 12c54212f0 feat(ai-review 統計): 將統計改為新舊問題分列 2026-06-23 02:20:44 +00:00
jiantw83 3527a06244 test(comments review): 強化嚴重等級解析 helper 2026-06-22 16:35:37 +00:00
jiantw83 e3890787ff test(comments review): 抽出嚴重等級解析斷言 2026-06-22 16:32:23 +00:00
jiantw83 47b5b7ea5c fix(Step9): 還原嚴重問題失敗流程
AI / 計算版本號 (pull_request) Successful in 2s
AI / Code Review (pull_request) Successful in 35s
2026-06-22 15:48:19 +00:00
jiantw83 e443096325 test(comments review): 驗證 Review comments 依嚴重度排序
AI / 計算版本號 (pull_request) Successful in 2s
AI / Code Review (pull_request) Successful in 56s
2026-06-22 15:36:08 +00:00
jiantw83 279bcc2101 fix(評論發布): 只統計新問題並排序 comments
AI / 計算版本號 (pull_request) Successful in 2s
AI / Code Review (pull_request) Successful in 1m13s
2026-06-22 23:02:21 +08:00
jiantw83 bd89eb573f fix(Step9): 優先用 Gitea 狀態阻擋合併
AI / 計算版本號 (pull_request) Successful in 2s
AI / Code Review (pull_request) Successful in 1m39s
2026-06-22 10:32:58 +00:00
jiantw83 f83a2034a8 fix(ai-review comment): 顯示審查問題原因 2026-06-22 10:27:33 +00:00
jiantw83 ca6b066a52 test(OpenCode TLS): 補齊非 false 值驗證
AI / 計算版本號 (pull_request) Successful in 2s
AI / Code Review (pull_request) Failing after 1m17s
2026-06-22 10:21:53 +00:00
jiantw83 4dc50941b0 docs(workflow 階段): 將前置驗證改為 Step2 2026-06-22 10:20:52 +00:00
jiantw83 e8f4770814 style(ai-review 統計): 簡化嚴重等級數量表 2026-06-22 10:11:16 +00:00
jiantw83 71c9b40c0b style(ai-review 統計): 改用三欄兩行表格
AI / 計算版本號 (pull_request) Successful in 2s
AI / Code Review (pull_request) Failing after 1m10s
2026-06-22 10:07:43 +00:00
jiantw83 a60fb8d168 test(OpenCode TLS): 補齊跳過驗證設定測試 2026-06-22 10:01:49 +00:00
jiantw83 995a62e04d test(ai-review review): 補上 Review 發布測試 2026-06-22 10:01:49 +00:00
jiantw83 757d9ad3c2 feat(ai-review review): 發布統計 Review 並彙整行內 comments 2026-06-22 10:01:49 +00:00
jiantw83 648334d153 test(OpenCode TLS): 覆蓋預設跳過驗證行為 2026-06-20 13:56:00 +00:00
jiantw83 9d759464c2 feat(OpenCode TLS): 預設跳過 TLS 驗證 2026-06-20 13:56:00 +00:00
jiantw83 babe599977 refactor(OpenCode TLS): 共用 httpsAgent 建立邏輯 2026-06-20 13:42:25 +00:00
jiantw83 82d2a943ac test(OpenCode TLS): 覆蓋自簽憑證略過設定 2026-06-20 13:16:00 +00:00
jiantw83 f7e4f09d4e feat(OpenCode TLS): 新增自簽憑證驗證略過設定 2026-06-20 13:16:00 +00:00
jiantw83 0e08f5c4d8 test(ai-review 同步): 更新只提交問題檔的測試 2026-06-18 08:07:23 +00:00
jiantw83 6f2bbab041 fix(ai-review 同步): 限制自動提交只包含問題檔 2026-06-18 08:07:20 +00:00
jiantw83 c66a9aa025 fix(llm): 強化 OpenCode JSON 回應解析 2026-06-17 07:08:11 +00:00
jiantw83 a9ac7857be test(comments): 改善嚴重問題留言斷言可讀性 2026-06-17 06:50:56 +00:00
jiantw83 3f78543159 test(opencode): 補上 OpenCode server provider 測試 2026-06-17 06:50:51 +00:00
jiantw83 98eaeb6050 feat(opencode): 新增 OpenCode server provider 串接 2026-06-17 06:50:44 +00:00
Jeffery fa95a463f8 test(roles): 補 focus/personality 缺漏時的輸出防護測試 2026-06-16 17:00:29 +08:00
Jeffery 60001499da fix(腳色載入器): 壞角色檔改記錄警告並略過、快取解析結果並補 focus/personality 缺漏防護 2026-06-16 17:00:24 +08:00
Jeffery d8b681e63b test(roles 與 comments): 新增腳色載入器測試與嚴重問題 comment 的邊界/多筆案例 2026-06-16 16:41:40 +08:00
Jeffery 1602853c99 feat(腳色系統): 改用 skill RPG 攻防腳色、新增 Mage 邏輯角色並讓 Step3/4 套上 Paladin 裁決人設 2026-06-16 16:41:28 +08:00
JefferyandClaude Opus 4.8 caebd2b112 feat: 嚴重問題改用 Gitea 行內 review comment 標註檔案行數
AI / 計算版本號 (pull_request) Successful in 4s
AI / Code Review (pull_request) Successful in 1m35s
每個新的嚴重問題改以行內 review comment 標註在問題所在的檔案與行數上,
留言內容為等級/審查員/建議;無法解析出行號(未標行號或一次列出多個
檔案),或行內留言失敗(該行不在 diff 範圍)時,降級為原本的一般 PR comment。

- gitea.js:新增 postPullReviewComment,呼叫 pull reviews API,以 new_position
  對應新版檔案行號、commit_id 帶 PR_HEAD_SHA
- comments.js:新增 parseLocation(支援 file:19 / file:70-82,取起始行)與
  行內留言內容組裝;postNewCriticalComments 先試行內、失敗降級,deps 可注入
- 補 11 個測試(API payload、parseLocation 各情境、行內成功與兩種降級路徑)
- README 更新流程第 7 步說明

app/ 測試 123 pass。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 14:40:36 +08:00
JefferyandClaude Opus 4.8 9d780788e9 test: 補齊 runPreflight 測試並 triage preflight findings
AI / 計算版本號 (pull_request) Successful in 4s
AI / Code Review (pull_request) Failing after 1m42s
triage 6 筆 review findings:1 筆修正、5 筆移入 exclusions。

修正(Maya, warning):runPreflight 僅測過 env 缺失早退,缺成功路徑與
各失敗點覆蓋。將其驗證步驟改為可注入的 deps 參數(預設沿用原函式,
行為不變),並補上完整成功、comment 略過、各失敗點早停、workspace
傳遞共 8 個測試。

移入 exclusions(誤報,保留原文):
- Rex critical:GITEA_SKIP_TLS_VERIFY 為預設開啟驗證的 opt-in 設定,
  與既有 gitea.js 排除一致,非漏洞
- Leo warning:verifyLLM 內聚清楚,拆分屬主觀重構
- Zara warning:每把 key 30s timeout 為刻意的可靠性下限,僅失敗時累積
- Rex info:axios 錯誤訊息不含認證標頭/內容
- Aria info:預設參數引用 config 常數為刻意且利於測試的 pattern

findings.json 清空(全部已修正或排除)。app/ 測試 112 pass。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 13:49:30 +08:00
JefferyandClaude Opus 4.8 7339145641 fix: withAskpass 等待非同步 callback 完成才清理 askpass 腳本
AI / 計算版本號 (pull_request) Successful in 2s
AI / Code Review (pull_request) Failing after 2m24s
commitAndPush 傳入 async callback,但 withAskpass 是同步 try/finally,
會在第一個 await(LLM 合併指令檔)時就刪除 .git-askpass.sh,導致後續
git push 因 GIT_ASKPASS 指向已刪除腳本而失敗(cannot exec .git-askpass.sh /
could not read Username)。前置驗證的 verifyRemoteAccess 用同步 callback
所以 ls-remote 通過,造成前置驗證過但 push 失敗的落差。

改為當 callback 回傳 thenable 時以 result.finally(cleanup) 延後清理,
同步 callback 維持立即清理與原樣回傳,不影響 verifyRemoteAccess / cloneRepo。

新增回歸測試斷言 git push 執行當下 askpass 腳本仍存在。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 11:40:58 +08:00
JefferyandClaude Opus 4.8 40ebfe99a8 feat: 前置驗證納入 git push 認證檢查
AI / 計算版本號 (pull_request) Successful in 2s
AI / Code Review (pull_request) Failing after 1m28s
git push 走 askpass + HTTP 認證,與 Gitea REST API 是兩套機制,API token
有效不代表 push 能用(曾出現 askpass 無法執行、could not read Username 而
push 失敗)。新增 git.js verifyRemoteAccess() 以相同 askpass + remote URL
跑唯讀 git ls-remote,preflight 呼叫並在失敗時 exit 1,提前攔下設定問題。

新增 git.test.js 對 verifyRemoteAccess 的測試(成功、失敗不丟例外、token
不外洩、askpass 清理)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 13:39:04 +08:00
JefferyandClaude Opus 4.8 766f2ddf40 feat: 啟動時前置驗證所有驗證相關設定
AI / 計算版本號 (pull_request) Failing after 1s
AI / Code Review (pull_request) Has been skipped
新增 app/preflight.js,在 action 啟動(Step1 之後、其餘步驟之前)集中
檢查必要環境變數、GITEA_TOKEN 讀 repo、GITEA_COMMENT_TOKEN、以及 LLM
provider/API Key(多把只要一把通過即可,Ollama 改檢查 base URL 連線)。
任一項失敗即印出原因並 exit 1,避免分析到一半或發 comment 時才失敗。

main.js 在 Step1 後呼叫 runPreflight();新增 preflight.test.js 覆蓋
成功、缺環境變數、token 無效、所有 LLM key 失敗、Ollama 等情境。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 10:41:40 +08:00
Jeffery 097b6fb721 feat: implement Git integration for automated repository instruction syncing and commit management 2026-05-21 11:36:11 +08:00
Jeffery e99236b893 feat: implement git repository synchronization and automated commit functionality for AI review findings 2026-05-21 10:17:01 +08:00
Jeffery e80a462d96 feat: 將 ANTIGRAVITY 加入程式 2026-05-20 10:49:34 +08:00
jiantw83 b4c54124ec feat: force overwrite core instruction files 2026-05-18 02:50:47 +00:00
jiantw83 b51ab78a5e feat: force sync skill trees 2026-05-18 02:48:54 +00:00
jiantw83 b8294d5ca7 fix: persist repaired exclusions 2026-05-18 02:40:53 +00:00
jiantw83 b1ed236720 feat: normalize exclusions format 2026-05-18 02:33:24 +00:00