Skip to content

Commit c8a6106

Browse files
fix(server.py): include all reviews in PR context when triggered by review
Previously, when triggered by a review or review_comment, only the specific review that triggered the bot was included in reviews_history. This caused the PR context to not contain review information as expected. Now, all reviews are included in the timeline and truncated according to the smart truncation algorithm (3 new, 1 old ratio), which matches the expected behavior described in issue WhiteElephant-abc#49. Fixes WhiteElephant-abc#49 Co-Authored-By: Claude (mimo-v2-flash) <noreply@anthropic.com>
1 parent 4f54a9e commit c8a6106

File tree

1 file changed

+18
-26
lines changed

1 file changed

+18
-26
lines changed

server.py

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -640,34 +640,26 @@ def build_rich_context(
640640
for item in truncated_items:
641641
# 根据触发类型决定包含哪些历史
642642
trigger_type = trigger_node.type if trigger_node else None
643-
644-
# 如果是review或review_comment触发,采用test_context.py的更精确过滤逻辑
643+
644+
# 如果是review或review_comment触发,包含所有review和review_comment(按时间线截断)
645645
if trigger_type in ["review", "review_comment"]:
646-
# 基于test_context.py修复:只保留与当前review相关的项目
647-
trigger_review_id = trigger_node.review_id if trigger_node.review_id else trigger_node.id
648-
646+
# 包含所有review(按时间线截断,而不是只包含当前review)
649647
if item.type == "review":
650-
# 只包含当前触发的review(test_context.py的精确过滤)
651-
if item.id == trigger_review_id:
652-
reviews_history.append({
653-
"id": item.id,
654-
"user": item.user,
655-
"body": item.body,
656-
"state": item.state,
657-
"submitted_at": item.created_at
658-
})
659-
logger.info(f"Including review {item.id} for review {trigger_review_id}")
660-
elif item.type == "review_comment" and item.review_id:
661-
# 只保留与当前review相关的评论
662-
if item.review_id == trigger_review_id:
663-
review_comments_batch.append({
664-
"id": item.id,
665-
"user": item.user,
666-
"body": item.body,
667-
"path": item.path,
668-
"diff_hunk": item.diff_hunk
669-
})
670-
logger.info(f"Including review comment {item.id} for review {trigger_review_id}")
648+
reviews_history.append({
649+
"id": item.id,
650+
"user": item.user,
651+
"body": item.body,
652+
"state": item.state,
653+
"submitted_at": item.created_at
654+
})
655+
elif item.type == "review_comment":
656+
review_comments_batch.append({
657+
"id": item.id,
658+
"user": item.user,
659+
"body": item.body,
660+
"path": item.path,
661+
"diff_hunk": item.diff_hunk
662+
})
671663
# 对于review触发,不保留普通comment(基于test_context.py逻辑)
672664
else:
673665
# 普通触发(comment):只处理comment和review,不处理review_comment

0 commit comments

Comments
 (0)