refactor(ai-review): 重新命名留言閉包並抽出診斷輸出長度常數
- postComment → queueOrPostComment:涵蓋建問題模式下可能只暫存不立即發布的語義。 - ensureIssueCreated → createIssueAndFlushBufferedComments:明示建立 issue 並清空暫存留言的完整行為。 - review.js agentFailureDetail 的 500 字上限抽為具名常數 AGENT_DIAGNOSTIC_OUTPUT_LIMIT。 純內部命名與可讀性調整,無外部行為變更。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
83dd56f37f
commit
0c108ab7f9
+4
-2
@@ -66,13 +66,15 @@ function agentFailureDetail(res) {
|
||||
// 先截去過長輸入再遮罩,避免對數 MB 的失敗輸出跑整份 O(k×n) 正規掃描;
|
||||
// 2000 字上限已足以涵蓋跨界機密樣式,最終仍截為 500 字。
|
||||
const INPUT_LIMIT = 2_000;
|
||||
// 每段診斷片段(stderr/stdout)寫入日誌的字元上限,兩段共用同一政策,抽為具名常數避免兩處各寫一個魔術數字。
|
||||
const AGENT_DIAGNOSTIC_OUTPUT_LIMIT = 500;
|
||||
// 預設即附上「經 redactSecrets 遮罩+去控制字元+限長」的 stderr 與 stdout 片段——CLI 失敗時
|
||||
// 只印 exit code 幾乎無從除錯(見 test-claude 秒失敗案例);且部分 CLI(如 claude-code 的
|
||||
// -p 模式)會把錯誤寫到 stdout 而非 stderr,故兩者都輸出。redactSecrets 為盡力防線。
|
||||
const stderr = redactSecrets(String((res && res.stderr) || '').slice(0, INPUT_LIMIT));
|
||||
if (stderr) parts.push(`stderr:${stderr.slice(0, 500)}`);
|
||||
if (stderr) parts.push(`stderr:${stderr.slice(0, AGENT_DIAGNOSTIC_OUTPUT_LIMIT)}`);
|
||||
const stdout = redactSecrets(String((res && res.output) || '').slice(0, INPUT_LIMIT));
|
||||
if (stdout) parts.push(`stdout:${stdout.slice(0, 500)}`);
|
||||
if (stdout) parts.push(`stdout:${stdout.slice(0, AGENT_DIAGNOSTIC_OUTPUT_LIMIT)}`);
|
||||
if (parts.length === 0) {
|
||||
parts.push((err && err.message && redactSecrets(err.message)) || 'AI CLI 執行失敗(無診斷輸出)');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user