fix:stalled 分類同步 agents#47——assignee 交付報告待確認改判 waiting-outside

與 agents 86f570a(PR alterminal/agents#48)同語義:最後一則 assignee
留言符合交付報告特徵(結構訊號:逐項查核/驗收結果、彙總 verdict、內文
含「完成定義」段落時簡式交付語也算;∧ 交棒訊號:回報/關閉他件 #N、
或請/可由/待他人確認關閉)時,assignee-idle 改判 waiting-outside。

兩訊號同時命中才翻轉:認領/進度/預告式留言(無交棒對象)保持
assignee-idle,不製造「認領後棄置永不被催」的新死角。

驗證:TestIsDeliveryReport(8 案例,與 gitea.py 離線驗證同集)+
TestScanStalledDeliveryReport(stalled 整合:交付報告翻轉、認領不翻轉)
+全套 go test 綠;live A/B 對安裝版二進位:bear#52 assignee-idle →
waiting-outside,bear#39 parent-tracking 不變。
This commit is contained in:
2026-09-15 04:28:08 +08:00
parent 540718dda7
commit 1d9092cdde
5 changed files with 151 additions and 2 deletions
+7 -1
View File
@@ -526,7 +526,13 @@ func considerIssue(src Source, org, repo string, issue Issue, comments []Comment
case len(assignees) == 0:
reason = "no-assignee"
case lastCommentBy != "" && containsString(assignees, lastCommentBy):
reason = "assignee-idle"
if IsDeliveryReport(issue.Body, last) {
// 交付報告待確認(agents #47):assignee 已交付並交棒(回報他件/
// 請發起人確認關閉),停滯點在等待外部確認,不是 assignee 停滯。
reason = "waiting-outside"
} else {
reason = "assignee-idle"
}
case lastCommentBy == "":
reason = "no-commenter"
}