prreviewbuddy 0.95.2 → 0.96.2

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,74 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.96.2
4
+
5
+ **Security: a reviewed repository's Claude settings no longer reach the review.** Claude Code runs in
6
+ a worktree of the change under review, and until now it also loaded that repository's committed
7
+ `.claude/settings.json`. A pull request could add hooks there that ran as you, on your machine, as
8
+ soon as you reviewed it, and could widen which tools the review agent was allowed. Claude now loads
9
+ only your own settings (`--setting-sources user`). Your own hooks and settings still apply.
10
+
11
+ The reviewed repository's `CLAUDE.md` is no longer loaded as instructions either, because the pull
12
+ request can change it too. The review agent can still open it like any other file in the change,
13
+ but it no longer picks up the project's conventions automatically. Your own `CLAUDE.md` still
14
+ applies.
15
+
16
+ **Security: Codex reviews no longer reach your connected apps, plugins or the web.** Codex already
17
+ ran in its read-only sandbox with your own MCP servers dropped, but your ChatGPT-connected apps and
18
+ plugins still reached it. Those include GitHub, with tools that can merge a pull request or commit,
19
+ and Google Drive, with a tool that shares files. Their calls run on OpenAI's side, where the sandbox
20
+ does not reach, so a pull request that talked the review agent into using them could have acted on
21
+ your accounts. Codex review runs now start with plugins, connected apps and web search turned off.
22
+ The reviewed repository's `AGENTS.md` is no longer loaded as instructions, for the same reason as
23
+ `CLAUDE.md`. Its `.codex/` settings and hooks never reached a review, and still do not.
24
+
25
+ If your Claude Code is too old to know an option PR Review Buddy passes, the review now says so and
26
+ tells you to update it with `claude update`, instead of showing only Claude Code's own error. A
27
+ Codex too old for the switches above is told the same, with `codex update`.
28
+
29
+ **Codex reviews need Codex 0.122.0 or newer.** Older Codex releases ignore the setting that turns
30
+ web search off instead of refusing it, so PR Review Buddy now checks the version before it starts
31
+ a Codex review. If Codex is older than 0.122.0, or its version cannot be read, nothing is started
32
+ and you are told which version is needed and how to update. On a Mac this changes nothing in
33
+ practice: macOS already refuses to open Codex releases older than 0.132.0.
34
+
35
+ ## 0.96.1
36
+
37
+ **Link a dependency in Quick Review.** The fields now look like the rest of the workspace. The review
38
+ field is a search box: type part of a title or number to narrow the reviews of this repository,
39
+ pick one with the arrow keys and Enter or with a click, and press Enter again to link it. Escape
40
+ closes the list without leaving Quick Review.
41
+
42
+ ## 0.96.0
43
+
44
+ **Quick Review.** Press Space on a review in the Reviews list, or choose Quick Review from its menu
45
+ or above the list, to read its brief in a window over the list: why the change exists, how things
46
+ work today and what changes, what it depends on and what depends on it, its issues and questions by
47
+ impact, what needs your decision, and the commit it describes with whether newer commits have
48
+ arrived. J and K scroll, H and L (or the arrow keys) go to the previous and next review in the list
49
+ as filtered and sorted, M opens the review's menu, and Escape returns to the list where you left it.
50
+ Opening a brief calls no model and marks nothing as read or reviewed. The review menu on the list
51
+ moves from Space to M, which the first Quick Review says once, and each control shows its key. Deleting a
52
+ review from its menu in Quick Review keeps Quick Review open on the next review.
53
+
54
+ **Your outcome.** Record Reviewed: no concerns, Needs changes, Needs a decision / answer, Needs
55
+ deeper review or Later, kept in this workspace only and never sent to the forge. The first three
56
+ also mark the review Reviewed and set the point that "Since your last review" is measured from:
57
+ the new commits, which findings were addressed in code or marked resolved through discussion, what
58
+ is new and what is still open. Needs deeper review and Later are shown beside your verdict and never
59
+ replace it. An outcome recorded on an earlier commit or an earlier analysis of
60
+ the same commit is shown as such, and one recorded against a brief that has since changed is
61
+ refused and the brief refreshed.
62
+
63
+ **Dependencies.** Stacked pull requests are detected from the base and head repository and branch,
64
+ with unclear cases offered as "Possibly stacked". You can link one review to another, and a
65
+ description that says it depends on a reviewed pull request is offered as a suggestion to confirm
66
+ or dismiss. A stacked branch can be marked Not a dependency, kept on view with what was detected
67
+ and undone, and detected afresh if either branch changes.
68
+
69
+ **Before and after.** New analyses and updates describe how the code behaves at the base and how
70
+ it behaves after the change. Earlier reviews say this isn't available rather than guessing.
71
+
3
72
  ## 0.95.2
4
73
 
5
74
  `review --no-wait` without `--json` no longer prints advice meant for MCP clients, such as tool
package/dist/main.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { $a as TargetError, $r as findExistingReview, $t as statedWorkspacePort, An as BUILD_VERSION, Br as modelHelpLines, Bt as readServerRecord, Ci as driverGone, Di as followedRefName, Dn as recordTelemetryUploadConsent, Dt as endAskRequest, E as relativeTime, En as deliver$1, Eo as cleanName, Fi as loadWorkspace, Fo as STORE_ROOT, Ft as readIndexToken, Gt as stopServer, Hi as reviewedCommit, I as collectionHash, Ii as matchingWorkspaceIds, It as bootstrapUrl, Ja as WITHHELD_REASON, Jr as readMarker, Jt as DEFAULT_WORKSPACE_PORT, Ki as workspaceRevision, Kt as workspaceUrl, Na as findingStatus, Nt as readAskRequest, On as telemetryUploadConsent, Ot as forgetAskRequest, Pi as lineagePosition, Pt as recordAskAccepted, Qr as describeSubject, Ri as positionInLineage, Rt as ensureServer, Sa as explanationOf, Si as clearClaim, Sn as append, St as findingRef, T as runBatch, Tn as stamp, Tt as reviewTag, Ui as reviewedRepositories, Vi as recentWorkspaces, Vt as reviewsUrl, Wi as summarise, Wr as MANAGED_ROOT, Xa as resolveTarget, Xt as MIN_WORKSPACE_PORT, Ya as kissOutcome, Yr as removeWorktree, Yt as MAX_WORKSPACE_PORT, Zr as describeMovement, Zt as parseWorkspacePort, _a as reviewerDispositions, _n as prepareReview, _o as agentIdentityOf, _t as modelProvenanceOf, ai as forgeResolver, ao as git, bi as progressSteps, bo as parkedReason, ci as allJobs, co as resolveModel, do as readAgentPreference, dt as RUNNER_KINDS, en as writePortPreference, et as deliver, fa as isIssueOutstanding, fi as isTerminal$1, fn as UpdateAlreadyRunningError, fo as writeAgentPreference, gi as PHASES, gt as applyUpdate, hn as failureOf, ho as agentById, ht as spawnRunner, i as deleteReview$1, ja as findingAssessment, jn as PACKAGE_NAME, jt as isTerminalAsk, kn as telemetryUploadEnabled, kt as interruption, li as attemptIdOf, lo as agentIdOf, lt as queueForReview, mn as runningJobs, mo as AGENT_IDS, mt as runDetached, no as AmbiguousRefError, nt as missedDelivery, o as liveJobsFor, pa as isQuestionOutstanding, pi as loadJob, pn as liveUpdateFor, po as CONFIG_PATH, rt as openDestination, s as wasBlocked, sn as parkedUpdateRefusal, so as resolveAgent, t as MCP_SERVER_INFO_NAME, tn as COMMIT_REVIEW_CANNOT_UPDATE, tt as isDelivered, u as recordKissRun, va as verdictClosure, vn as settleReview, vo as detectAgents, wi as isClaimed, x as batchIdentity, xi as purposeOf, xn as startJob, xo as runnableAgents, yn as reanalyseReview, yo as isAgentId, zt as healthyPort } from "./mcp_tools-DDbcXys2.js";
2
+ import { $r as describeSubject, An as telemetryUploadEnabled, Ao as readAgentPreference, At as interruption, Bi as matchingWorkspaceIds, Bo as runnableAgents, Bt as healthyPort, Ci as clearClaim, Cn as append, Ct as findingRef, Dn as deliver$1, Do as resolveModel, E as relativeTime, En as stamp, Eo as resolveAgent, Et as reviewTag, Ft as recordAskAccepted, Go as cleanName, Gr as MANAGED_ROOT, Ht as reviewsUrl, Ia as reviewerDispositions, Io as agentIdentityOf, It as readIndexToken, Ji as reviewedRepositories, Ki as recentWorkspaces, Kt as stopServer, L as collectionHash, La as verdictClosure, Lo as detectAgents, Lt as bootstrapUrl, Ma as isQuestionOutstanding, Mn as PACKAGE_NAME, Mo as CONFIG_PATH, Mt as isTerminalAsk, No as AGENT_IDS, Oi as followedRefName, On as recordTelemetryUploadConsent, Oo as agentIdOf, Ot as endAskRequest, Po as agentById, Pt as readAskRequest, Qa as findingStatus, Qr as describeMovement, Qt as parseWorkspacePort, Ri as lineagePosition, Ro as isAgentId, Si as purposeOf, Sn as startJob, T as runBatch, Ti as isClaimed, Ui as positionInLineage, Va as explanationOf, Vr as modelHelpLines, Vt as readServerRecord, Xa as findingAssessment, Xr as removeWorktree, Xt as MAX_WORKSPACE_PORT, Yi as summarise, Yr as readMarker, Yt as DEFAULT_WORKSPACE_PORT, Zi as workspaceRevision, Zt as MIN_WORKSPACE_PORT, _i as PHASES, _t as applyUpdate, bn as reanalyseReview, cn as parkedUpdateRefusal, ei as findExistingReview, en as statedWorkspacePort, ft as RUNNER_KINDS, gn as failureOf, gt as spawnRunner, hn as runningJobs, ho as resolveTarget, ht as runDetached, i as deleteReview$1, it as openDestination, ja as isIssueOutstanding, jn as BUILD_VERSION, jo as writeAgentPreference, kn as telemetryUploadConsent, kt as forgetAskRequest, li as allJobs, mi as loadJob, mn as liveUpdateFor, mo as kissOutcome, nn as COMMIT_REVIEW_CANNOT_UPDATE, nt as isDelivered, o as liveJobsFor, oi as forgeResolver, pi as isTerminal$1, pn as UpdateAlreadyRunningError, po as WITHHELD_REASON, qi as reviewedCommit, qt as workspaceUrl, rt as missedDelivery, s as wasBlocked, t as MCP_SERVER_INFO_NAME, tn as writePortPreference, ts as STORE_ROOT, tt as deliver, u as recordKissRun, ui as attemptIdOf, ut as queueForReview, vn as prepareReview, vo as TargetError, vt as modelProvenanceOf, wi as driverGone, wo as git, x as batchIdentity, xi as progressSteps, xo as AmbiguousRefError, yn as settleReview, zi as loadWorkspace, zo as parkedReason, zt as ensureServer } from "./mcp_tools-DmQKsAkC.js";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import { existsSync, mkdirSync, readdirSync, realpathSync, rmSync, statSync, writeFileSync } from "node:fs";
5
5
  import { basename, dirname, isAbsolute, join, resolve } from "node:path";