-
Notifications
You must be signed in to change notification settings - Fork 6
Claude PR review bot: review threads are never auto-resolved #760
Description
Observation
When the Claude PR review bot posts inline review comments, those threads are never automatically resolved — even after the issue has been fixed and the bot has acknowledged it. Threads can only be resolved via a GraphQL mutation, which is not in the bot's current allowedTools.
This leads to noise: the PR shows many open threads that are effectively closed, and the bot repeatedly re-raises the same issues on each new review run because it sees the thread as unresolved.
Options
Option A — Add thread resolution to the bot's allowed tools.
Add Bash(gh api graphql:*) to allowedTools in .github/workflows/claude-pr-review.yml and update the prompt to instruct the bot to resolve a thread after it confirms an issue is fixed. The mutation is:
```bash
gh api graphql -f query='mutation { resolveReviewThread(input: {threadId: "..."}) { thread { isResolved } } }'
```
- Pro: clean, threads actually close
- Con: risk of the bot resolving threads it incorrectly thinks are fixed
Option B — Accept the limitation, use "reply to dismiss" pattern.
The bot replies when something is fixed/dismissed, leaving threads visually open but with a clear resolution in the conversation.
- Pro: no workflow changes needed
- Con: threads remain open, bot may re-raise same issues on next review run
Option C — Hybrid: bot resolves only threads it opened itself, and only when it can confirm the fix is present in the current code.
Reduces risk of over-resolution while keeping the workflow clean.
References
- Workflow:
.github/workflows/claude-pr-review.yml - Example PR where this caused noise: Add npm publishing and update documentation #719