prreviewbuddy 0.69.1 → 0.71.1
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 +77 -0
- package/README.md +66 -174
- package/dist/{delete_review-CRPRIRKg.js → delete_review-BgIZpcsP.js} +17 -3
- package/dist/main.js +194 -130
- package/dist/server.js +487 -199
- package/package.json +5 -2
- package/static/chunk-BsU84lX4.js +1 -0
- package/static/chunk-DqEA-C0S.js +1 -0
- package/static/help.js +1 -1
- package/static/notifications.js +1 -1
- package/static/reviews.js +1 -1
- package/static/settings.js +1 -1
- package/static/shell.css +15 -0
- package/static/sidebar.css +48 -0
- package/static/workspace.js +62 -59
- package/static/chunk-2P5KTb9d.js +0 -1
- package/static/chunk-CndkgJPh.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,82 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.71.1
|
|
4
|
+
|
|
5
|
+
**`prreviewbuddy` on its own is a front door now, not the manual.** It says what PR Review Buddy is,
|
|
6
|
+
the three commands you most likely want next, and where to find more, in a dozen lines.
|
|
7
|
+
|
|
8
|
+
**Help in three steps.** `prreviewbuddy help` (or `--help`) lists every command, one line each.
|
|
9
|
+
`prreviewbuddy <command> --help`, or `prreviewbuddy help <command>`, gives that command's options:
|
|
10
|
+
everything `review` takes is under `prreviewbuddy review --help`. A flag the command does not take
|
|
11
|
+
now points you at that command's help rather than the whole list.
|
|
12
|
+
|
|
13
|
+
**Help in the workspace explains the ideas.** What used to be paragraphs in the terminal is now in
|
|
14
|
+
Help, with a list of topics at the top: Getting started, Isolated checkouts, Updating and
|
|
15
|
+
reanalysing, Reviews and review IDs, Several pull requests at once, Review lenses, The workspace
|
|
16
|
+
server, and How long things are kept, beside What gets reviewed and Keyboard. Two things the
|
|
17
|
+
terminal help had out of date are right there: Stop server is in Settings, and reviews you saved,
|
|
18
|
+
marked Done or queued are kept for ninety days rather than thirty.
|
|
19
|
+
|
|
20
|
+
**A shorter npm page.** The package page now says what PR Review Buddy is for, how to start a
|
|
21
|
+
review, what a review gives you and what stays on your machine. Its screenshot shows the current workspace. The full
|
|
22
|
+
command reference moved to `prreviewbuddy help`, and the explanations to Help in the workspace.
|
|
23
|
+
|
|
24
|
+
## 0.71.0
|
|
25
|
+
|
|
26
|
+
**Simple explanations stay on the card.** Ask Buddy → Explain simply on an issue or a question now
|
|
27
|
+
keeps the answer on that card, under what the finding says, in a Simple explanation you can fold
|
|
28
|
+
away and open again. It is still there after a reload, and when the review is updated with new
|
|
29
|
+
commits. Explaining the same card again replaces it, and the menu says so: Regenerate simple
|
|
30
|
+
explanation. If regenerating fails or you stop it, the explanation you had stays.
|
|
31
|
+
|
|
32
|
+
**Ask more → picks up where the explanation left off.** At the end of an explanation, Ask more
|
|
33
|
+
opens Buddy AI with the finding quoted and the cursor ready for your question. Buddy is given the
|
|
34
|
+
explanation along with it, however long ago it was written. Nothing is sent until you ask.
|
|
35
|
+
|
|
36
|
+
The explanation is yours, for reading the finding. It is not part of what Copy, or Prepare
|
|
37
|
+
feedback, gives you to send to the author. Buddy's other answers stay in the conversation.
|
|
38
|
+
|
|
39
|
+
**Copy includes what an update said.** When Update review has changed an issue or a question, Copy
|
|
40
|
+
and Prepare feedback now carry the update's note after the finding, with its status, for example
|
|
41
|
+
"After the new commits (affected): …", and a question's answer from the new changes. A pasted
|
|
42
|
+
finding, or feedback sent to the author, no longer reads as the original report.
|
|
43
|
+
|
|
44
|
+
**Copy includes what an investigation found.** Copy now also carries an investigation's note, with
|
|
45
|
+
its verdict ("Investigation (refuted): …"), and a question's answer from the investigation. That is
|
|
46
|
+
your own working, so Prepare feedback leaves it out.
|
|
47
|
+
|
|
48
|
+
## 0.70.2
|
|
49
|
+
|
|
50
|
+
**Buddy AI's answers on cards of their own.** In the Buddy AI panel, your questions stay purple and
|
|
51
|
+
Buddy's answers now sit on a light card with a thin border, so a conversation reads as turns
|
|
52
|
+
between you and Buddy. In the dark theme the card is outlined. The copy button stays where it was,
|
|
53
|
+
at the foot of each answer.
|
|
54
|
+
|
|
55
|
+
## 0.70.1
|
|
56
|
+
|
|
57
|
+
**Selecting a review's ID by hand, with the keyboard.** When Copy review ID can't reach the
|
|
58
|
+
clipboard, the menu shows the ID in a box for you to select and copy yourself. In a review's `…`
|
|
59
|
+
menu, Home, End and the arrow keys in that box jumped to a menu item instead; they now move within
|
|
60
|
+
the box, with Shift selecting as usual. The same holds in the menus on the Reviews list. Escape
|
|
61
|
+
still closes the menu.
|
|
62
|
+
|
|
63
|
+
## 0.70.0
|
|
64
|
+
|
|
65
|
+
**A review's menu from the keyboard.** On the Reviews list, Space opens the menu of the review J
|
|
66
|
+
and K are on, with its first item ready. Move through it with J and K or the arrow keys, press
|
|
67
|
+
Enter to choose, or Escape to close it and carry on down the list from the same review. Space
|
|
68
|
+
still ticks a focused checkbox, presses a focused button and types in the search box. Space is
|
|
69
|
+
listed with the page's keys in the palette (⌘K, or Ctrl+K off a Mac) and in Keyboard shortcuts
|
|
70
|
+
(⌘K ?).
|
|
71
|
+
|
|
72
|
+
**J and K in every menu.** In any open menu (a review's on the list, the one in a review's header,
|
|
73
|
+
Ask Buddy on an issue or question) J and K move down and up as the arrow keys do.
|
|
74
|
+
|
|
75
|
+
**The Reviews list's menus behave like a review's.** They open above their button when there is
|
|
76
|
+
no room below it. Escape closes one and puts you back on its button, or on the review if Space
|
|
77
|
+
opened it. Choosing Delete from the keyboard puts you on Cancel, and Cancel puts you back on
|
|
78
|
+
Delete.
|
|
79
|
+
|
|
3
80
|
## 0.69.1
|
|
4
81
|
|
|
5
82
|
**Escape leaves the Buddy AI field.** With your cursor in the Buddy AI question box, Escape moves
|
package/README.md
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
# PR Review Buddy
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Understand before you approve.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
A local review workspace that helps you understand code changes before you approve them.
|
|
6
|
+
|
|
7
|
+
Have Claude Code, Codex or Gemini CLI analyse a branch or pull request, then explore what it
|
|
8
|
+
found, the evidence behind it and your own follow-up questions in your browser.
|
|
9
|
+
|
|
10
|
+

|
|
6
11
|
|
|
7
12
|
## Install
|
|
8
13
|
|
|
@@ -10,192 +15,89 @@
|
|
|
10
15
|
npm install -g prreviewbuddy
|
|
11
16
|
```
|
|
12
17
|
|
|
13
|
-
##
|
|
18
|
+
## Start a review
|
|
19
|
+
|
|
20
|
+
In the repository you want reviewed:
|
|
14
21
|
|
|
15
22
|
```
|
|
16
23
|
prreviewbuddy review
|
|
17
24
|
```
|
|
18
25
|
|
|
19
|
-
|
|
20
|
-
starts and fills in as the review is made, so you can open the link and watch it arrive.
|
|
21
|
-
|
|
22
|
-
`prreviewbuddy review --pr <url>` reviews a pull request instead, and `--branch <branch>` reviews
|
|
23
|
-
another branch without checking it out.
|
|
24
|
-
|
|
25
|
-
## What does the reviewing
|
|
26
|
-
|
|
27
|
-
A coding agent you have already installed: [Claude Code](https://claude.com/claude-code),
|
|
28
|
-
[Codex CLI](https://developers.openai.com/codex/cli) or
|
|
29
|
-
[Gemini CLI](https://github.com/google-gemini/gemini-cli). Run `prreviewbuddy agents` to see which
|
|
30
|
-
of them this machine has.
|
|
31
|
-
|
|
32
|
-
There is no account, no API key and nothing to sign up for. PR Review Buddy uses that agent's
|
|
33
|
-
existing authentication; it never sees a token and never asks you for one.
|
|
34
|
-
|
|
35
|
-
## How it works
|
|
36
|
-
|
|
37
|
-
The analysis runs in a separate process against a git worktree pinned to one commit, so your own
|
|
38
|
-
checkout is never read or written while it works and you can carry on using it. What you get back
|
|
39
|
-
is a local workspace in your browser: a suggested path through the change, findings, questions, and
|
|
40
|
-
an assistant that has read the diff. The job is durable, so closing the terminal does not stop it.
|
|
41
|
-
|
|
42
|
-
## Privacy
|
|
43
|
-
|
|
44
|
-
Your code goes to the coding agent you chose, exactly as it would if you had run that agent
|
|
45
|
-
yourself. It does not pass through us, and no server of ours is in the path of a review.
|
|
46
|
-
|
|
47
|
-
PR Review Buddy sends non-identifying usage telemetry, on by default and off with one command: two
|
|
48
|
-
event names, a random ID generated on your machine, the version, the platform, the agent and a
|
|
49
|
-
duration. Never your code, diffs, file paths, repository names, prompts or review content.
|
|
50
|
-
`prreviewbuddy config set telemetry-upload off` stops it.
|
|
51
|
-
[The full field table is published](https://prreviewbuddy.com/privacy).
|
|
52
|
-
|
|
53
|
-
More at [prreviewbuddy.com](https://prreviewbuddy.com).
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
# Reference
|
|
58
|
-
|
|
59
|
-
## Commands
|
|
60
|
-
|
|
61
|
-
A command names what to review, and what to do to it.
|
|
26
|
+
Or a pull request:
|
|
62
27
|
|
|
63
28
|
```
|
|
64
|
-
prreviewbuddy review
|
|
65
|
-
prreviewbuddy review --branch <branch> review another branch, without checking it out
|
|
66
|
-
prreviewbuddy review --pr <url> review a pull request
|
|
67
|
-
prreviewbuddy review --base <ref> compare against a base of your choosing
|
|
68
|
-
prreviewbuddy review --agent <agent> review with a named coding agent
|
|
69
|
-
|
|
70
|
-
prreviewbuddy review --update bring the review of that target up to date
|
|
71
|
-
prreviewbuddy review --reanalyse analyse the same commit again, for a fresh judgement
|
|
72
|
-
prreviewbuddy review --fresh review the target again, keeping the existing review
|
|
73
|
-
prreviewbuddy review --review <review> --update
|
|
74
|
-
act on one review by its review ID
|
|
75
|
-
prreviewbuddy review --review <review> --delete
|
|
76
|
-
delete one review and the checkouts it was made in
|
|
77
|
-
|
|
78
|
-
prreviewbuddy open list your reviews and open the index
|
|
79
|
-
prreviewbuddy open <review> open one review
|
|
80
|
-
|
|
81
|
-
prreviewbuddy agents which coding agents you have
|
|
82
|
-
prreviewbuddy config set agent <agent> remember which to use when you do not name one
|
|
83
|
-
prreviewbuddy config set telemetry-upload on|off
|
|
84
|
-
send usage telemetry, or stop. On by default
|
|
85
|
-
prreviewbuddy config get port the port the workspace runs on
|
|
86
|
-
prreviewbuddy config set port <port> move it, from the next start onwards
|
|
87
|
-
|
|
88
|
-
prreviewbuddy uninstall remove everything this put on your machine
|
|
29
|
+
prreviewbuddy review --pr <url>
|
|
89
30
|
```
|
|
90
31
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
`--branch` takes a branch, local or remote, so `--branch origin/feat/foo` reviews what is on the
|
|
95
|
-
remote rather than what is in your clone. A review follows the ref it was made from and keeps
|
|
96
|
-
following it.
|
|
32
|
+
It prints a link to the review straight away. Open it and the workspace fills in as the analysis
|
|
33
|
+
runs.
|
|
97
34
|
|
|
98
|
-
##
|
|
99
|
-
|
|
100
|
-
- **Node 20 or newer**, and **git**.
|
|
101
|
-
- **A coding agent**, installed and signed in. It does the analysis.
|
|
102
|
-
- **[GitHub CLI](https://cli.github.com/)** (`gh`), signed in, if you want the pull request
|
|
103
|
-
conversation read. Without it the review still runs, on the code alone, and says so.
|
|
35
|
+
## Why PR Review Buddy?
|
|
104
36
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
37
|
+
Most AI review tools read a pull request, leave comments and move on. PR Review Buddy is for the
|
|
38
|
+
person who has to decide whether to approve it. It gives you a workspace for understanding the
|
|
39
|
+
change, and the decision stays yours.
|
|
108
40
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
41
|
+
**Understand the change, not just the findings.** A review starts with what the change is for, how
|
|
42
|
+
risky it is and a suggested path through it, so you know where to begin before you read a line of
|
|
43
|
+
diff.
|
|
112
44
|
|
|
113
|
-
|
|
45
|
+
**Inspect the evidence.** Issues and questions point at the code they are about. Investigate one
|
|
46
|
+
and the agent goes back to the repository to confirm or refute it.
|
|
114
47
|
|
|
115
|
-
|
|
116
|
-
|
|
48
|
+
**Keep reviewing.** Ask Buddy AI about the change; it has read the diff and the repository, not
|
|
49
|
+
just your question. Come back to a review tomorrow, update it when the branch moves on, and keep
|
|
50
|
+
the ones you need.
|
|
117
51
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
keeping: the address does not move, and the same link still opens after a restart. Run
|
|
121
|
-
`prreviewbuddy open` from any directory to get back to the list, and
|
|
122
|
-
`prreviewbuddy config set port <port>` if 7726 is taken on your machine.
|
|
52
|
+
**Your checkout is left alone.** Each analysis runs in an isolated checkout pinned to the commit
|
|
53
|
+
being reviewed, so your working tree is never touched and you can carry on working.
|
|
123
54
|
|
|
124
|
-
|
|
125
|
-
what the assistant reads when you ask it questions, and is then removed.
|
|
55
|
+
## What a review looks like
|
|
126
56
|
|
|
127
|
-
|
|
128
|
-
<summary><b>Which base a review is compared against</b> — <code>--base main</code> means
|
|
129
|
-
<code>origin/main</code>, and why</summary>
|
|
57
|
+
**Review → Understand → Investigate → Ask → Decide**
|
|
130
58
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
59
|
+
- **Overview**: what the change is for, its risk, and where to start.
|
|
60
|
+
- **Issues** and **Questions**: what is worth checking, and what to ask the author. Investigate,
|
|
61
|
+
dismiss or answer each one.
|
|
62
|
+
- **Files**: every changed file, grouped under the part of the change it belongs to.
|
|
63
|
+
- **Diagrams**: a change map of how the parts of the change affect each other, and an
|
|
64
|
+
architecture map of where it sits in the repository.
|
|
65
|
+
- **Buddy AI**: follow-up questions, answered from the change itself.
|
|
66
|
+
- **Prepare feedback**: choose the findings you want to raise and copy them as one message for the
|
|
67
|
+
author.
|
|
138
68
|
|
|
139
|
-
|
|
140
|
-
of the branch under review, so git accepts it as a merge base without complaint and every upstream
|
|
141
|
-
commit you have not pulled lands in the review. There is no error, only a much larger diff and
|
|
142
|
-
findings about code the author never touched. Naming the ref in full is how you say you meant your
|
|
143
|
-
own branch.
|
|
69
|
+
## Local by design
|
|
144
70
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
71
|
+
PR Review Buddy uses a coding agent already installed on your machine, and that agent's existing
|
|
72
|
+
authentication: [Claude Code](https://claude.com/claude-code),
|
|
73
|
+
[Codex CLI](https://developers.openai.com/codex/cli) or
|
|
74
|
+
[Gemini CLI](https://github.com/google-gemini/gemini-cli). There is no PR Review Buddy account and no
|
|
75
|
+
model API key.
|
|
150
76
|
|
|
151
|
-
|
|
77
|
+
Your code goes to the agent you chose, exactly as if you had run it yourself. It does not pass
|
|
78
|
+
through us. PR Review Buddy itself sends non-identifying usage telemetry, on by default: first use,
|
|
79
|
+
review start and finish, version, platform, agent, success and duration. Never your code, diffs,
|
|
80
|
+
repository names or review content. `prreviewbuddy config set telemetry-upload off` turns it off,
|
|
81
|
+
and [the privacy page](https://prreviewbuddy.com/privacy) lists every field.
|
|
152
82
|
|
|
153
|
-
|
|
154
|
-
<summary><b>Deleting a review</b></summary>
|
|
83
|
+
## Commands
|
|
155
84
|
|
|
156
85
|
```
|
|
157
|
-
prreviewbuddy review
|
|
86
|
+
prreviewbuddy review review this branch
|
|
87
|
+
prreviewbuddy review --pr <url> review a pull request
|
|
88
|
+
prreviewbuddy open open your previous reviews
|
|
89
|
+
prreviewbuddy help every command
|
|
158
90
|
```
|
|
159
91
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
review and the isolated checkouts it was made in, and touches neither your branch nor its commits.
|
|
163
|
-
It asks first; `--yes` skips that. It refuses while the review is still being analysed, and there is
|
|
164
|
-
no flag past that: stopping an analysis and deleting its record are different decisions.
|
|
165
|
-
|
|
166
|
-
The ID is the one `prreviewbuddy open` prints beside each review. It is required, because a branch
|
|
167
|
-
can name several reviews once you have used `--fresh`.
|
|
168
|
-
|
|
169
|
-
You can also delete from the list in your browser: the `...` menu on a review offers **Copy review
|
|
170
|
-
ID** and **Delete review**, and the menu on a card deletes every review of that branch at once.
|
|
171
|
-
|
|
172
|
-
</details>
|
|
92
|
+
Run `prreviewbuddy help` for the full command reference, and `prreviewbuddy review --help` for
|
|
93
|
+
every option a review takes. How reviews, updates and lenses work is under Help in the workspace.
|
|
173
94
|
|
|
174
|
-
|
|
175
|
-
<summary><b>Usage telemetry</b> — what is sent, and how to stop it</summary>
|
|
176
|
-
|
|
177
|
-
Two events reach a server we run, on by default since 0.30.0: `review_started` and
|
|
178
|
-
`review_finished`. Between them they carry a random UUID generated on your
|
|
179
|
-
machine, the CLI version, the platform, which agent ran the analysis, a timestamp, whether it
|
|
180
|
-
succeeded and how long it took. That is the whole list, and the server refuses any field that is
|
|
181
|
-
not on it rather than accepting the request and dropping what it does not recognise.
|
|
182
|
-
|
|
183
|
-
Never sent: your code, diffs, prompts, questions, findings, file paths, repository or branch names,
|
|
184
|
-
or the counts of any of those. The identifier is an installation rather than a person, so a laptop,
|
|
185
|
-
a desktop and a CI machine are three, and nothing joins them up. No IP address or user agent is
|
|
186
|
-
stored against an event, and rows are deleted after 90 days.
|
|
187
|
-
|
|
188
|
-
```
|
|
189
|
-
prreviewbuddy config get telemetry-upload what it is doing now
|
|
190
|
-
prreviewbuddy config set telemetry-upload off
|
|
191
|
-
PRB_TELEMETRY=off turns off the local log as well
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
PR Review Buddy also keeps a fuller usage log on your own machine, at
|
|
195
|
-
`~/.prreviewbuddy/events.jsonl`. It is yours to read or delete, and only the two events above ever
|
|
196
|
-
leave the machine. [The published field table](https://prreviewbuddy.com/privacy) has the detail.
|
|
95
|
+
## What you need
|
|
197
96
|
|
|
198
|
-
|
|
97
|
+
- **Node 20 or newer**, and **git**.
|
|
98
|
+
- **A coding agent**, installed and signed in. `prreviewbuddy agents` shows which you have.
|
|
99
|
+
- **[GitHub CLI](https://cli.github.com/)** (`gh`), signed in, to read a pull request's
|
|
100
|
+
conversation. Without it the review still runs, on the code alone, and says so.
|
|
199
101
|
|
|
200
102
|
## Uninstall
|
|
201
103
|
|
|
@@ -204,20 +106,10 @@ prreviewbuddy uninstall
|
|
|
204
106
|
npm rm -g prreviewbuddy
|
|
205
107
|
```
|
|
206
108
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
yourself leaves entries pointing at nothing in repositories you had no reason to suspect.
|
|
210
|
-
`uninstall` removes the checkouts, clears those entries in the repositories that have any, and then
|
|
211
|
-
removes the store. It asks first, and it refuses while a review is still being made.
|
|
212
|
-
|
|
213
|
-
`prreviewbuddy uninstall --keep-reviews` clears the runtime state and leaves your reviews and
|
|
214
|
-
settings in `~/.prreviewbuddy`. `--yes` skips the confirmation, and `--force` stops a review that is
|
|
215
|
-
still being made rather than refusing over it.
|
|
216
|
-
|
|
217
|
-
Removing the package itself is the second line, and it is yours to run: a command that deleted the
|
|
218
|
-
install it was running from would depend on whichever package manager put it there.
|
|
109
|
+
Run the first line first: it removes your reviews and the isolated checkouts, including the git
|
|
110
|
+
bookkeeping they left in your repositories.
|
|
219
111
|
|
|
220
112
|
---
|
|
221
113
|
|
|
222
|
-
**Prefer
|
|
223
|
-
|
|
114
|
+
**Prefer to stay in GitHub?** PR Review Buddy is also a Chrome extension, for pull requests in your
|
|
115
|
+
browser. [prreviewbuddy.com](https://prreviewbuddy.com)
|
|
@@ -503,6 +503,7 @@ var claudeAgent = {
|
|
|
503
503
|
displayName: "Claude Code",
|
|
504
504
|
provider: "anthropic",
|
|
505
505
|
modelSelectionHelp: { command: "claude --help" },
|
|
506
|
+
setupNotes: ["With several Claude profiles, CLAUDE_CONFIG_DIR is respected: set it in the", "shell you review from. A review keeps the profile it was started with."],
|
|
506
507
|
captureEnv: captureEnv$3,
|
|
507
508
|
/**
|
|
508
509
|
* Which tool to sign in to, and which profile of it.
|
|
@@ -3276,6 +3277,14 @@ function describeAuthorship(changeSet, pullRequest) {
|
|
|
3276
3277
|
}
|
|
3277
3278
|
//#endregion
|
|
3278
3279
|
//#region ../../packages/review-harness/src/domain/ai_review/review_session.ts
|
|
3280
|
+
/** The explanation of this finding, if the reviewer has asked for one. */
|
|
3281
|
+
function simpleExplanationOf(session, kind, id) {
|
|
3282
|
+
return session.simpleExplanations?.find((entry) => entry.kind === kind && entry.id === id);
|
|
3283
|
+
}
|
|
3284
|
+
/** The list with this finding's explanation replaced, never a second one beside it. */
|
|
3285
|
+
function withSimpleExplanation(entries, explanation) {
|
|
3286
|
+
return [...(entries ?? []).filter((entry) => !(entry.kind === explanation.kind && entry.id === explanation.id)), explanation];
|
|
3287
|
+
}
|
|
3279
3288
|
/**
|
|
3280
3289
|
* The session an analysis failed to produce.
|
|
3281
3290
|
*
|
|
@@ -4421,9 +4430,14 @@ var WORKSPACES_DIR = join(STORE_ROOT, "workspaces");
|
|
|
4421
4430
|
*
|
|
4422
4431
|
* Named so that a long run that rewrites the session, an update above all, can put these back from
|
|
4423
4432
|
* the copy on disk when it saves: the reviewer may have answered a question or dismissed a finding
|
|
4424
|
-
* in the minutes it took. `handleState`
|
|
4433
|
+
* in the minutes it took. `handleState` writes the first two and nothing else; `handleAsk` writes
|
|
4434
|
+
* `simpleExplanations`, and only when the reviewer asked for one.
|
|
4425
4435
|
*/
|
|
4426
|
-
var REVIEWER_SESSION_FIELDS = [
|
|
4436
|
+
var REVIEWER_SESSION_FIELDS = [
|
|
4437
|
+
"answeredQuestionIds",
|
|
4438
|
+
"dismissedIssues",
|
|
4439
|
+
"simpleExplanations"
|
|
4440
|
+
];
|
|
4427
4441
|
/**
|
|
4428
4442
|
* A session a long run is about to write, with the reviewer's own fields taken from disk instead.
|
|
4429
4443
|
*
|
|
@@ -16694,4 +16708,4 @@ function lineageIds(id) {
|
|
|
16694
16708
|
return [.../* @__PURE__ */ new Set([id, ...lineage.map((review) => review.id)])];
|
|
16695
16709
|
}
|
|
16696
16710
|
//#endregion
|
|
16697
|
-
export { MAX_WORKSPACE_PORT as $, isClaimed as $n,
|
|
16711
|
+
export { MAX_WORKSPACE_PORT as $, isClaimed as $n, resolveBase as $r, markReadForReview as $t, relativeTime as A, isWorktreeHeld as An, parseLifecycle as Ar, partFiles as At, readIndexToken as B, reviewedShaOf as Bn, issuesOutstanding as Br, isArchitectureId as Bt, track as C, originRemote as Cn, activityAttributes as Cr, mapRuntimes as Ct, endRun as D, MANAGED_ROOT as Dn, lifecycleItemLabel as Dr, ARCHITECTURE_DIR as Dt, completeRun as E, ReviewBeingDeletedError as En, lifecycleChip as Er, describeRuntimes as Et, runBatch as F, describeSubject as Fn, queueStamp as Fr, trackedFiles as Ft, reviewsUrl as G, loadJob as Gn, simpleExplanationOf as Gr, createArchitectureNotification as Gt, clearServerRecordOwnedBy as H, endedAt as Hn, reviewerDispositions as Hr, announceJob as Ht, activateQueued as I, findExistingReview as In, readQueue as Ir, ownersOf as It, stopChild as J, isLiveJob as Jn, WITHHELD_REASON as Jr, eventName as Jt, serverEntryExists as K, saveJob as Kn, withSimpleExplanation as Kr, createPrState as Kt, compactQueue as L, checkCodeFreshness as Ln, doneVerb as Lr, QUOTE_LIMITS as Lt, extractPullRequestLinks as M, removeWorktree as Mn, queueAdd as Mr, repositoryKey as Mt, parsePullRequestLink as N, requestJobStop as Nn, queueAddMany as Nr, storeArchitecture as Nt, reportRun as O, createWorktree as On, lifecyclePill as Or, checkArchitecture as Ot, unsupportedReason as P, describeMovement as Pn, queueRemove as Pr, storedScopes as Pt, DEFAULT_WORKSPACE_PORT as Q, clearClaim as Qn, isCommitReview as Qr, markRead as Qt, queueForReview as R, checkReview as Rn, isIssueOutstanding as Rr, REPOSITORY_SCOPE as Rt, isDriving as S, remoteHost as Sn, LIFECYCLES as Sr, waitingHistory as St, beginRun as T, modelHelpLines as Tn, isLifecycle as Tr, RUNTIME_WORDS as Tt, ensureServer as U, fail as Un, processDiscussion as Ur, branchOf as Ut, bootstrapUrl as V, allJobs as Vn, questionsOutstanding as Vr, writeJsonAtomically as Vt, readServerRecord as W, isTerminal as Wn, recommendationsOf as Wr, subjectOf as Wt, workspaceUrl as X, progressSteps as Xn, resolveTarget as Xr, listNotifications as Xt, stopServer as Y, phasesFor as Yn, kissOutcome as Yr, headline as Yt, writeServerRecord as Z, purposeOf as Zn, DetachedHeadError as Zr, markAllRead as Zt, liveUpdateFor as _, extractJsonText as _n, reviewedRepositories as _r, telemetryUploadConsent as _t, wasBlocked as a, writeAgentPreference as ai, withUsageRecorded as an, kissDecisionRefusal as ar, failureOf as at, recordKissRun as b, forgeResolver as bn, workspaceRevision as br, PACKAGE_NAME as bt, RefreshUnavailableError as c, AGENT_IDS as ci, authorPreview as cn, lineagePosition as cr, reanalyseReview as ct, mergeUpdateInto as d, detectAgents as di, renderMarkdown as dn, mutateWorkspace as dr, append as dt, git as ei, pruneNotifications as en, decideKissRecommendation as er, MIN_WORKSPACE_PORT as et, updateReview as f, AgentCancelledError as fi, CODE_BLOCK_CLASS as fn, positionInLineage as fr, readEvents as ft, UpdateAlreadyRunningError as g, asString as gn, reviewedCommit as gr, recordTelemetryUploadConsent as gt, askCheckout as h, renderInlineText as hn, recentWorkspaces as hr, deliver as ht, liveJobsFor as i, readAgentPreference as ii, unreadCount as in, indexReviewGroups as ir, writePortPreference as it, batchIdentity as j, readMarker as jn, sectionOf as jr, readArchitecture as jt, stopRun as k, holdWorktree as kn, offersLifecycle as kr, loadArchitecture as kt, cancelUpdate as l, agentById as li, hasAuthorContent as ln, loadWorkspace as lr, runJob as lt, isUnchanged as m, escapeHtml as mn, previousKissResult as mr, stamp as mt, deleteReview as n, resolveModel as ni, removeNotification as nn, groupByLineage as nr, resolveWorkspacePort as nt, discardJob as o, CONFIG_PATH as oi, EXPLAIN_SIMPLY_PROMPT as on, kissDecisionsOf as or, prepareReview as ot, refreshPrContext as p, AgentUnavailableError as pi, CODE_COPY_CLASS as pn, presentedKissRunOf as pr, record as pt, spawnServer as q, PHASES as qn, describeAuthorship as qr, createPrUpdate as qt, lineageIds as r, clearAgentPreference as ri, toneOf as rn, indexKeptIds as rr, statedWorkspacePort as rt, FETCH_TIMEOUT_MS as s, STORE_ROOT as si, UNESTABLISHED_MOTIVATION as sn, latestKissRun as sr, settleReview as st, deleteLineage as t, resolveAgent as ti, readNotification as tn, followedRefName as tr, parseWorkspacePort as tt, cancellableHere as u, agentFor as ui, GITHUB_MARKDOWN as un, matchingWorkspaceIds as ur, startJob as ut, runningJobs as v, objectWithAnyOf as vn, summarise as vr, telemetryUploadEnabled as vt, RUN_KINDS as w, fillFileUrlTemplate as wn, activityLabel as wr, recordRuntimeBestEffort as wt, startKissJob as x, forgeFor as xn, workspaceStamps as xr, feedbackUrl as xt, agentEnvOf as y, claimRequestUrl as yn, touchWorkspace as yr, BUILD_VERSION as yt, settleQueue as z, followedBranch as zn, isQuestionOutstanding as zr, ancestorsOf as zt };
|