Skip to content

Tags: sunwrobert/pr-review

Tags

v0.1.20

Toggle v0.1.20's commit message
fix: readiness scores from GitHub facts first, Jev on top

Replayed against 23 live PRs, mean error vs a hand-written review report fell from 21 to 9 points and rank agreement rose from 0.46 to 0.74. Risk no longer lowers the score (shown as an outlined badge), Jev's blocker odds only count above 0.5, and Jev now reads one dated timeline of reviews and comments with superseded bot reports and CI boilerplate dropped. Cache key bumped so old scores are re-fetched.

v0.1.19

Toggle v0.1.19's commit message
feat: Birman kitten app icon

Ghibli-style Birman kitten holding up a diff card, generated with Seedream 5.0 Pro through the OpenRouter Images API. Candidate generation scripts write outside the repo; only the chosen source is kept.

v0.1.18

Toggle v0.1.18's commit message
feat: add T3 Code themes

Twelve themes generated from T3 Code's palettes (T3 Code, T3 Chat, Grove, Ocean, Ember, Iris, dark and light) by scripts/import-t3-themes.ts. Adds --accent-fg so themes with dark text on the accent stay readable.

v0.1.17

Toggle v0.1.17's commit message
feat: close pull requests from the app

⇧W, the top-bar close button, or Close in the bulk bar closes the current PR or every checked one after a confirmation, with an optional comment posted first via gh pr close.

v0.1.16

Toggle v0.1.16's commit message
fix: clicking the Group pill toggles grouping

The pill only had its ⇧T shortcut; the button itself had no click handler. A click sweep over every visible button found no other unwired ones.

v0.1.15

Toggle v0.1.15's commit message
fix: re-check merge state after a refused merge and after 3 minutes

A PR's updatedAt does not change when main moves under it, so a cached CLEAN state could hide a new conflict until the PR itself was edited. Cached merge states now expire after 3 minutes. A refused merge immediately re-fetches that PR's merge state, so the red Merge conflicts badge and Fix with Devin appear right away, with a toast naming the base branch.

v0.1.14

Toggle v0.1.14's commit message
fix: cap concurrent gh calls and retry TLS handshake timeouts

A refresh fans out queue, merge-state batches, body, diff, conversation, threads and neighbour prefetches at once, each its own gh process with its own TLS handshake. At most 6 gh calls now run at a time. Failures that happen before the request leaves the machine (TLS handshake timeout, dial, DNS) retry after 0.4, 1.2 and 3 s; HTTP and GraphQL errors and mid-request resets are never retried, so mutations cannot repeat.

v0.1.13

Toggle v0.1.13's commit message
perf: stop forcing layout when the list re-renders or the selection m…

…oves

The virtual list read scrollTop and clientHeight on every render, highlight move and scroll-into-view, each forcing a synchronous layout right after rows changed. It now caches both from the scroll event and ResizeObserver, and writes scroll through one setter. The diff pane's reset to the top moved before new items mount, so DiffView.show no longer forces a layout either (about 56 ms of self time per chip press under 4x throttle in profiles).

v0.1.12

Toggle v0.1.12's commit message
chore: bench verifies its work, survives hung runs, reports spread

Each scenario now checks that its work happened, and page errors count as failures; any failure forces SCORE 0. The type-filter scenario pressed f, which no longer focuses the filter, so it timed empty keystrokes; it now uses /. Adds a refresh scenario. Hung headless runs (about 1 in 14, on either side) are relaunched after 60s instead of hanging the bench forever, frames that never arrive are excluded and counted, and --spread prints per-scenario ranges.

v0.1.11

Toggle v0.1.11's commit message
fix: stop images flashing, custom ⇧X Devin message, clearer selectabl…

…e toasts

The PR list rebuilt every visible row on each refresh, filter keystroke or selection change, so avatars reloaded blank. It now reuses unchanged rows and moves already-decoded images into rebuilt markup; the description and comments do the same when re-rendered for the same PR. Avatars no longer lazy-load. The ⇧X dialog has a message box; Send to Devin sends that text, or Fix CI and merge conflicts if any when empty. Toast text is selectable, stays open while hovered or selected, and every toast names its PR or subject.