prreviewbuddy 0.19.1 → 0.25.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,292 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.25.6
4
+
5
+ **A review you open while it is still running now looks like one that is running.** Following the
6
+ link the moment it is printed used to show the finished layout with most of it missing: a two line
7
+ status strip, the KISS card, a screen of white below it, and an empty column down the right where
8
+ the assistant would go. It read as a page that had failed to draw rather than as a review being
9
+ made.
10
+
11
+ There is now a **Review in progress** page, and it is what a running review opens on. It lists the
12
+ steps of the run, ticks them off as they finish, and marks the one going with the note the agent is
13
+ writing as it works:
14
+
15
+ ```
16
+ ✓ Prepared isolated checkout
17
+ ✓ Read what changed
18
+ ✓ Read pull request conversation
19
+ ● Analysing the change
20
+ Reading packages/alerts/src/ede/adapter.ts
21
+ ```
22
+
23
+ Those are the same step names the terminal prints while you wait, so switching between the two
24
+ shows one operation rather than two descriptions of it. The elapsed time counts in seconds while it
25
+ is under a minute, because a number that does not move is no evidence that anything is happening.
26
+
27
+ **The changed files open before the review is finished.** They are known minutes before anything
28
+ has been concluded about them, so once the change has been read the page offers them, and the Files
29
+ tab works exactly as it does on a finished review. You can start reading the code while the model
30
+ is still thinking about it. The findings, questions and assistant stay behind until they exist,
31
+ since an empty Issues tab cannot be told apart from a review that found nothing.
32
+
33
+ Going into Files while it runs keeps you there. The page refreshes itself only when it has
34
+ something new to show you, not on every step.
35
+
36
+ **A run that stopped says which step it stopped on.** The message and **Retry** used to sit in the
37
+ strip, which had room to say a review had paused but not where. The failure now sits under the same
38
+ checklist, with the step that broke marked and the ones after it left unclaimed, so what failed is
39
+ a thing you read rather than a thing you infer.
40
+
41
+ **KISS is no longer where you land by accident.** A change whose standard review had not finished
42
+ opened on the KISS run form, because it was the only page with anything on it. It is a peer review
43
+ type, not the fallback for whichever review is busy, and it is still one click away in the sidebar.
44
+
45
+ **Locations under a KISS recommendation fit the page.** A repository path is one long unbreakable
46
+ word, and the buttons holding them grew wider than the document, cutting off the end of the path,
47
+ which is the half naming the file. They now wrap the way the standard review's file rows always
48
+ have: a quiet directory line above a filename that wraps.
49
+
50
+ The **Main** badge on those rows is gone. It was our word for a flag in the data, worn as a label,
51
+ so it read as a fact about the file and left you to work out what it was for. The rows now sit
52
+ under **Start here** and **Also relevant**, which say what to do instead of what we call it. Both
53
+ headings are dropped where a recommendation cites a single file.
54
+
55
+ **"Show more of this file" shows more of the file.** Under a finding at line 804 it used to jump to
56
+ the top of the file and then do nothing at all when pressed again, because it meant "the first 600
57
+ lines" rather than "more". Each press now widens the window around the line you arrived at, and the
58
+ button is only there while there is more to show.
59
+
60
+ **Your own saved prompts no longer look unavailable.** In the selection menu they appeared greyed
61
+ out, under a dividing rule, from the first one you saved. A rule written when "Ask a question" was
62
+ the last item in the menu was landing on the last saved prompt instead. They now sit under a **Your
63
+ prompts** heading, in the same words the assistant panel uses for the same set, and read as the
64
+ most available thing in the menu rather than the least.
65
+
66
+ ## 0.25.0
67
+
68
+ **PR Review Buddy no longer guesses which `main` you meant.** A repository usually holds two
69
+ branches by that name, your own and `origin/main`, and they are the same commit until somebody
70
+ commits without pushing or pushes from somewhere else. Whichever of the two is stale is still an
71
+ ancestor of your branch, so the comparison succeeds and the review is quietly of the wrong thing:
72
+ one report was a 107 file review of a 23 file change.
73
+
74
+ When the two are different commits, the review now stops before it starts and says so, showing both
75
+ commits, how far apart they are, and the two commands that pick one:
76
+
77
+ ```
78
+ prreviewbuddy review --base refs/heads/main
79
+ prreviewbuddy review --base origin/main
80
+ ```
81
+
82
+ It stops for `--base main` and for a plain `prreviewbuddy review` alike, since the default base is
83
+ worked out the same way. A base you have already been specific about is never questioned:
84
+ `origin/main`, `refs/heads/main` and `refs/remotes/origin/main` each mean exactly what they say, and
85
+ a commit, a tag or `HEAD~3` is passed to git as it always was.
86
+
87
+ There is deliberately no rule picking the newer one, or the local one, or the one with fewer files.
88
+ Any of those is still a guess, and a review of the wrong base is worse than being asked which base
89
+ you meant.
90
+
91
+ **A file the review read is no longer reported as one it invented.** The review runs inside a real
92
+ checkout, so it reads beyond the diff: the caller of a changed function, the interface a changed
93
+ class implements. Naming one of those used to produce an amber correction box saying the path could
94
+ not be found and had been removed, and the finding that rested on it lost its location.
95
+
96
+ Those files are now kept. They appear under **Referenced files** at the foot of the Files tab, with
97
+ the sections that brought them in, and they open in the code viewer like anything else. They are
98
+ deliberately not mixed into the changed-file groups and are not counted as files in this change,
99
+ because the pull request did not touch them.
100
+
101
+ A finding that rests on one now reads **Related file: path · not changed** rather than showing no
102
+ location at all.
103
+
104
+ The correction box now only reports a path that is in neither the change nor the reviewed version
105
+ of the repository, and says the removal and the finding it cost in one sentence rather than two
106
+ bullets that read as two problems.
107
+
108
+ **A KISS review keeps the files it read, too.** The same fix as above, for the other review type.
109
+ A recommendation about complexity that lives partly outside the diff, in the interface a new class
110
+ implements or the caller that already did this, used to lose every location it had and be shown as
111
+ having nowhere to look. Those locations are kept now, marked **not changed** on the row so they
112
+ cannot be read as part of the pull request, and they open like any other.
113
+
114
+ The KISS correction box now reports only a path that is in neither the change nor the reviewed
115
+ version of the repository.
116
+
117
+ **A review id no longer has to be typed in full.** `--review a8a9a058` finds the review that id
118
+ starts, in `open`, in `--update` and in `--delete`. A shorthand that matches two reviews is refused
119
+ with both ids and what each is of, rather than one of them being picked for you.
120
+
121
+ **Analysis details moved to the top of the review.** It now sits opposite the pane's title, on
122
+ **Review overview** and on **KISS review**, as a small **Analysis details** button that opens a
123
+ panel under itself rather than a strip across the page. Nothing moves when you open it, and it
124
+ shuts on Escape or a click elsewhere.
125
+
126
+ It describes the whole analysis: which commit, which model, how much of the change it saw. Those
127
+ are the things you want before deciding how much to trust the verdict, and they were at the bottom
128
+ of the page, after it.
129
+
130
+ A KISS review now names its audience the way you chose it. **Reviewing my code** and **Reviewing
131
+ someone else's code**, in the words on the buttons that start a run, rather than "Written for the
132
+ author of this change", which asked you to work out whether you were that author.
133
+
134
+ ## 0.24.0
135
+
136
+ **A failed review now shows what the agent actually said.** When a run fails because the reply
137
+ could not be used, the reply is kept with the run and folded away under **What the agent replied**
138
+ on the failure panel, for both standard and KISS reviews.
139
+
140
+ "Could not be parsed as JSON" is the same sentence whether the model ignored the schema or wrote a
141
+ paragraph in front of a perfectly good answer, and until now the reply that would settle it was
142
+ discarded. It is kept whole, deleted with the review like everything else, and never sent anywhere.
143
+
144
+ ## 0.23.1
145
+
146
+ **A review is no longer lost to a sentence in front of it.** If the agent answered with a paragraph
147
+ before its JSON and no code fence around it, the whole review was discarded as unparseable. This
148
+ happens when your own Claude Code configuration asks for a particular style of reply, which the
149
+ review has no way to switch off. The answer is now cut out of whatever surrounds it, for both
150
+ standard and KISS reviews.
151
+
152
+ ## 0.23.0
153
+
154
+ **Act on several reviews at once.** The reviews list has a **Select** button beside its count.
155
+ Pressing it puts a checkbox on every row, and ticking rows brings up a bar with three things to do
156
+ with them: **Mark reviewed**, **Mark in progress**, and **Delete**.
157
+
158
+ A selection survives searching, filtering and turning the page, so you can gather rows from
159
+ anywhere in the list. When some of what you have ticked is not on screen, the bar says so
160
+ ("5 selected · 2 not shown") before you act on it.
161
+
162
+ Deleting takes the whole branch: a row is a branch and holds every review of it, so the question
163
+ names both counts before anything goes. A branch that is being analysed right now is refused by
164
+ name, and everything else in the selection is still deleted.
165
+
166
+ The button inside a review now reads **Mark reviewed** rather than "Mark review complete", so the
167
+ list and the review say the same thing about the same act.
168
+
169
+ ## 0.22.1
170
+
171
+ **A way out of Settings.** The settings page had one link back to the reviews list, sitting in the
172
+ top right among the version number and the feedback link, where it read as page furniture rather
173
+ than as navigation. It is now a proper control at the top left of the page, above the first setting.
174
+
175
+ When you reached Settings from the rail of a review, it takes you back to that review rather than to
176
+ the list.
177
+
178
+ ## 0.22.0
179
+
180
+ *The reviews page is a list you can work through, not a wall of tiles.*
181
+
182
+ **One column.** Every review was a card in a two-up grid, which meant each one had about 420px to
183
+ hold a title, a summary, a repository, a branch, an author, a risk, a size, what was outstanding and
184
+ how long ago you were last there. The title ellipsed, the branch ellipsed, and the measurements
185
+ stacked four rows deep, while the page kept empty space down both sides. The same content is now one
186
+ row per branch: the summary has room to be read, everything measured sits on a single line, and the
187
+ ages line up down the right edge so a screenful can be scanned rather than read.
188
+
189
+ **Pages.** Fifteen reviews at a time, with ordinary numbered pagination. These are saved pieces of
190
+ work rather than a feed, and a page you can return to is worth more here than a scroll position you
191
+ cannot. Searching and filtering still cover everything stored, not just the page in front of you.
192
+
193
+ **Where you were is in the address.** Search text, the filter and the page are all in the URL, so
194
+ refreshing keeps them, Back out of a review returns to the page you opened it from, and a link to a
195
+ search is a link to that search.
196
+
197
+ **Pull request numbers.** A review of a pull request shows its number, and you can find it by typing
198
+ either `#412` or `412`.
199
+
200
+ ## 0.21.0
201
+
202
+ *Your workspace has an address now, and a place to change it.*
203
+
204
+ **PR Review Buddy lives at http://localhost:7726.** It used to take whatever port the machine had
205
+ spare, which was free by construction and useless by consequence: every link into a review died the
206
+ next time the server started. So a review was something you had to go and find again rather than
207
+ something you could keep a link to. The port is fixed, review addresses do not move, and a link to a
208
+ review is worth bookmarking.
209
+
210
+ 7726 is P-R-B on a telephone keypad. It is not 4173, which is what `vite preview` takes, and
211
+ choosing a port a developer's own tools already want would have made the collision the common case
212
+ rather than the rare one.
213
+
214
+ **Nothing moves quietly.** If something else is already on that port, PR Review Buddy says so and
215
+ names both ways out. It does not try 7727. An address that shifts whenever it is inconvenienced is
216
+ not an address, and finding an available port would have cost the one property this is for.
217
+
218
+ **Settings, in the workspace.** A page at the level of the product rather than a tab inside a
219
+ review, holding the workspace port, the coding agent used when a review does not name one, and
220
+ whether anonymous usage counts are sent. All three already existed and were already settable from
221
+ the command line; what was missing was anywhere to see them.
222
+
223
+ They are three interfaces over one file, not three stores. `prreviewbuddy config set port 7726`, the
224
+ field on the settings page, and editing `~/.prreviewbuddy/config.json` by hand all write the same
225
+ key, and `prreviewbuddy config path` prints where that file is.
226
+
227
+ **A change of port says when it takes effect.** A workspace that is already running keeps the port
228
+ it started on, so the page tells you both: the one you are reading this on, and the one the next
229
+ start will use. Claiming the change had already happened would be sending you to an address nothing
230
+ is answering at.
231
+
232
+ **A port it cannot use is an error, not a shrug.** A hand-edited `70000` used to be the kind of
233
+ thing a program quietly ignores in favour of its default, which makes a configuration file look like
234
+ it is not being read. It now names the file, the value and the range. A missing setting still means
235
+ the default, because not saying anything is different from saying something impossible.
236
+
237
+ **Saved links survive a restart.** The credential that opens your list of reviews used to be minted
238
+ fresh on every start, so a browser that had been authorised yesterday was not authorised today. It
239
+ is generated once and kept, which means the browser you already use keeps working across restarts.
240
+ A review link was always the stronger case and still is: it carries its own credential, so it opens
241
+ anywhere.
242
+
243
+ That retires `~/.prreviewbuddy/reviews.html`, the page that existed only to be an address that did
244
+ not move, rewritten on every start and stop because nothing else stayed still. There is a real one
245
+ now.
246
+
247
+ ## 0.20.0
248
+
249
+ *A second question you can ask of the same change: is all this machinery necessary?*
250
+
251
+ **A review lens.** `prreviewbuddy review --lens kiss` runs a review that asks something the standard
252
+ one only ever answers by accident: not whether the change is correct, but whether the complexity it
253
+ introduces is justified, or whether the same requirements could be met with materially less
254
+ machinery. It runs against everything the ordinary command reviews, a branch, another branch, or a
255
+ pull request, and it needs no standard review to have been made first.
256
+
257
+ It is a review of its own rather than a mode of the standard one. Its own prompt, its own run, its
258
+ own result, its own staleness, and its own section in the left rail sitting beside `Review` rather
259
+ than under it. Run both and you get two readings of one change in one workspace, at one link, on
260
+ one card in your list of reviews.
261
+
262
+ **Every run says who it is for, and is never guessed.** `--audience author` writes to the person
263
+ who wrote the code, before they ask anyone to look: direct, specific, what to collapse or remove or
264
+ defer, with enough of the trade-off that nothing load-bearing gets flattened. `--audience reviewer`
265
+ writes for somebody reading another person's work, and adds the question a reviewer actually has,
266
+ which is not whether an observation is true but whether it is worth spending a comment on. Where
267
+ one is, it drafts the comment, and the draft can be copied as the Markdown it was written as.
268
+
269
+ Nothing infers this from what you are reviewing, because there is nothing to infer it from: a
270
+ reviewer checks out somebody else's branch and an author reviews their own pull request. In a
271
+ terminal it asks. Anywhere else, leaving it out is a refusal that names both values rather than a
272
+ default that writes comments about somebody else's work to its author.
273
+
274
+ **A run that finds nothing is an answer.** "No material simplifications were identified" is a
275
+ result the page states plainly, not an empty list. The rubric asks just as hard for complexity that
276
+ is doing a job, and says so: transaction boundaries, permission checks, an adapter at a real
277
+ external seam. A review that could only ever come back with something to change would be worth
278
+ nothing when it came back with something to change.
279
+
280
+ **Every recommendation points at the code it is about.** The files and lines are on the
281
+ recommendation itself, and open the diff where you are reading, so there is no separate index to
282
+ consult for a list that fits on one screen. A path the analysis named that is not in the change is
283
+ withdrawn and disclosed rather than quietly rendered as a link to nothing.
284
+
285
+ **Running it again keeps the answer it gave before.** Each run is kept whole, with the commit it was
286
+ made from, the audience it was written for and the version of the prompt that produced it. New
287
+ commits mark a run stale on its own terms, so bringing one up to date says nothing about the other,
288
+ and dismissing that notice on one leaves the other's alone.
289
+
3
290
  ## 0.19.1
4
291
 
5
292
  *An answer worth keeping can now be taken out whole.*