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 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