prreviewbuddy 0.15.2 → 0.18.0
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 +95 -0
- package/LICENSE +11 -0
- package/README.md +64 -0
- package/dist/main.js +834 -171
- package/dist/{relative_time-Dh7GvPvk.js → relative_time-Ckbb4Srd.js} +916 -483
- package/dist/server.js +121 -21
- package/package.json +3 -2
- package/static/reviews.js +1 -1
- package/static/shell.css +113 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,100 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.18.0
|
|
4
|
+
|
|
5
|
+
*A pull request is compared against its own base, or not at all.*
|
|
6
|
+
|
|
7
|
+
**A review of a two file pull request could report 433 files.** If your clone's `main` was behind
|
|
8
|
+
the remote, and it is behind the remote from the first day nobody pulls, a pull request onto `main`
|
|
9
|
+
was compared against your branch rather than the one the request was cut from. Nothing failed. The
|
|
10
|
+
review named hundreds of files the author never touched, attributed other teams' already merged work
|
|
11
|
+
to them, and recommended changes over it, and the only symptom anywhere was the numbers.
|
|
12
|
+
|
|
13
|
+
The cause was one rule in two halves that disagreed. With no base named, PR Review Buddy preferred
|
|
14
|
+
the remote copy. With a base named, it took the name as written, and a pull request always names its
|
|
15
|
+
base. A short name now means the remote copy of it everywhere:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
--base main -> origin/main
|
|
19
|
+
--base refs/heads/main -> your own main, deliberately
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Naming a ref in full still reaches exactly what you named, which is how you ask for your own branch
|
|
23
|
+
on purpose.
|
|
24
|
+
|
|
25
|
+
**A pull request's base is now the commit the forge names.** PR Review Buddy asks GitHub which
|
|
26
|
+
commit the request is cut from and compares against that. Failing that it uses the remote-tracking
|
|
27
|
+
copy of the base branch, and failing both it stops and asks you to run `git fetch` rather than
|
|
28
|
+
comparing against a local branch that merely shares the name.
|
|
29
|
+
|
|
30
|
+
**It also checks its own work.** The diff it builds is checked against the number of files the forge
|
|
31
|
+
says the request touches, and a review whose counts disagree in either direction is refused rather
|
|
32
|
+
than written. Too many files means something was dragged in; too few means something the request
|
|
33
|
+
touches was never read, and nothing in a finished review would have said so.
|
|
34
|
+
|
|
35
|
+
Reviews already on disk repair themselves. One made by an earlier version recorded the ambiguous
|
|
36
|
+
name, and updating it reproduced the problem rather than curing it; updating or re-analysing one now
|
|
37
|
+
resolves it the same way a new review would.
|
|
38
|
+
|
|
39
|
+
## 0.17.0
|
|
40
|
+
|
|
41
|
+
*Reviews you can get rid of, and an ID you can read.*
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
prreviewbuddy review --review <review> --delete
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Reviews can be deleted, from the terminal and from the list in your browser.** They were durable
|
|
48
|
+
and permanent, which is only half a lifecycle: a bad run, an experiment, or the second review
|
|
49
|
+
`--fresh` was asked for sat there for thirty days with nothing to do about it but uninstall the
|
|
50
|
+
product. Deleting removes the review and the isolated checkouts it was made in, and touches neither
|
|
51
|
+
your branch nor its commits.
|
|
52
|
+
|
|
53
|
+
In the browser, the `...` menu on a review offers **Copy review ID** and **Delete review**, and the
|
|
54
|
+
menu on a card deletes every review of that branch at once, naming the count and the ref it follows
|
|
55
|
+
so the two cards for `feat/foo` and `origin/feat/foo` cannot be confused for one another. The
|
|
56
|
+
confirmation happens in the menu, where you are already looking.
|
|
57
|
+
|
|
58
|
+
**`prreviewbuddy open` now prints a review ID beside each review.** It was only ever findable as a
|
|
59
|
+
fragment of a URL, which was tolerable while nothing required it: `--review` is a tiebreaker and
|
|
60
|
+
`open` works without one. Deleting requires it, because after `--fresh` a branch names several
|
|
61
|
+
reviews and picking the newest is a coin toss, so the ID had to stop being an implementation detail.
|
|
62
|
+
|
|
63
|
+
Deleting refuses while a review is still being analysed, and there is no flag past that. Stopping an
|
|
64
|
+
analysis and deleting its record are separate decisions, and only one of them is being asked for.
|
|
65
|
+
`--yes` skips the confirmation and means nothing else.
|
|
66
|
+
|
|
67
|
+
## 0.16.0
|
|
68
|
+
|
|
69
|
+
*Installing this told you nothing, and removing it left something behind.*
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
prreviewbuddy uninstall remove everything this put on your machine
|
|
73
|
+
prreviewbuddy uninstall --keep-reviews keep your reviews and settings, clear the rest
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**`prreviewbuddy uninstall` cleans up after itself, including the part you could not see.** Every
|
|
77
|
+
review is made in an isolated checkout, and creating one writes an entry into the repository being
|
|
78
|
+
reviewed. Deleting `~/.prreviewbuddy` by hand leaves those entries pointing at nothing, in
|
|
79
|
+
repositories you had no reason to suspect, and finding them means running `git worktree list`
|
|
80
|
+
somewhere you were not looking. This removes the checkouts through the same guard the product
|
|
81
|
+
already used, clears the entries in the repositories that have any, and then removes the store.
|
|
82
|
+
|
|
83
|
+
It stops the workspace server first, asks before it deletes anything, and refuses outright while a
|
|
84
|
+
review is still being made, naming the branch rather than a process. `--yes` skips the
|
|
85
|
+
confirmation; `--force` is a separate answer to a separate question, and means stopping work that
|
|
86
|
+
is in progress. `--keep-reviews` clears the runtime state and leaves your reviews and settings
|
|
87
|
+
where they are.
|
|
88
|
+
|
|
89
|
+
It does not remove its own npm package. A running command deleting the install it is executing from
|
|
90
|
+
depends on the package manager that put it there, so the last thing it prints is the line to type.
|
|
91
|
+
|
|
92
|
+
**The first command you run now says where to look.** Two lines above whatever you asked for,
|
|
93
|
+
naming `prreviewbuddy agents` and `prreviewbuddy --help`, and then never again on that machine.
|
|
94
|
+
Installing left you to guess the first command, and the obvious fix of printing it after the
|
|
95
|
+
install is not one: npm no longer runs install scripts unless you allow-list them, so the line
|
|
96
|
+
would have reached almost nobody while adding a warning about install scripts to every install.
|
|
97
|
+
|
|
3
98
|
## 0.15.2
|
|
4
99
|
|
|
5
100
|
- A review that could not be completed now says so on every tab. The Guide and
|
package/LICENSE
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Copyright © 2026 KloLabs. All rights reserved.
|
|
2
|
+
|
|
3
|
+
PR Review Buddy is proprietary software. It is licensed for use, not sold.
|
|
4
|
+
|
|
5
|
+
No licence to copy, modify, distribute, sublicense or create derivative works is
|
|
6
|
+
granted by the availability of this source or of any published package. Use of
|
|
7
|
+
the software is governed solely by the Terms of Service at
|
|
8
|
+
https://prreviewbuddy.com/terms.
|
|
9
|
+
|
|
10
|
+
Third-party components distributed with the software remain under their own
|
|
11
|
+
licences, which are unaffected by this notice.
|
package/README.md
CHANGED
|
@@ -29,12 +29,16 @@ prreviewbuddy review --reanalyse analyse the same commit again, for a fre
|
|
|
29
29
|
prreviewbuddy review --fresh review the target again, keeping the existing review
|
|
30
30
|
prreviewbuddy review --review <review> --update
|
|
31
31
|
act on one review by its review ID
|
|
32
|
+
prreviewbuddy review --review <review> --delete
|
|
33
|
+
delete one review and the checkouts it was made in
|
|
32
34
|
|
|
33
35
|
prreviewbuddy open list your reviews and open the index
|
|
34
36
|
prreviewbuddy open <review> open one review
|
|
35
37
|
|
|
36
38
|
prreviewbuddy agents which coding agents you have
|
|
37
39
|
prreviewbuddy config set agent <agent> remember which to use when you do not name one
|
|
40
|
+
|
|
41
|
+
prreviewbuddy uninstall remove everything this put on your machine
|
|
38
42
|
```
|
|
39
43
|
|
|
40
44
|
The two halves go together: `prreviewbuddy review --branch feat/foo --update` brings the review of
|
|
@@ -44,6 +48,28 @@ Run it from inside the repository you want reviewed. `--branch` takes a branch,
|
|
|
44
48
|
`--branch origin/feat/foo` reviews what is on the remote rather than what is in your clone. A review
|
|
45
49
|
follows the ref it was made from and keeps following it.
|
|
46
50
|
|
|
51
|
+
## Which base a review is compared against
|
|
52
|
+
|
|
53
|
+
A base named by its short name resolves to the remote copy of it, and a base named in full resolves
|
|
54
|
+
to exactly what was named.
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
--base main -> origin/main
|
|
58
|
+
--base refs/heads/main -> your own main, deliberately
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
A local branch is behind the remote from the first day nobody pulls, and it is usually an ancestor
|
|
62
|
+
of the branch under review, so git accepts it as a merge base without complaint and every upstream
|
|
63
|
+
commit you have not pulled lands in the review. There is no error, only a much larger diff and
|
|
64
|
+
findings about code the author never touched. Naming the ref in full is how you say you meant your
|
|
65
|
+
own branch.
|
|
66
|
+
|
|
67
|
+
A pull request is stricter, because its base is not something you typed. PR Review Buddy asks the
|
|
68
|
+
forge which commit the request is cut from and uses that; failing that, the remote-tracking copy of
|
|
69
|
+
the base branch; and failing both it refuses and asks you to run `git fetch`. It also checks the
|
|
70
|
+
diff it built against the number of files the forge says the request touches, and refuses if the two
|
|
71
|
+
disagree.
|
|
72
|
+
|
|
47
73
|
## What you need
|
|
48
74
|
|
|
49
75
|
- **Node 20 or newer**, and **git**.
|
|
@@ -78,6 +104,44 @@ the terminal that started it, taking a new port each time it starts, so bookmark
|
|
|
78
104
|
The isolated checkout a review was made in is kept for six hours after it finishes, because that is
|
|
79
105
|
what the assistant reads when you ask it questions, and is then removed.
|
|
80
106
|
|
|
107
|
+
## Deleting a review
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
prreviewbuddy review --review <review> --delete
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Reviews are kept for thirty days, and `--fresh` exists so you can review the same branch twice on
|
|
114
|
+
purpose, so a bad run or an experiment is worth being able to clear out. Deleting removes the
|
|
115
|
+
review and the isolated checkouts it was made in, and touches neither your branch nor its commits.
|
|
116
|
+
It asks first; `--yes` skips that. It refuses while the review is still being analysed, and there is
|
|
117
|
+
no flag past that: stopping an analysis and deleting its record are different decisions.
|
|
118
|
+
|
|
119
|
+
The ID is the one `prreviewbuddy open` prints beside each review. It is required, because a branch
|
|
120
|
+
can name several reviews once you have used `--fresh`.
|
|
121
|
+
|
|
122
|
+
You can also delete from the list in your browser: the `...` menu on a review offers **Copy review
|
|
123
|
+
ID** and **Delete review**, and the menu on a card deletes every review of that branch at once.
|
|
124
|
+
|
|
125
|
+
## Uninstall
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
prreviewbuddy uninstall
|
|
129
|
+
npm rm -g prreviewbuddy
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
The first line is the one worth knowing about. A review is made in an isolated checkout, and
|
|
133
|
+
creating one writes an entry into the repository being reviewed, so deleting `~/.prreviewbuddy`
|
|
134
|
+
yourself leaves entries pointing at nothing in repositories you had no reason to suspect.
|
|
135
|
+
`uninstall` removes the checkouts, clears those entries in the repositories that have any, and then
|
|
136
|
+
removes the store. It asks first, and it refuses while a review is still being made.
|
|
137
|
+
|
|
138
|
+
`prreviewbuddy uninstall --keep-reviews` clears the runtime state and leaves your reviews and
|
|
139
|
+
settings in `~/.prreviewbuddy`. `--yes` skips the confirmation, and `--force` stops a review that is
|
|
140
|
+
still being made rather than refusing over it.
|
|
141
|
+
|
|
142
|
+
Removing the package itself is the second line, and it is yours to run: a command that deleted the
|
|
143
|
+
install it was running from would depend on whichever package manager put it there.
|
|
144
|
+
|
|
81
145
|
## Also available
|
|
82
146
|
|
|
83
147
|
As a [Claude Code](https://claude.com/claude-code) plugin, and as a Chrome extension that reviews
|