Skip to content

feat(skill-pr-addresser): detect updated comments after addressing #796

@aRustyDev

Description

@aRustyDev

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_ids

Only 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

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions