aRustyDev / aRustyDev/agents

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

Offen
#796 0 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @aRustyDev Auf GitHub ansehen
enhancement skill-pr-addresser
Vorherrschende Sprache
Jupyter Notebook
Sterne
8
Forks
3
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

## 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

```python
# 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:

```python
# 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:

```python
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

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.