prreviewbuddy 0.86.7 → 0.87.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,54 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.87.2
4
+
5
+ **The compact sidebar shows what is left on Issues and Questions.** With the sidebar folded to its
6
+ icons, Issues and Questions now carry the same mark the expanded rows do, on the corner of the icon:
7
+ how many are still open, a green tick once every one has been dealt with, or 0 where the analysis
8
+ found none. Nothing is shown while the first analysis is still running.
9
+
10
+ **The compact sidebar has one way to see more: sliding out.** Resting the pointer on it, or tabbing
11
+ into it, slides it out to its full width as before, and it stays out while the pointer or the focus
12
+ is anywhere inside it. The small name labels that were meant to appear beside its icons could never
13
+ be seen, because the sidebar slid out first, and have been removed. Screen readers still hear every
14
+ row's name, New review's included.
15
+
16
+ ## 0.87.1
17
+
18
+ **Every page's title sits in the same place.** Reviews, Runs, Activity, Settings and Help now share
19
+ one title row of the same height, with the page's name at the left edge and its actions, like Mark
20
+ all read, at the right. Search and filters on Reviews and Runs sit on a row of their own beneath it,
21
+ lined up with the list, so moving between pages changes only whether that row is there. In a very
22
+ narrow window Activity keeps Mark all read and lets the unread line go first.
23
+
24
+ **Settings no longer has an All reviews button.** Settings is reached from the sidebar like every
25
+ other page, so it no longer offers a way back as if it sat under Reviews.
26
+
27
+ ## 0.87.0
28
+
29
+ **The sidebar keeps its places where they are.** New review, Reviews, Runs, Activity, Settings and
30
+ Help now sit at the top of the sidebar on every page, a review's included, so opening a review no
31
+ longer pushes them down. What belongs to the open review follows under a Current review heading:
32
+ Overview (Progress while the first analysis runs), the review path, Diagrams, Issues, Questions,
33
+ Files, PR context and KISS. In a short window that section scrolls by itself, and Send feedback
34
+ and Collapse sidebar stay at the bottom.
35
+
36
+ **The sidebar starts right under the top bar on every page.** A review's bar and its banners, and
37
+ the bar at the top of Reviews, Runs and the other pages, now sit beside the sidebar instead of above
38
+ it, so the sidebar's links are at exactly the same place on screen whichever page is open.
39
+
40
+ **Runs says how much is running.** A purple count beside Runs shows how many runs are in
41
+ progress, and the Runs icon at the top of the window shows it too, so it can still be seen with
42
+ the sidebar collapsed or hidden, or in a narrow window. It updates by itself as runs start and
43
+ finish, and queued work is not counted. Questions to Buddy AI, diagrams being drawn and
44
+ architecture maps being made now appear under In progress on the Runs page while they run. A map
45
+ being made says which part of the repository it covers and the step it is on, and opens the review
46
+ it was started from with that part selected.
47
+
48
+ **The collapsed sidebar keeps its bottom links in a short window.** Send feedback and Expand
49
+ sidebar stay on screen; review rows that do not fit are reached by sliding the sidebar out, where
50
+ they scroll.
51
+
3
52
  ## 0.86.7
4
53
 
5
54
  **Nothing jumps as the compact sidebar slides out.** The compact sidebar keeps room for the Review
@@ -18396,6 +18396,10 @@ function endRun(run) {
18396
18396
  const key = keyOf(run.workspaceId, run.kind);
18397
18397
  if (runs.get(key) === run) runs.delete(key);
18398
18398
  }
18399
+ /** Every run held now, whatever its state. The Runs page decides which of them are executing. */
18400
+ function heldRuns() {
18401
+ return [...runs.values()];
18402
+ }
18399
18403
  /**
18400
18404
  * Whether any question or drawing is still going here, or has answered and is being saved.
18401
18405
  *
@@ -20453,4 +20457,4 @@ function lineageIds(id) {
20453
20457
  return [.../* @__PURE__ */ new Set([id, ...lineage.map((review) => review.id)])];
20454
20458
  }
20455
20459
  //#endregion
20456
- export { MIN_WORKSPACE_PORT as $, AmbiguousRefError as $i, RUN_RECORD_RETENTION_MS as $n, deleteCollection as $r, markRead as $t, batchIdentity as A, findingAssessment as Ai, escapeHtml as An, positionInLineage as Ar, loadArchitecture as At, bootstrapUrl as B, wasReassessed as Bi, readMarker as Bn, LIFECYCLES as Br, ancestorsOf as Bt, RUN_KINDS as C, withExplanation as Ci, UNESTABLISHED_MOTIVATION as Cn, kissDecisionsOf as Cr, mapRuntimes as Ct, reportRun as D, assessmentLookup as Di, renderMarkdown as Dn, loadWorkspace as Dr, formatDuration as Dt, endRun as E, analysisRefOf as Ei, GITHUB_MARKDOWN as En, lineagePosition as Er, describeRuntimes as Et, activateQueued as F, isOffered as Fi, withReviewLock as Fn, reviewedRepositories as Fr, storedScopes as Ft, serverEntryExists as G, describeAuthorship as Gi, findExistingReview as Gn, lifecycleItemLabel as Gr, subjectOf as Gt, ensureServer as H, asString$1 as Hi, requestJobStop as Hn, activityLabel as Hr, writeJsonAtomically as Ht, compactQueue as I, promptGrade as Ii, MANAGED_ROOT as In, summarise as Ir, trackedFiles as It, stopServer as J, resolveTarget as Ji, followedBranch as Jn, parseLifecycle as Jr, createPrState as Jt, spawnServer as K, WITHHELD_REASON as Ki, checkCodeFreshness as Kn, lifecyclePill as Kr, categoryOf as Kt, queueForReview as L, reassessIn as Li, createWorktree as Ln, touchWorkspace as Lr, ownersOf as Lt, parsePullRequestLink as M, findingStatus as Mi, modelHelpLines as Mn, previousKissResult as Mr, readArchitecture as Mt, unsupportedReason as N, gradeScale as Ni, ReviewBeingDeletedError as Nn, recentWorkspaces as Nr, repositoryKey as Nt, stopRun as O, closesFinding as Oi, CODE_BLOCK_CLASS as On, matchingWorkspaceIds as Or, ARCHITECTURE_DIR as Ot, runBatch as P, isGradeFor as Pi, isBusy as Pn, reviewedCommit as Pr, storeArchitecture as Pt, MAX_WORKSPACE_PORT as Q, resolveBase as Qi, fillFileUrlTemplate as Qn, createWithMembers as Qr, markAllRead as Qt, settleQueue as R, sourcePhrase as Ri, holdWorktree as Rn, workspaceRevision as Rr, QUOTE_LIMITS as Rt, track as S, isExplanationAction as Si, chatConversationSection as Sn, kissDecisionRefusal as Sr, waitingHistory as St, completeRun as T, NO_STATUS as Ti, hasAuthorContent as Tn, lineageKey as Tr, RUNTIME_WORDS as Tt, readServerRecord as U, extractJsonText as Ui, describeMovement as Un, isLifecycle as Ur, announceJob as Ut, clearServerRecordOwnedBy as V, followUpFindingId as Vi, removeWorktree as Vn, activityAttributes as Vr, isArchitectureId as Vt, reviewsUrl as W, objectWithAnyOf as Wi, describeSubject as Wn, lifecycleChip as Wr, branchOf as Wt, writeServerRecord as X, DetachedHeadError as Xi, fetchHead as Xn, collectionsStamp as Xr, eventName as Xt, workspaceUrl as Y, originRemote as Yi, reviewedShaOf as Yn, sectionOf as Yr, createPrUpdate as Yt, DEFAULT_WORKSPACE_PORT as Z, isCommitReview as Zi, forgeResolver as Zn, createCollection as Zr, listNotifications as Zt, runningJobs as _, isAgentId as _a, verdictClosure as _i, unforeseenFailure as _n, decideKissRecommendation as _r, telemetryUploadConsent as _t, wasBlocked as a, resolveModel as aa, queueAdd as ai, removeNotification as an, loadJob as ar, observeReview as at, startKissJob as b, AgentCancelledError as ba, explanationActionOf as bi, agentEnvOf as bn, indexKeptIds as br, PACKAGE_NAME as bt, RefreshUnavailableError as c, readAgentPreference as ca, queueStamp as ci, unreadAround as cn, PHASES as cr, reanalyseReview as ct, mergeUpdateInto as d, STORE_ROOT as da, isIssueOutstanding as di, existingPaths as dn, phasesFor as dr, append as dt, shortNameOf as ea, nameProblemText as ei, markReadForReview as en, allJobs as er, parseWorkspacePort as et, parkedUpdateRefusal as f, AGENT_IDS as fa, isQuestionOutstanding as fi, ASK_REREAD_CEILING_MS as fn, progressSteps as fr, readEvents as ft, liveUpdateFor as g, detectAgents as ga, reviewerDispositions as gi, storedConversation as gn, CLAIM_LEASE_MS as gr, recordTelemetryUploadConsent as gt, UpdateAlreadyRunningError as h, agentIdentityOf as ha, resolvedByConversation as hi, saveRefresh as hn, isClaimed as hr, deliver as ht, liveJobsFor as i, resolveAgent as ia, updateCollections as ii, readStateOf as in, isTerminal as ir, failureOf as it, extractPullRequestLinks as j, findingIn as ji, renderInlineText as jn, presentedKissRunOf as jr, partFiles as jt, relativeTime as k, currentGradeIn as ki, CODE_COPY_CLASS as kn, mutateWorkspace as kr, checkArchitecture as kt, cancelUpdate as l, writeAgentPreference as la, readQueue as li, unreadCount as ln, isLiveJob as lr, runJob as lt, askCheckout as m, agentFor as ma, questionsOutstanding as mi, prepareConversationWithin as mn, clearClaim as mr, stamp as mt, deleteReview as n, git as na, renameCollection as ni, pruneNotifications as nn, endedAt as nr, statedWorkspacePort as nt, discardJob as o, agentIdOf as oa, queueAddMany as oi, retireNotification as on, pruneJobResidue as or, prepareReview as ot, updateReview as p, agentById as pa, issuesOutstanding as pi, adoptLegacyBaseline as pn, purposeOf as pr, record as pt, stopChild as q, kissOutcome as qi, checkReview as qn, offersLifecycle as qr, createArchitectureNotification as qt, lineageIds as r, refExists as ra, setMembership as ri, readNotification as rn, fail as rr, writePortPreference as rt, FETCH_TIMEOUT_MS as s, clearAgentPreference as sa, queueRemove as si, toneOf as sn, saveJob as sr, settleReview as st, deleteLineage as t, shorthandOf as ta, readCollections as ti, moveIds as tn, attemptIdOf as tr, resolveWorkspacePort as tt, cancellableHere as u, CONFIG_PATH as ua, doneVerb as ui, withUsageRecorded as un, isTerminalJobPhase as ur, startJob as ut, kissAgentId as v, parkedReason as va, processDiscussion as vi, refreshPrContext as vn, followedRefName as vr, telemetryUploadEnabled as vt, beginRun as w, ANALYSIS_ONLY as wi, authorPreview as wn, latestKissRun as wr, recordRuntimeBestEffort as wt, isDriving as x, AgentUnavailableError as xa, explanationOf as xi, EXPLAIN_SIMPLY_PROMPT as xn, indexReviewGroups as xr, feedbackUrl as xt, recordKissRun as y, runnableAgents as ya, recommendationsOf as yi, isUnchanged as yn, groupByLineage as yr, BUILD_VERSION as yt, readIndexToken as z, statusLookup as zi, isWorktreeHeld as zn, workspaceStamps as zr, REPOSITORY_SCOPE as zt };
20460
+ export { MAX_WORKSPACE_PORT as $, resolveBase as $i, fillFileUrlTemplate as $n, createWithMembers as $r, markAllRead as $t, relativeTime as A, currentGradeIn as Ai, CODE_COPY_CLASS as An, mutateWorkspace as Ar, checkArchitecture as At, readIndexToken as B, statusLookup as Bi, isWorktreeHeld as Bn, workspaceStamps as Br, REPOSITORY_SCOPE as Bt, RUN_KINDS as C, isExplanationAction as Ci, chatConversationSection as Cn, kissDecisionRefusal as Cr, waitingHistory as Ct, heldRuns as D, analysisRefOf as Di, GITHUB_MARKDOWN as Dn, lineagePosition as Dr, describeRuntimes as Dt, endRun as E, NO_STATUS as Ei, hasAuthorContent as En, lineageKey as Er, RUNTIME_WORDS as Et, runBatch as F, isGradeFor as Fi, isBusy as Fn, reviewedCommit as Fr, storeArchitecture as Ft, reviewsUrl as G, objectWithAnyOf as Gi, describeSubject as Gn, lifecycleChip as Gr, branchOf as Gt, clearServerRecordOwnedBy as H, followUpFindingId as Hi, removeWorktree as Hn, activityAttributes as Hr, isArchitectureId as Ht, activateQueued as I, isOffered as Ii, withReviewLock as In, reviewedRepositories as Ir, storedScopes as It, stopChild as J, kissOutcome as Ji, checkReview as Jn, offersLifecycle as Jr, createArchitectureNotification as Jt, serverEntryExists as K, describeAuthorship as Ki, findExistingReview as Kn, lifecycleItemLabel as Kr, subjectOf as Kt, compactQueue as L, promptGrade as Li, MANAGED_ROOT as Ln, summarise as Lr, trackedFiles as Lt, extractPullRequestLinks as M, findingIn as Mi, renderInlineText as Mn, presentedKissRunOf as Mr, partFiles as Mt, parsePullRequestLink as N, findingStatus as Ni, modelHelpLines as Nn, previousKissResult as Nr, readArchitecture as Nt, reportRun as O, assessmentLookup as Oi, renderMarkdown as On, loadWorkspace as Or, formatDuration as Ot, unsupportedReason as P, gradeScale as Pi, ReviewBeingDeletedError as Pn, recentWorkspaces as Pr, repositoryKey as Pt, DEFAULT_WORKSPACE_PORT as Q, isCommitReview as Qi, forgeResolver as Qn, createCollection as Qr, listNotifications as Qt, queueForReview as R, reassessIn as Ri, createWorktree as Rn, touchWorkspace as Rr, ownersOf as Rt, track as S, AgentUnavailableError as Sa, explanationOf as Si, EXPLAIN_SIMPLY_PROMPT as Sn, indexReviewGroups as Sr, feedbackUrl as St, completeRun as T, ANALYSIS_ONLY as Ti, authorPreview as Tn, latestKissRun as Tr, recordRuntimeBestEffort as Tt, ensureServer as U, asString$1 as Ui, requestJobStop as Un, activityLabel as Ur, writeJsonAtomically as Ut, bootstrapUrl as V, wasReassessed as Vi, readMarker as Vn, LIFECYCLES as Vr, ancestorsOf as Vt, readServerRecord as W, extractJsonText as Wi, describeMovement as Wn, isLifecycle as Wr, announceJob as Wt, workspaceUrl as X, originRemote as Xi, reviewedShaOf as Xn, sectionOf as Xr, createPrUpdate as Xt, stopServer as Y, resolveTarget as Yi, followedBranch as Yn, parseLifecycle as Yr, createPrState as Yt, writeServerRecord as Z, DetachedHeadError as Zi, fetchHead as Zn, collectionsStamp as Zr, eventName as Zt, runningJobs as _, detectAgents as _a, reviewerDispositions as _i, storedConversation as _n, CLAIM_LEASE_MS as _r, recordTelemetryUploadConsent as _t, wasBlocked as a, resolveAgent as aa, updateCollections as ai, readStateOf as an, isTerminal as ar, failureOf as at, startKissJob as b, runnableAgents as ba, recommendationsOf as bi, isUnchanged as bn, groupByLineage as br, BUILD_VERSION as bt, RefreshUnavailableError as c, clearAgentPreference as ca, queueRemove as ci, toneOf as cn, saveJob as cr, settleReview as ct, mergeUpdateInto as d, CONFIG_PATH as da, doneVerb as di, withUsageRecorded as dn, isTerminalJobPhase as dr, startJob as dt, AmbiguousRefError as ea, deleteCollection as ei, markRead as en, RUN_RECORD_RETENTION_MS as er, MIN_WORKSPACE_PORT as et, parkedUpdateRefusal as f, STORE_ROOT as fa, isIssueOutstanding as fi, existingPaths as fn, phasesFor as fr, append as ft, liveUpdateFor as g, agentIdentityOf as ga, resolvedByConversation as gi, saveRefresh as gn, isClaimed as gr, deliver as gt, UpdateAlreadyRunningError as h, agentFor as ha, questionsOutstanding as hi, prepareConversationWithin as hn, clearClaim as hr, stamp as ht, liveJobsFor as i, refExists as ia, setMembership as ii, readNotification as in, fail as ir, writePortPreference as it, batchIdentity as j, findingAssessment as ji, escapeHtml as jn, positionInLineage as jr, loadArchitecture as jt, stopRun as k, closesFinding as ki, CODE_BLOCK_CLASS as kn, matchingWorkspaceIds as kr, ARCHITECTURE_DIR as kt, cancelUpdate as l, readAgentPreference as la, queueStamp as li, unreadAround as ln, PHASES as lr, reanalyseReview as lt, askCheckout as m, agentById as ma, issuesOutstanding as mi, adoptLegacyBaseline as mn, purposeOf as mr, record as mt, deleteReview as n, shorthandOf as na, readCollections as ni, moveIds as nn, attemptIdOf as nr, resolveWorkspacePort as nt, discardJob as o, resolveModel as oa, queueAdd as oi, removeNotification as on, loadJob as or, observeReview as ot, updateReview as p, AGENT_IDS as pa, isQuestionOutstanding as pi, ASK_REREAD_CEILING_MS as pn, progressSteps as pr, readEvents as pt, spawnServer as q, WITHHELD_REASON as qi, checkCodeFreshness as qn, lifecyclePill as qr, categoryOf as qt, lineageIds as r, git as ra, renameCollection as ri, pruneNotifications as rn, endedAt as rr, statedWorkspacePort as rt, FETCH_TIMEOUT_MS as s, agentIdOf as sa, queueAddMany as si, retireNotification as sn, pruneJobResidue as sr, prepareReview as st, deleteLineage as t, shortNameOf as ta, nameProblemText as ti, markReadForReview as tn, allJobs as tr, parseWorkspacePort as tt, cancellableHere as u, writeAgentPreference as ua, readQueue as ui, unreadCount as un, isLiveJob as ur, runJob as ut, kissAgentId as v, isAgentId as va, verdictClosure as vi, unforeseenFailure as vn, decideKissRecommendation as vr, telemetryUploadConsent as vt, beginRun as w, withExplanation as wi, UNESTABLISHED_MOTIVATION as wn, kissDecisionsOf as wr, mapRuntimes as wt, isDriving as x, AgentCancelledError as xa, explanationActionOf as xi, agentEnvOf as xn, indexKeptIds as xr, PACKAGE_NAME as xt, recordKissRun as y, parkedReason as ya, processDiscussion as yi, refreshPrContext as yn, followedRefName as yr, telemetryUploadEnabled as yt, settleQueue as z, sourcePhrase as zi, holdWorktree as zn, workspaceRevision as zr, QUOTE_LIMITS as zt };
package/dist/main.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { $ as MIN_WORKSPACE_PORT, A as batchIdentity, Ar as positionInLineage, B as bootstrapUrl, Bn as readMarker, Dr as loadWorkspace, Fr as reviewedRepositories, Gn as findExistingReview, H as ensureServer, In as MANAGED_ROOT, Ir as summarise, J as stopServer, Ji as resolveTarget, Ki as WITHHELD_REASON, L as queueForReview, Mn as modelHelpLines, Nr as recentWorkspaces, Or as matchingWorkspaceIds, P as runBatch, Q as MAX_WORKSPACE_PORT, Un as describeMovement, Vn as removeWorktree, W as reviewsUrl, Wn as describeSubject, Y as workspaceUrl, Z as DEFAULT_WORKSPACE_PORT, Zn as forgeResolver, _ as runningJobs, _t as telemetryUploadConsent, a as wasBlocked, aa as resolveModel, ar as loadJob, bt as PACKAGE_NAME, ca as readAgentPreference, cr as PHASES, ct as reanalyseReview, d as mergeUpdateInto, da as STORE_ROOT, dt as append, er as allJobs, et as parseWorkspacePort, f as parkedUpdateRefusal, fa as AGENT_IDS, fr as progressSteps, g as liveUpdateFor, ga as detectAgents, gt as recordTelemetryUploadConsent, h as UpdateAlreadyRunningError, ht as deliver, i as liveJobsFor, ia as resolveAgent, k as relativeTime, kr as mutateWorkspace, la as writeAgentPreference, mr as clearClaim, mt as stamp, n as deleteReview$1, na as git, nt as statedWorkspacePort, ot as prepareReview, p as updateReview, pa as agentById, pr as purposeOf, pt as record$1, qi as kissOutcome, rt as writePortPreference, st as settleReview, ua as CONFIG_PATH, ut as startJob, va as parkedReason, vr as followedRefName, vt as telemetryUploadEnabled, y as recordKissRun, ya as runnableAgents, yt as BUILD_VERSION, z as readIndexToken } from "./delete_review-CwKZQlMg.js";
2
+ import { $ as MAX_WORKSPACE_PORT, A as relativeTime, Ar as mutateWorkspace, B as readIndexToken, F as runBatch, G as reviewsUrl, Gn as describeSubject, Hn as removeWorktree, Ir as reviewedRepositories, Ji as kissOutcome, Kn as findExistingReview, Ln as MANAGED_ROOT, Lr as summarise, Nn as modelHelpLines, Or as loadWorkspace, Pr as recentWorkspaces, Q as DEFAULT_WORKSPACE_PORT, Qn as forgeResolver, R as queueForReview, U as ensureServer, V as bootstrapUrl, Vn as readMarker, Wn as describeMovement, X as workspaceUrl, Y as stopServer, Yi as resolveTarget, _ as runningJobs, _a as detectAgents, _t as recordTelemetryUploadConsent, a as wasBlocked, aa as resolveAgent, ba as runnableAgents, bt as BUILD_VERSION, ct as settleReview, d as mergeUpdateInto, da as CONFIG_PATH, dt as startJob, et as MIN_WORKSPACE_PORT, f as parkedUpdateRefusal, fa as STORE_ROOT, ft as append, g as liveUpdateFor, gt as deliver, h as UpdateAlreadyRunningError, hr as clearClaim, ht as stamp, i as liveJobsFor, it as writePortPreference, j as batchIdentity, jr as positionInLineage, kr as matchingWorkspaceIds, la as readAgentPreference, lr as PHASES, lt as reanalyseReview, ma as agentById, mr as purposeOf, mt as record$1, n as deleteReview$1, oa as resolveModel, or as loadJob, p as updateReview, pa as AGENT_IDS, pr as progressSteps, qi as WITHHELD_REASON, ra as git, rt as statedWorkspacePort, st as prepareReview, tr as allJobs, tt as parseWorkspacePort, ua as writeAgentPreference, vt as telemetryUploadConsent, xt as PACKAGE_NAME, y as recordKissRun, ya as parkedReason, yr as followedRefName, yt as telemetryUploadEnabled } from "./delete_review-D7TXn5ck.js";
3
3
  import { basename, dirname, 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";