@dev.fast/whiteboard 0.4.1-preview.20261030.143 → 0.4.1-preview.20261031.144

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.
@@ -4,7 +4,7 @@ import { C as disableTraceMachine, E as traceMachineStatus, G as listTraceReposi
4
4
  import { I as writeFileAtomicAsync, L as writePrivateJsonAtomic, N as devReviewHome, j as withFileLock } from "./s3-config-CjcLyFV5.js";
5
5
  import { i as readReviewPackageVersion } from "./package-paths-Cg6fnaGp.js";
6
6
  import { f as isDirectory, p as isFile } from "./thread-state-DosGpp3S.js";
7
- import { c as findExecutable, s as executableCommand } from "./fuzzy-match-BMcd-rQ0.js";
7
+ import { c as findExecutable, s as executableCommand } from "./fuzzy-match-DRhI0DDn.js";
8
8
  import { createHash } from "node:crypto";
9
9
  import { constants } from "node:fs";
10
10
  import { access, chmod, lstat, mkdir, readFile, rm, stat, writeFile } from "node:fs/promises";
@@ -0,0 +1,2 @@
1
+ import { n as runReviewAgentCli } from "./agent-cli-DPt9w5-8.js";
2
+ export { runReviewAgentCli };
@@ -4,8 +4,8 @@ import { a as toolResultText, i as connectReviewInstance, s as ReviewApiError }
4
4
  import { N as devReviewHome } from "./s3-config-CjcLyFV5.js";
5
5
  import { n as readBuildCommit } from "./package-paths-Cg6fnaGp.js";
6
6
  import { b as selectReviewInstance, u as REVIEW_INSTANCE_ENV } from "./server-discovery-nLX2SH_v.js";
7
- import { n as reviewSessionAgent } from "./review-telemetry-B6mxAOXA.js";
8
- import { a as REVIEW_VIA_HEADER, i as REVIEW_THREAD_HEADER, n as REVIEW_AGENT_HEADER, t as ASK_THREAD_ENV } from "./request-origin-BkrzpcVd.js";
7
+ import { n as reviewSessionAgent } from "./review-telemetry-CzYSJMMy.js";
8
+ import { a as REVIEW_VIA_HEADER, i as REVIEW_THREAD_HEADER, n as REVIEW_AGENT_HEADER, t as ASK_THREAD_ENV } from "./request-origin-Cr1tW4Vl.js";
9
9
  import { i as publicTool, n as RECOVERY, r as callPublicTool, t as toolFailure } from "./tool-failure-CwTgI76j.js";
10
10
  import { existsSync } from "node:fs";
11
11
  import path from "node:path";
@@ -1 +1 @@
1
- {"version":"0.4.1-preview.20261030.143","commit":"6900e30267289f6b6d3d16ecf8b7f626ff0c355f","dirty":true,"builtAt":"2026-10-30T04:40:00.211Z"}
1
+ {"version":"0.4.1-preview.20261031.144","commit":"92dca469c9d8aa180aad5e48653cefca86079785","dirty":true,"builtAt":"2026-10-31T00:05:21.123Z"}
@@ -8,11 +8,11 @@ import { t as errorMessage } from "./error-message-OtiDonty.js";
8
8
  import { i as readReviewPackageVersion, r as readBuildInfo, t as findReviewPackageRoot } from "./package-paths-Cg6fnaGp.js";
9
9
  import { t as resolveReviewRoot } from "./runtime-Bhk5L_SN.js";
10
10
  import { a as readReviewServerHealth, b as selectReviewInstance, c as reviewServerStateDir, d as ReviewInstanceUnavailableError, f as clearDefaultReviewInstance, g as requireHealthyReviewDesktop, h as readDefaultReviewInstance, i as readReviewServerDiscovery, l as serverNotReady, m as healthyReviewInstance, p as desktopUsesHome, t as DESKTOP_TAKEOVER_SIGNAL, u as REVIEW_INSTANCE_ENV, x as writeDefaultReviewInstance, y as reviewInstanceUnavailable } from "./server-discovery-nLX2SH_v.js";
11
- import { t as ReviewTelemetry } from "./review-telemetry-B6mxAOXA.js";
12
- import { t as fuzzyRank } from "./fuzzy-match-BMcd-rQ0.js";
13
- import { _ as isInstallTarget, a as isOwnedShim, f as windowsInstallerCommand, g as ALL_INSTALL_TARGETS, h as detectConnectAgents, m as connectAgent, o as pathShimPath, p as scanLegacySkills, t as aliasInstallationToAccount, v as connectPrompts } from "./account-alias-DtN9zBzt.js";
11
+ import { t as ReviewTelemetry } from "./review-telemetry-CzYSJMMy.js";
12
+ import { t as fuzzyRank } from "./fuzzy-match-DRhI0DDn.js";
13
+ import { _ as isInstallTarget, a as isOwnedShim, f as windowsInstallerCommand, g as ALL_INSTALL_TARGETS, h as detectConnectAgents, m as connectAgent, o as pathShimPath, p as scanLegacySkills, t as aliasInstallationToAccount, v as connectPrompts } from "./account-alias-DbtsNr_c.js";
14
14
  import { n as focusReviewDesktop, r as runReviewAppLaunch } from "./review-app-launcher-1tcH84u6.js";
15
- import { t as reviewAgentCliHelp } from "./agent-cli-D2WEQwul.js";
15
+ import { t as reviewAgentCliHelp } from "./agent-cli-DPt9w5-8.js";
16
16
  import { existsSync, mkdirSync, renameSync, writeFileSync } from "node:fs";
17
17
  import { realpath } from "node:fs/promises";
18
18
  import path from "node:path";
@@ -4355,7 +4355,7 @@ async function runReviewCli(input) {
4355
4355
  process.once("SIGINT", stop);
4356
4356
  process.once("SIGTERM", stop);
4357
4357
  process.once(DESKTOP_TAKEOVER_SIGNAL, takeover);
4358
- const { HeadlessServerBusyError, runHeadlessServer } = await import("./headless-host-CMDr4BpH.js");
4358
+ const { HeadlessServerBusyError, runHeadlessServer } = await import("./headless-host-CgxnmRir.js");
4359
4359
  try {
4360
4360
  await runHeadlessServer({
4361
4361
  stateDir,
@@ -4420,7 +4420,7 @@ async function runReviewCli(input) {
4420
4420
  if (!existsSync(path.join(stateDir, "review-api.db"))) throw new Error(`No saved reviews in ${stateDir}, so there is no server id to reset. Check --state-dir.`);
4421
4421
  const inUse = `A Whiteboard server is using ${stateDir}. Stop it first, then run whiteboard server reset-id again.`;
4422
4422
  if (await desktopUsesHome(stateDir, env)) return refuse(inUse, options.json);
4423
- const [{ openReviewProfile }, { withHeadlessServerLock }] = await Promise.all([import("./profile-Bw0hDDNd.js"), import("./headless-host-CMDr4BpH.js")]);
4423
+ const [{ openReviewProfile }, { withHeadlessServerLock }] = await Promise.all([import("./profile-Bw0hDDNd.js"), import("./headless-host-CgxnmRir.js")]);
4424
4424
  const reset = await withHeadlessServerLock(await realpath(stateDir), async () => {
4425
4425
  const local = await openReviewProfile(stateDir, { manageWorkspaces: false });
4426
4426
  try {
@@ -4794,7 +4794,7 @@ async function runReviewCli(input) {
4794
4794
  return commands;
4795
4795
  } });
4796
4796
  for (const [name, description] of [["api", "Call a JSON review authoring tool on the running server"], ["mcp", "Serve the JSON review authoring tools over stdio MCP"]]) configureOutput(program.command(name).description(description).argument("[args...]", "tool name and JSON input").allowUnknownOption().allowExcessArguments().helpOption(false).passThroughOptions().addHelpText("after", `\n${reviewAgentCliHelp}`), "plain").action(async (args) => {
4797
- const { runReviewAgentCli } = await import("./agent-cli-m3uWrslh.js");
4797
+ const { runReviewAgentCli } = await import("./agent-cli-BL1HiH5g.js");
4798
4798
  state.exitCode = await runReviewAgentCli({
4799
4799
  ...input,
4800
4800
  env: authoringEnv(),
package/dist/cli.js CHANGED
@@ -17,7 +17,7 @@ async function runCli(effectivePath) {
17
17
  `);
18
18
  return 1;
19
19
  }
20
- const { runReviewCli } = await import("./cli-runner-DaPGJWRf.js");
20
+ const { runReviewCli } = await import("./cli-runner-aO7Bw1Bn.js");
21
21
  return runReviewCli({
22
22
  argv,
23
23
  cliPaths: {
@@ -1,7 +1,7 @@
1
1
  import "./review-home-paths-LdGS4SpR.js";
2
2
  import { N as devReviewHome } from "./s3-config-CjcLyFV5.js";
3
3
  import { n as askAgentIds } from "./thread-state-DosGpp3S.js";
4
- import { t as ASK_THREAD_ENV } from "./request-origin-BkrzpcVd.js";
4
+ import { t as ASK_THREAD_ENV } from "./request-origin-Cr1tW4Vl.js";
5
5
  import { createRequire } from "node:module";
6
6
  import { constants } from "node:fs";
7
7
  import { access, chmod, mkdir, readFile, rename, stat, writeFile } from "node:fs/promises";
@@ -1,2 +1,2 @@
1
- import { i as withHeadlessServerLock, n as runHeadlessServer, r as takeOverServerHome, t as HeadlessServerBusyError } from "./headless-host-DDYA2wwn.js";
1
+ import { i as withHeadlessServerLock, n as runHeadlessServer, r as takeOverServerHome, t as HeadlessServerBusyError } from "./headless-host-s4A3qcsl.js";
2
2
  export { HeadlessServerBusyError, runHeadlessServer, takeOverServerHome, withHeadlessServerLock };
@@ -1,6 +1,6 @@
1
1
  import { b as resolveRepoContext, d as git, r as defaultBranch, w as runVcs } from "./src-Y30gweiK.js";
2
2
  import { c as jsonString, m as isStringValue, n as isJsonObject, p as isObjectValue, u as parseJsonText } from "./src-X9phtB2j.js";
3
- import { _ as parseShareLink, a as readShareRepository, c as exportShare, d as lensReport, f as progressUpdateSchema, g as readBoundedStream, h as StreamLimitError, i as forgetSharedCommits, l as validateShareSources, m as uncategorizedReport, n as shareKey, o as ShareAuthError, p as reviewProgress, s as ShareClient, t as importShare, u as legacyModeSchema, v as shareIdSchema } from "./import-LsDP99A9.js";
3
+ import { _ as parseShareLink, a as readShareRepository, c as exportShare, d as lensReport, f as progressUpdateSchema, g as readBoundedStream, h as StreamLimitError, i as forgetSharedCommits, l as validateShareSources, m as uncategorizedReport, n as shareKey, o as ShareAuthError, p as reviewProgress, s as ShareClient, t as importShare, u as legacyModeSchema, v as shareIdSchema } from "./import-Dnbujw7d.js";
4
4
  import { I as stepSources, T as selectionReferences, U as animationCode, et as formatAnchor, n as anchorPins, o as boardRepositoryId, ot as ReviewInputError, rt as selectionKey, u as elements } from "./src-B2b8cCoI.js";
5
5
  import { c as invalidateStructuralComparisons, d as readGitHubPullRequests, i as inspectSnapshot, l as diffrExecutable, r as commandSchema, u as diffrMissingError } from "./local-data-G2I-77FX.js";
6
6
  import { I as decodeStructuralDiffEvent, N as reviewDiffrLoginsSchema, O as ReviewFeedbackContactSchema, P as reviewDiffrSummarizerInputSchema, a as parseReviewVerbRequest, c as boardIconKind, i as parseReviewDesktopVerbResult, j as ReviewOnboardingRunRequestSchema, k as ReviewFeedbackSchema, l as boardTitle, m as REVIEW_CLIENT_REMOTE, p as REVIEW_CLIENT_HEADER, y as REVIEW_HOST_HEADER } from "./src-Coec7jLU.js";
@@ -12,8 +12,8 @@ import { i as readReviewPackageVersion, n as readBuildCommit, t as findReviewPac
12
12
  import { _ as reviewInstanceIdentity, n as desktopOwnsHome, o as reviewServerDiscoveryPath, p as desktopUsesHome, r as headlessServerLockPath, t as DESKTOP_TAKEOVER_SIGNAL } from "./server-discovery-nLX2SH_v.js";
13
13
  import { c as askPicksSchema, d as selectionMarkdown, l as askQuestionSchema, n as askAgentIds, r as askChoiceKinds, s as askPermissionsSchema, t as applyAskChange, u as AgentSelectionSchema } from "./thread-state-DosGpp3S.js";
14
14
  import { t as openReviewProfile } from "./profile-i2n1HdIg.js";
15
- import { c as REVIEW_APP_SESSION_ID_HEADER, d as sanitizeUiTelemetryEvent, f as cleanTelemetryText, o as reviewRequestOrigin, r as REVIEW_PERSON_HEADER, s as BUNDLE_FRAME_PATTERN, t as ASK_THREAD_ENV, u as isReportableCleanedMessage } from "./request-origin-BkrzpcVd.js";
16
- import { a as defaultAskPermissions, i as askAgents, l as launchAskAgent, n as askAgentSettings, o as detectAskAgents, r as askAgentTakesMcp, t as fuzzyRank } from "./fuzzy-match-BMcd-rQ0.js";
15
+ import { c as REVIEW_APP_SESSION_ID_HEADER, d as sanitizeUiTelemetryEvent, f as cleanTelemetryText, o as reviewRequestOrigin, r as REVIEW_PERSON_HEADER, s as BUNDLE_FRAME_PATTERN, t as ASK_THREAD_ENV, u as isReportableCleanedMessage } from "./request-origin-Cr1tW4Vl.js";
16
+ import { a as defaultAskPermissions, i as askAgents, l as launchAskAgent, n as askAgentSettings, o as detectAskAgents, r as askAgentTakesMcp, t as fuzzyRank } from "./fuzzy-match-DRhI0DDn.js";
17
17
  import { a as inspectQuerySchema, i as renderInstructions, o as queryAnchor, r as instructionsQuerySchema, s as readQuerySchemas, t as authoringTools } from "./authoring-tools-BEGW2s0A.js";
18
18
  import { a as headlessServerOwner, c as stopBackgroundServer, o as recordedBackgroundServer } from "./background-server-D_4Xt3fF.js";
19
19
  import crypto$1, { createHash, randomBytes, randomUUID } from "node:crypto";
@@ -426,6 +426,12 @@ async function exportShare(input) {
426
426
  const repositoryId = boardRepositoryId(stored);
427
427
  const { target, staleSources: _staleSources, sourceUnavailable: _sourceUnavailable, lastEdit: _lastEdit, trashedAt: _trashedAt, personEdit: _personEdit, ...snapshot } = stored;
428
428
  if (target?.kind === "worktree") throw new ReviewInputError("Pin this review to commits before sharing it.");
429
+ const pullRequestUrl = snapshot.origin?.pullRequestUrl;
430
+ const baseBranch = pullRequestUrl && !snapshot.origin?.baseBranch && (snapshot.origin?.pullRequestBaseBranch ?? input.data.pullRequestBaseBranch(pullRequestUrl));
431
+ if (baseBranch) snapshot.origin = {
432
+ ...snapshot.origin,
433
+ baseBranch
434
+ };
429
435
  documentSchema.parse(snapshot.document);
430
436
  checkReferences(snapshot.document);
431
437
  validateShareSources(snapshot);
@@ -231,6 +231,7 @@ const SETTING_NAME = [
231
231
  "telemetry_enabled",
232
232
  "keymap",
233
233
  "software_map_enabled",
234
+ "show_release_notes",
234
235
  "diffr_config",
235
236
  "theme",
236
237
  "diff_theme",
@@ -392,6 +393,12 @@ const DISCORD_VIA = [
392
393
  "dialog",
393
394
  "docs"
394
395
  ];
396
+ const RELEASE_NOTES_VIA = [
397
+ "update",
398
+ "toast",
399
+ "command",
400
+ "feedback"
401
+ ];
395
402
  const REVIEW_DELETED_VIA = ["home"];
396
403
  const ERROR_PROCESS = [
397
404
  "main",
@@ -734,6 +741,13 @@ const UI_TELEMETRY_EVENTS = {
734
741
  event: "review_discord_dialog_dismissed",
735
742
  properties: {}
736
743
  },
744
+ release_notes_opened: {
745
+ event: "review_release_notes_opened",
746
+ properties: {
747
+ via: RELEASE_NOTES_VIA,
748
+ version: "release_version"
749
+ }
750
+ },
737
751
  peek_resolved: {
738
752
  event: "review_peek_resolved",
739
753
  properties: { root_kind: PEEK_ROOT_KIND }
@@ -3,7 +3,7 @@ import "./src-Coec7jLU.js";
3
3
  import "./review-home-paths-LdGS4SpR.js";
4
4
  import { F as writeFileAtomic, N as devReviewHome, j as withFileLock, k as processIsAlive } from "./s3-config-CjcLyFV5.js";
5
5
  import { i as readReviewPackageVersion, t as findReviewPackageRoot } from "./package-paths-Cg6fnaGp.js";
6
- import "./request-origin-BkrzpcVd.js";
6
+ import "./request-origin-Cr1tW4Vl.js";
7
7
  import { createHmac, randomUUID } from "node:crypto";
8
8
  import { z } from "zod";
9
9
  import { existsSync, readFileSync, rmSync } from "node:fs";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { S as splitGitPatchFiles, a as diff, o as diffFileSummaries } from "../src-Y30gweiK.js";
3
3
  import { c as jsonString, i as jsonBoolean, n as isJsonObject, p as isObjectValue, s as jsonProperty, u as parseJsonText } from "../src-X9phtB2j.js";
4
- import { g as readBoundedStream, h as StreamLimitError, u as legacyModeSchema } from "../import-LsDP99A9.js";
4
+ import { g as readBoundedStream, h as StreamLimitError, u as legacyModeSchema } from "../import-Dnbujw7d.js";
5
5
  import { ot as ReviewInputError, y as resourceReferences } from "../src-B2b8cCoI.js";
6
6
  import { A as ReviewGatewayHostSchema, D as ReviewConnectRequestSchema, P as reviewDiffrSummarizerInputSchema, d as ReviewBugReportRequestSchema, f as parseReviewBugReportResponse, m as REVIEW_CLIENT_REMOTE, p as REVIEW_CLIENT_HEADER, r as parseReviewDesktopVerbFrame, s as parseZod, t as parseReviewCliInstallApplyRequest, u as ReviewBugReportMetaV2Schema, y as REVIEW_HOST_HEADER } from "../src-Coec7jLU.js";
7
7
  import { i as reviewInstanceDiscoveryPath, o as reviewLegacyDiscoveryPath } from "../review-home-paths-LdGS4SpR.js";
@@ -11,10 +11,10 @@ import { t as errorMessage } from "../error-message-OtiDonty.js";
11
11
  import { i as readReviewPackageVersion, t as findReviewPackageRoot } from "../package-paths-Cg6fnaGp.js";
12
12
  import { _ as reviewInstanceIdentity, u as REVIEW_INSTANCE_ENV } from "../server-discovery-nLX2SH_v.js";
13
13
  import { t as openReviewProfile } from "../profile-i2n1HdIg.js";
14
- import { r as reviewTelemetryChannel, t as ReviewTelemetry } from "../review-telemetry-B6mxAOXA.js";
15
- import { l as REVIEW_TELEMETRY_TABS } from "../request-origin-BkrzpcVd.js";
16
- import { c as removeLegacyReviewSkills, d as skipCliInstall, h as detectConnectAgents, i as finishCliInstallUpdate, l as resetCliInstall, m as connectAgent, n as applyCliInstall, o as pathShimPath, r as declineCliInstall, s as removeCliInstall, t as aliasInstallationToAccount, u as resolveCliInstallStatus } from "../account-alias-DtN9zBzt.js";
17
- import { C as setDiffrConfigValue, S as saveDiffrSummarizer, T as cliAskTools, _ as HttpJsonError, a as drainServerCrashReport, b as migrateDiffrConfig, c as answerErrorsAsJson, d as captureSanitizedUiTelemetry, f as clientErrorsForSession, g as DEFAULT_MAX_REQUEST_BYTES, h as readBoundedRequestJson, l as createWhiteboardCore, m as createNodeRequestListener, o as installProcessErrorTelemetry, p as recordClientError, r as takeOverServerHome, s as serverCrashReportPath, u as serverJson, v as ReviewServerError, w as testDiffrSummarizer, x as readDiffrConfig, y as GlobalReviewDesktopVerbRelay } from "../headless-host-DDYA2wwn.js";
14
+ import { r as reviewTelemetryChannel, t as ReviewTelemetry } from "../review-telemetry-CzYSJMMy.js";
15
+ import { l as REVIEW_TELEMETRY_TABS } from "../request-origin-Cr1tW4Vl.js";
16
+ import { c as removeLegacyReviewSkills, d as skipCliInstall, h as detectConnectAgents, i as finishCliInstallUpdate, l as resetCliInstall, m as connectAgent, n as applyCliInstall, o as pathShimPath, r as declineCliInstall, s as removeCliInstall, t as aliasInstallationToAccount, u as resolveCliInstallStatus } from "../account-alias-DbtsNr_c.js";
17
+ import { C as setDiffrConfigValue, S as saveDiffrSummarizer, T as cliAskTools, _ as HttpJsonError, a as drainServerCrashReport, b as migrateDiffrConfig, c as answerErrorsAsJson, d as captureSanitizedUiTelemetry, f as clientErrorsForSession, g as DEFAULT_MAX_REQUEST_BYTES, h as readBoundedRequestJson, l as createWhiteboardCore, m as createNodeRequestListener, o as installProcessErrorTelemetry, p as recordClientError, r as takeOverServerHome, s as serverCrashReportPath, u as serverJson, v as ReviewServerError, w as testDiffrSummarizer, x as readDiffrConfig, y as GlobalReviewDesktopVerbRelay } from "../headless-host-s4A3qcsl.js";
18
18
  import { s as readQuerySchemas } from "../authoring-tools-BEGW2s0A.js";
19
19
  import crypto, { createHash, randomBytes } from "node:crypto";
20
20
  import { z } from "zod";
@@ -1,2 +1,2 @@
1
- import { c as exportShare, n as shareKey, r as validateShareBundle, s as ShareClient, t as importShare } from "../import-LsDP99A9.js";
1
+ import { c as exportShare, n as shareKey, r as validateShareBundle, s as ShareClient, t as importShare } from "../import-Dnbujw7d.js";
2
2
  export { ShareClient, exportShare, importShare, shareKey, validateShareBundle };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dev.fast/whiteboard",
3
- "version": "0.4.1-preview.20261030.143",
3
+ "version": "0.4.1-preview.20261031.144",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -62,7 +62,7 @@
62
62
  "undici": "7.29.1",
63
63
  "yauzl": "3.4.0",
64
64
  "zod": "4.6.6",
65
- "@dev.fast/diffr": "0.1.22"
65
+ "@dev.fast/diffr": "0.1.23"
66
66
  },
67
67
  "devDependencies": {
68
68
  "@dev.fast/local-vcs": "^0.1.0",
@@ -78,10 +78,10 @@
78
78
  "vitest": "4.1.11",
79
79
  "@dev.fast/json": "0.0.0",
80
80
  "@dev.fast/review-share-protocol": "0.3.0",
81
- "@dev.fast/trace-core": "0.0.0",
82
81
  "@dev.fast/review-protocol": "0.0.0",
83
- "@dev.fast/whiteboard-document": "0.2.0",
84
- "@dev.fast/trace-protocol": "0.5.0"
82
+ "@dev.fast/trace-core": "0.0.0",
83
+ "@dev.fast/trace-protocol": "0.5.0",
84
+ "@dev.fast/whiteboard-document": "0.2.0"
85
85
  },
86
86
  "engines": {
87
87
  "node": ">=24 <25"
@@ -91,7 +91,7 @@
91
91
  "repo": "devdotfast/review",
92
92
  "docs": "packages/review/instructions/authoring.md"
93
93
  },
94
- "gitHead": "6900e30267289f6b6d3d16ecf8b7f626ff0c355f",
94
+ "gitHead": "92dca469c9d8aa180aad5e48653cefca86079785",
95
95
  "scripts": {
96
96
  "prebuild": "pnpm run build:workspace-deps",
97
97
  "build": "node --max-old-space-size=8192 node_modules/tsdown/dist/run.mjs",
@@ -159,6 +159,17 @@ export async function exportShare(input: {
159
159
  if (target?.kind === "worktree")
160
160
  throw new ReviewInputError("Pin this review to commits before sharing it.");
161
161
 
162
+ // A viewer has no PR state to read the base branch from.
163
+ const pullRequestUrl = snapshot.origin?.pullRequestUrl;
164
+
165
+ const baseBranch =
166
+ pullRequestUrl &&
167
+ !snapshot.origin?.baseBranch &&
168
+ (snapshot.origin?.pullRequestBaseBranch ??
169
+ input.data.pullRequestBaseBranch(pullRequestUrl));
170
+
171
+ if (baseBranch) snapshot.origin = { ...snapshot.origin, baseBranch };
172
+
162
173
  documentSchema.parse(snapshot.document);
163
174
  checkReferences(snapshot.document);
164
175
  validateShareSources(snapshot);
@@ -145,6 +145,7 @@ export const SETTING_NAME = [
145
145
  "telemetry_enabled",
146
146
  "keymap",
147
147
  "software_map_enabled",
148
+ "show_release_notes",
148
149
  "diffr_config",
149
150
  "theme",
150
151
  "diff_theme",
@@ -307,6 +308,13 @@ export const FIND_SURFACE = ["review", "diff"] as const;
307
308
 
308
309
  export const DISCORD_VIA = ["topbar", "dialog", "docs"] as const;
309
310
 
311
+ export const RELEASE_NOTES_VIA = [
312
+ "update",
313
+ "toast",
314
+ "command",
315
+ "feedback",
316
+ ] as const;
317
+
310
318
  const REVIEW_DELETED_VIA = ["home"] as const;
311
319
 
312
320
  export const ERROR_PROCESS = ["main", "renderer", "canvas", "server"] as const;
@@ -643,6 +651,10 @@ export const UI_TELEMETRY_EVENTS = {
643
651
  event: "review_discord_dialog_dismissed",
644
652
  properties: {},
645
653
  },
654
+ release_notes_opened: {
655
+ event: "review_release_notes_opened",
656
+ properties: { via: RELEASE_NOTES_VIA, version: "release_version" },
657
+ },
646
658
  peek_resolved: {
647
659
  event: "review_peek_resolved",
648
660
  properties: { root_kind: PEEK_ROOT_KIND },
@@ -1,2 +0,0 @@
1
- import { n as runReviewAgentCli } from "./agent-cli-D2WEQwul.js";
2
- export { runReviewAgentCli };