The pull request inbox that remembers

Review the code.
Skip the ceremony.

PRamatic finds the pull requests that need you, runs a read-only AI review, and keeps every comment a draft until you decide.

Read-only GitHub Local reports Copy-only drafts
Inbox
OPEN3
craft/monorepo

Make retries boring again

#428 · Review requested

2 findings
craft/monorepo

Move billing jobs to the queue

#421 · Authored by you

Clean
studio/web

Tighten session boundaries

#98 · Previously involved

Head moved
craft/monorepo#428

Make retries boring again

PRamatic summary

Found 2 actionable issues across 14 changed files.

100%
Findings 2ConversationDiffChat
P1

Stop retrying after the terminal attempt

jobs/retryPayment.ts:42–48

The 429 branch re-enqueues forever. A provider incident can quietly turn into an immortal queue.

Local draft commentCan we apply the configured attempt cap here?
P1 actionable
head verified
Scroll to inspect
01 / 05

Your queue,
already triaged.

Review requests, your own PRs, stale reports, and conversations that need attention land in one calm queue. A refresh archives what is merged or already approved.

  • Suggested review list with search and filters
  • Head-change detection and force re-review
  • Automatic merge and approval archiving
Review queue
synced now
Open 5Needs attention 2My PRsArchived
KM
craft/monorepo · #428Make retries boring again

Your review requested · head moved 4m ago

Re-review
AP
studio/web · #98Tighten session boundaries

Approved by you · auto-archiving

Approved
YS
mobile/ios · #71Unify push-notification receipts

Merged · moving out of your way

Archived
One refresh, less archaeology.Merged and approved PRs leave the open queue automatically.
jobs/retryPayment.ts
+3-1
@@ -39,4 +39,7 @@ async function retryPayment
3939 const delay = retryAfter(response)
40+const terminal = attempt >= maxAttempts
4041 if (response.status === 429) {
42+ if (terminal) return markFailed(job)
4143- return enqueue(job, delay)
44+ return enqueue(job, withJitter(delay))
4245 }
P1Terminal attempts still re-enqueue

This path needs the configured attempt cap before it schedules more work.

02 / 05

The finding lives
where the code does.

Read a GitHub-style diff, jump from a finding to the exact line, and open that location on GitHub when you are ready to comment yourself.

  • Rendered file-by-file diff
  • Finding-to-line navigation
  • One-click handoff to GitHub
03 / 05

Every thread you’re in.
None you’ve escaped.

A holistic conversation view follows your mentions, replies, change requests, and review threads across repositories—without revisiting every PR by hand.

  • Open and resolved review threads
  • Mentions and conversations involving you
  • Hide, collapse, or archive the quiet ones
ConversationsAcross every PR you touched
Search threads
KM
craft/monorepo #428 · line 42“Should this use the existing backoff helper?”

@you were mentioned · 2 new replies

2
JE
studio/api #216 · generalChanges requested on your PR

Unresolved · updated 18m ago

Needs you
AP
mobile/ios #71 · line 88Receipt format is settled

Resolved · collapses quietly

Resolved
3 conversations need you
Retry behaviorcraft/monorepo #428 · finding context
SHA 8d31c5a
You

Is this still a bug if the queue lease expires first?

PRamatic

Yes. The lease controls who owns the current attempt; it does not cap future attempts. The 429 branch schedules a new job before the lease matters.

retryPayment.ts:42
Ask about this PR or finding…
04 / 05

Ask the PR.
Keep the context.

Open multiple chats for a pull request or a specific finding. Each answer is grounded in the exact reviewed head, with a direct route back to the diff.

  • PR- and finding-scoped chats
  • Multiple named conversations per PR
  • SHA-bound context that rejects stale heads
05 / 05

Local-first.
Not local-fiction.

Reports and drafts stay on your Mac. Review context is sent to the AI provider you explicitly choose. The distinction is visible before the first review.

GitHub is read-only

No posting, approval, merge, push, or repository mutation action exists in the app.

Fixed read operations
Reports stay local

Findings, drafts, receipts, preferences, and caches live on your Mac and can be exported or deleted.

Telemetry off
AI flow is explicit

Selected metadata, diffs, source excerpts, policies, and chat context go only to the provider you select.

Consent required
Secrets stay native

Provider keys and GitHub App credentials use macOS Keychain and never enter report requests or diagnostics.

Keychain protected
GitHub readSanitized workspaceChosen AI providerLocal report
Signed macOS preview

A second reviewer.
Zero posting privileges.

The universal macOS preview is Developer ID signed, accepted by Apple’s notarization service, and ready to install.

Read the release disclosures
PRamatic for macOSVersion 0.1.0 · Apple silicon + Intel
  • Read-only review inbox
  • Codex or Claude Agent
  • Local reports and drafts
Download for macOSUniversal installer · macOS 13+ · signed, notarized, and stapled.