Skip to content

Fix npm bugs, add thread reply processing - #11

Merged
lionuncle merged 2 commits into
mainfrom
feat/update-notifier
Apr 15, 2026
Merged

Fix npm bugs, add thread reply processing#11
lionuncle merged 2 commits into
mainfrom
feat/update-notifier

Conversation

@lionuncle

Copy link
Copy Markdown
Contributor

Summary

  • Fix ModuleNotFoundError on npm installsfrom rpr import __version__ fails when run via the Node shim; added _get_version() fallback that parses the sibling __init__.py
  • Fix re-review loop — rpr was feeding its own prior reviews back as context, causing infinite commenting instead of approving. Now tags outgoing reviews with <!-- rpr --> and filters them out on subsequent runs
  • Add thread reply processing — when re-running, rpr checks its own review threads for human replies. If someone says "fixed", it fetches the current code and verifies with Claude before replying/resolving. If someone provides a technical explanation, it acknowledges and resolves the thread
  • Bump version to 0.1.4 across __init__.py, pyproject.toml, and package.json

How thread processing works

  1. GraphQL fetches all unresolved review threads, filters to rpr's own (by marker)
  2. Identifies threads with human replies (excludes rpr's own replies)
  3. Fetches current file content at HEAD for each thread's location
  4. Single batched Claude call verifies all pending threads
  5. Replies in-thread and resolves confirmed threads via GraphQL

Test plan

  • npm install -g @dedev-llc/rpr && rpr <PR> — no more ModuleNotFoundError
  • Run rpr twice on the same PR — second run should not re-comment on its own feedback
  • Reply "fixed" to an rpr thread, push a fix, re-run — thread should be verified and resolved
  • Reply with a technical explanation to an rpr thread, re-run — thread should be resolved
  • rpr <PR> --dry-run — thread processing should be skipped

🤖 Generated with Claude Code

lionuncle and others added 2 commits April 15, 2026 17:23
rpr was feeding its own prior reviews back as "previous feedback",
causing Claude to re-comment on its own concerns indefinitely instead
of approving. Now tags all outgoing reviews with an invisible HTML
marker (<!-- rpr -->) and filters them out when building context for
subsequent runs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When rpr runs, it now checks its own previous review threads for human
replies. If someone says "fixed", rpr fetches the current code at that
location and asks Claude to verify the fix before replying and resolving.
If someone provides a technical explanation, rpr acknowledges and resolves.

Uses GraphQL to fetch thread IDs and resolve them. All rpr replies are
tagged with the <!-- rpr --> marker so they're excluded from future
context, preventing the re-comment loop.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@lionuncle
lionuncle merged commit bb4079d into main Apr 15, 2026
8 checks passed
@lionuncle
lionuncle deleted the feat/update-notifier branch April 15, 2026 12:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant