prreviewbuddy 0.90.0 → 0.92.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 +58 -0
- package/dist/main.js +14 -2
- package/dist/{mcp_tools-CSj5vcSE.js → mcp_tools-BKPpd9dN.js} +264 -25
- package/dist/server.js +298 -70
- package/package.json +1 -1
- package/static/shell.css +31 -10
- package/static/sidebar.css +198 -6
- package/static/workspace.js +58 -45
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,63 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.92.0
|
|
4
|
+
|
|
5
|
+
**Older issues catch up on Update.** An issue from an earlier review that is still outstanding now
|
|
6
|
+
gains its summary the next time Update finds new commits or new discussion. The summary is written
|
|
7
|
+
from the evidence the review already holds plus what the update read, and may land in any of the
|
|
8
|
+
four groups. It is a rewording, not a re-check: confidence, severity and the technical account stay
|
|
9
|
+
as they were. Resolved, dismissed and closed issues keep the card they had, and an Update that finds
|
|
10
|
+
nothing new still makes no analysis and changes nothing.
|
|
11
|
+
|
|
12
|
+
**To fix.** Besides **To verify** and **To decide**, a card can now name the change that would
|
|
13
|
+
correct it, marked **To fix**, when the evidence supports one. The line above the issues counts
|
|
14
|
+
fixes separately. Issues are grouped by what they cause and how well that is shown, never by the
|
|
15
|
+
kind of file: a wrong step in a recovery runbook can be a failure.
|
|
16
|
+
|
|
17
|
+
**Questions lead with what they mean.** Each question from a new analysis opens with the question in
|
|
18
|
+
plain terms, why the answer matters, and what is needed. The original question, its reasoning and its
|
|
19
|
+
files are under **Technical context** on the card. Answers so far, including a partial one, stay in
|
|
20
|
+
view. Updates keep each question's framing true, restate it to name only what is still open when part
|
|
21
|
+
of it is answered, and write one for an older question still open.
|
|
22
|
+
|
|
23
|
+
**No leftover notes.** When an update answers a question or changes an issue's status without
|
|
24
|
+
saying anything new about it, the card no longer shows the previous round's note beside the new
|
|
25
|
+
status. Before, a question could read as answered with "this commit did not change it" underneath.
|
|
26
|
+
|
|
27
|
+
**Quieter cards.** The age of the pull request discussion is one line, "PR discussion checked 2 days
|
|
28
|
+
ago", with its explanation one click away and **Re-check in PR context** beside it. Cards are
|
|
29
|
+
tighter, and **Technical details** shares a row with the card's actions.
|
|
30
|
+
|
|
31
|
+
For coding agents, `list_findings` and `findings --json` now carry each issue's `confidence` and
|
|
32
|
+
each question's `framing`, and `next.kind` may be `fix`. `get_finding` carries the same, beside the
|
|
33
|
+
original technical text.
|
|
34
|
+
|
|
35
|
+
## 0.91.1
|
|
36
|
+
|
|
37
|
+
**Issues lead with what they mean.** Each issue from a new analysis now opens with its consequence:
|
|
38
|
+
a short title saying what can happen, a sentence or two on when and how, and, when there is a
|
|
39
|
+
specific one, the step that would settle it, marked **To verify** or **To decide**. The technical
|
|
40
|
+
title, the reasoning, the code location and the history are under **Technical details** on the
|
|
41
|
+
card, one click (or Enter) away, with nothing to wait for.
|
|
42
|
+
|
|
43
|
+
Outstanding issues are grouped by the decision they ask of you: **Failures**, **Possible risks**,
|
|
44
|
+
**Intent to confirm** and **Maintenance**, each ordered by severity. The group comes from the
|
|
45
|
+
evidence the analysis read, not from its severity or how confident it is; both are still shown on
|
|
46
|
+
every card. The pane opens with one sentence on what the change touches, a count of what is
|
|
47
|
+
outstanding, and buttons to jump to each group. Folding a group is remembered for the next review.
|
|
48
|
+
|
|
49
|
+
Resolved and dismissed issues stay in the closed list at the bottom. An issue the new commits fixed
|
|
50
|
+
leads with what the code now does, when the update could see it in the code; one settled by a
|
|
51
|
+
comment never claims a fix. Updates keep each issue's consequence true: they are shown it, and
|
|
52
|
+
restate or withdraw it when the new commits change what it describes.
|
|
53
|
+
|
|
54
|
+
Reviews made before this are shown as they were, and are not rewritten. Beside the new groups their
|
|
55
|
+
issues sit under **Other issues**; on their own they need no heading.
|
|
56
|
+
|
|
57
|
+
For coding agents, `list_findings` and `get_finding` (and `prreviewbuddy findings --json` and
|
|
58
|
+
`finding --json`) carry each issue's `consequence` and, on an issue the code resolved,
|
|
59
|
+
`resolved_behaviour`, so a list of findings can be triaged without fetching each one.
|
|
60
|
+
|
|
3
61
|
## 0.90.0
|
|
4
62
|
|
|
5
63
|
**Connect your coding agent from Settings.** A new **AI integrations** section in Settings shows,
|
package/dist/main.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as readAskRequest, $i as explanationOf, Ar as attemptIdOf, At as UpdateAlreadyRunningError, Bt as append, Dt as parkedUpdateRefusal, E as relativeTime, Ea as
|
|
2
|
+
import { $ as readAskRequest, $a as runnableAgents, $i as explanationOf, Aa as TargetError, Ar as attemptIdOf, At as UpdateAlreadyRunningError, Ba as agentIdOf, Bt as append, Da as resolveTarget, Dt as parkedUpdateRefusal, E as relativeTime, Ea as kissOutcome, Er as forgeResolver, F as spawnRunner, Ft as prepareReview, G as reviewTag, Ga as STORE_ROOT, Gr as isClaimed, Gt as recordTelemetryUploadConsent, H as findingRef, Ha as readAgentPreference, Hr as purposeOf, I as applyUpdate, Ia as git, It as settleReview, J as forgetAskRequest, Ji as reviewerDispositions, Jr as followedRefName, Jt as BUILD_VERSION, Ka as AGENT_IDS, Kt as telemetryUploadConsent, L as modelProvenanceOf, Lr as PHASES, Lt as reanalyseReview, Mt as runningJobs, Na as AmbiguousRefError, Nr as isTerminal$1, Nt as failureOf, P as runDetached, Pr as loadJob, Qa as parkedReason, Ra as resolveAgent, T as runBatch, Ta as WITHHELD_REASON, Ua as writeAgentPreference, Ui as isIssueOutstanding, Ur as clearClaim, Ut as stamp, Vr as progressSteps, Wa as CONFIG_PATH, Wi as isQuestionOutstanding, Wr as driverGone, Wt as deliver, Xa as detectAgents, Y as interruption, Ya as agentIdentityOf, Yi as verdictClosure, Yt as PACKAGE_NAME, Z as isTerminalAsk, Za as isAgentId, _t as parseWorkspacePort, at as healthyPort, br as findExistingReview, bt as writePortPreference, ca as findingAssessment, di as reviewedRepositories, dr as MANAGED_ROOT, dt as stopServer, et as recordAskAccepted, fi as summarise, ft as workspaceUrl, gr as removeWorktree, gt as MIN_WORKSPACE_PORT, hr as readMarker, ht as MAX_WORKSPACE_PORT, i as deleteReview$1, ii as matchingWorkspaceIds, it as ensureServer, j as RUNNER_KINDS, jt as liveUpdateFor, k as queueForReview, kr as allJobs, li as recentWorkspaces, mi as workspaceRevision, mt as DEFAULT_WORKSPACE_PORT, ni as lineagePosition, nt as bootstrapUrl, o as liveJobsFor, oi as positionInLineage, ot as readServerRecord, q as endAskRequest, qa as agentById, qt as telemetryUploadEnabled, ri as loadWorkspace, s as wasBlocked, sr as modelHelpLines, st as reviewsUrl, t as MCP_SERVER_INFO_NAME, tt as readIndexToken, u as recordKissRun, ua as findingStatus, ui as reviewedCommit, vr as describeMovement, x as batchIdentity, xt as COMMIT_REVIEW_CANNOT_UPDATE, yr as describeSubject, yt as statedWorkspacePort, za as resolveModel, zt as startJob } from "./mcp_tools-BKPpd9dN.js";
|
|
3
3
|
import { basename, dirname, isAbsolute, join, resolve } from "node:path";
|
|
4
4
|
import { spawn } from "node:child_process";
|
|
5
5
|
import { existsSync, mkdirSync, readdirSync, realpathSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
@@ -1044,6 +1044,19 @@ function summaryOf(tag, entry, judge) {
|
|
|
1044
1044
|
...finding.file ? { location: {
|
|
1045
1045
|
path: finding.file,
|
|
1046
1046
|
...issue?.line ? { line: issue.line } : {}
|
|
1047
|
+
} } : {},
|
|
1048
|
+
...issue?.consequence ? { consequence: {
|
|
1049
|
+
title: issue.consequence.title,
|
|
1050
|
+
scenario: issue.consequence.scenario,
|
|
1051
|
+
...issue.consequence.group ? { group: issue.consequence.group } : {},
|
|
1052
|
+
...issue.consequence.next ? { next: { ...issue.consequence.next } } : {}
|
|
1053
|
+
} } : {},
|
|
1054
|
+
...issue?.resolvedBehaviour && status === "resolved" ? { resolved_behaviour: issue.resolvedBehaviour } : {},
|
|
1055
|
+
...issue?.confidence ? { confidence: issue.confidence } : {},
|
|
1056
|
+
...question?.framing ? { framing: {
|
|
1057
|
+
question: question.framing.question,
|
|
1058
|
+
why: question.framing.why,
|
|
1059
|
+
...question.framing.needed ? { needed: question.framing.needed } : {}
|
|
1047
1060
|
} } : {}
|
|
1048
1061
|
};
|
|
1049
1062
|
}
|
|
@@ -1081,7 +1094,6 @@ function detailOf(workspace, tag, entry, judge) {
|
|
|
1081
1094
|
...section ? { title: section.title } : {}
|
|
1082
1095
|
} } : {},
|
|
1083
1096
|
...finding.relatedFiles?.length ? { related_files: finding.relatedFiles } : {},
|
|
1084
|
-
...issue?.confidence ? { confidence: issue.confidence } : {},
|
|
1085
1097
|
...question?.category ? { category: question.category } : {},
|
|
1086
1098
|
...issue?.existingDiscussion ? { existing_discussion: {
|
|
1087
1099
|
thread_id: issue.existingDiscussion.threadId,
|