-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
Description
Summary
The skill-pr-addresser agent tracks addressed feedback by ID to avoid duplicate work. However, if a reviewer updates their comment after it's been addressed, the agent will still skip it because the ID hasn't changed.
Current Behavior
# discovery.py:288-291
def not_addressed(item) -> bool:
item_id = getattr(item, "id", None)
return item_id is None or item_id not in addressed_idsOnly checks if the ID exists in addressed_ids. Content changes are not detected.
Proposed Solution
Store a content hash alongside the addressed ID:
# In session.results["addressed_feedback"]
{
"comment-123": {
"id": "comment-123",
"content_hash": "sha256:abc123...",
"addressed_at": "2025-01-02T12:00:00Z"
}
}Then compare content hash when filtering:
def not_addressed(item) -> bool:
item_id = getattr(item, "id", None)
if item_id is None:
return True
addressed = addressed_feedback.get(item_id)
if not addressed:
return True
# Check if content changed since addressing
current_hash = hash_content(item.body)
return current_hash != addressed.get("content_hash")Acceptance Criteria
- Store content hash when marking feedback as addressed
- Compare hash when filtering already-addressed feedback
- Re-process comments whose content has changed
- Add tests for updated comment detection
Notes
- Review threads don't have persistent IDs in our model, so they're always reprocessed
- This only affects PR comments and review comments with IDs