diff --git a/apps/review-desktop/code-oss/extensions/review-themes/package.json b/apps/review-desktop/code-oss/extensions/review-themes/package.json index 455a66e86..8dd58ba0f 100644 --- a/apps/review-desktop/code-oss/extensions/review-themes/package.json +++ b/apps/review-desktop/code-oss/extensions/review-themes/package.json @@ -1,7 +1,7 @@ { "name": "review-themes", - "displayName": "Review Themes", - "description": "Themes for /dev/fast Review.", + "displayName": "Whiteboard Themes", + "description": "Themes for /dev/fast Whiteboard.", "categories": [ "Themes" ], @@ -14,12 +14,14 @@ "contributes": { "themes": [ { - "label": "Review Dark", + "id": "Review Dark", + "label": "Whiteboard Dark", "uiTheme": "vs-dark", "path": "./themes/review-dark.json" }, { - "label": "Review Light", + "id": "Review Light", + "label": "Whiteboard Light", "uiTheme": "vs", "path": "./themes/review-light.json" } diff --git a/apps/review-desktop/code-oss/extensions/review-themes/themes/review-dark.json b/apps/review-desktop/code-oss/extensions/review-themes/themes/review-dark.json index 2f3a204f2..0ef77adbf 100644 --- a/apps/review-desktop/code-oss/extensions/review-themes/themes/review-dark.json +++ b/apps/review-desktop/code-oss/extensions/review-themes/themes/review-dark.json @@ -4,7 +4,7 @@ // the include only supplies grammar coverage. Roles: keyword, type, function, ink, string, number, // operator, comment, inserted, deleted. Regenerated from the Whiteboard System — Syntax themes board. "$schema": "vscode://schemas/color-theme", - "name": "Review Dark", + "name": "Whiteboard Dark", "include": "./../../theme-defaults/themes/dark_plus.json", "semanticHighlighting": true, "tokenColors": [ diff --git a/apps/review-desktop/code-oss/extensions/review-themes/themes/review-light.json b/apps/review-desktop/code-oss/extensions/review-themes/themes/review-light.json index 3b1f48ebb..3fc3e8084 100644 --- a/apps/review-desktop/code-oss/extensions/review-themes/themes/review-light.json +++ b/apps/review-desktop/code-oss/extensions/review-themes/themes/review-light.json @@ -4,7 +4,7 @@ // the include only supplies grammar coverage. Roles: keyword, type, function, ink, string, number, // operator, comment, inserted, deleted. Regenerated from the Whiteboard System — Syntax themes board. "$schema": "vscode://schemas/color-theme", - "name": "Review Light", + "name": "Whiteboard Light", "include": "./../../theme-defaults/themes/light_plus.json", "semanticHighlighting": true, "tokenColors": [ diff --git a/apps/review-desktop/code-oss/product.json b/apps/review-desktop/code-oss/product.json index c9a69d9f3..1178f9316 100644 --- a/apps/review-desktop/code-oss/product.json +++ b/apps/review-desktop/code-oss/product.json @@ -1,6 +1,6 @@ { - "nameShort": "Review", - "nameLong": "/dev/fast Review", + "nameShort": "Whiteboard", + "nameLong": "/dev/fast Whiteboard", "reviewVersion": "0.0.33", "applicationName": "review", "dataFolderName": ".dev-fast-review", @@ -16,7 +16,7 @@ "serverDataFolderName": ".vscode-server-oss", "tunnelApplicationName": "code-tunnel-oss", "win32DirName": "Review", - "win32NameVersion": "/dev/fast Review", + "win32NameVersion": "/dev/fast Whiteboard", "win32RegValueName": "Review", "win32x64AppId": "{{B35E642E-885D-48BC-8386-C06377164CC5}", "win32arm64AppId": "{{6854770A-F656-4CAC-9F4C-A50D0B97F241}", diff --git a/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewCanvasEditor.contribution.ts b/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewCanvasEditor.contribution.ts index ca86405e3..91d678e2c 100644 --- a/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewCanvasEditor.contribution.ts +++ b/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewCanvasEditor.contribution.ts @@ -35,7 +35,7 @@ Registry.as(EditorExtensions.EditorFactory).registerEdit ); Registry.as(EditorExtensions.EditorPane).registerEditorPane( - EditorPaneDescriptor.create(ReviewCanvasEditorPane, ReviewCanvasEditorPane.ID, "Review"), + EditorPaneDescriptor.create(ReviewCanvasEditorPane, ReviewCanvasEditorPane.ID, "Whiteboard"), [new SyncDescriptor(ReviewCanvasEditorInput)], ); diff --git a/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewCanvasEditorInput.ts b/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewCanvasEditorInput.ts index 2e18cd360..b67924b90 100644 --- a/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewCanvasEditorInput.ts +++ b/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewCanvasEditorInput.ts @@ -98,7 +98,7 @@ export class ReviewCanvasEditorInput extends EditorInput { if (this.target.kind === "home") return "Home"; if (this.target.kind === "welcome") return "Welcome"; if (this.target.kind === "settings") return "Settings"; - return "Review"; + return "Session"; } override getIcon(): ThemeIcon | undefined { diff --git a/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewCanvasPart.ts b/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewCanvasPart.ts index 2d2d48e00..4f46a7e8c 100644 --- a/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewCanvasPart.ts +++ b/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewCanvasPart.ts @@ -238,7 +238,7 @@ export class ReviewCanvasEditorPane extends EditorPane { protected override createEditor(parent: HTMLElement): void { parent.classList.add("review-canvas-part"); this.targetDocument = parent.ownerDocument; - parent.ownerDocument.title = "Review"; + parent.ownerDocument.title = "Whiteboard"; parent.ownerDocument.body.dataset["reviewCanvasMode"] = "renderer"; const outer = $(".content.review-canvas-container"); this.container = $(".review-canvas-host"); @@ -339,7 +339,7 @@ export class ReviewCanvasEditorPane extends EditorPane { this.setCanvasState("active", reviewId); void this.apiCatalog .attention(reviewId, "view") - .catch((error) => this.logService.warn("[Review] Could not mark review viewed:", error)); + .catch((error) => this.logService.warn("[Whiteboard] Could not mark session viewed:", error)); let sourceSelection: ReviewSourceSelection = { reviewId, kind: "current" }; let sourceView: ReviewSourceView = resolveReviewSourceView({ reviewId, version: 0, pins: {} }); const source = this.apiSource.canvas(() => sourceView, this.inlineEditors, this.diffViews); @@ -490,7 +490,7 @@ export class ReviewCanvasEditorPane extends EditorPane { if (input.target.kind === "welcome") { void this.desktopConnection .prepareTutorial() - .catch((error) => this.logService.warn("[Review] Tutorial preparation did not complete:", error)); + .catch((error) => this.logService.warn("[Whiteboard] Tutorial preparation did not complete:", error)); this.renderedInput = input; this.setCanvasState("home"); /* Same stale-resume guard as Home: the install fetch suspends, and @@ -637,7 +637,7 @@ export class ReviewCanvasEditorPane extends EditorPane { try { return await this.loadInstallContent(); } catch (error) { - this.logService.warn("Review install status failed", error); + this.logService.warn("Whiteboard install status failed", error); return undefined; } } @@ -956,7 +956,7 @@ export class ReviewCanvasEditorPane extends EditorPane { /* webpackIgnore: true */ trustedUrl as unknown as string )) as ReviewCanvasAssetsModule; if (typeof assets.mountReviewCanvas !== "function") { - throw new Error("Review canvas bundle has no mount function."); + throw new Error("Whiteboard canvas bundle has no mount function."); } await Promise.all(assets.reviewStylesheetUrls.map((stylesheet) => loadStylesheet(document, stylesheet))); return assets; @@ -1026,7 +1026,7 @@ export class ReviewCanvasEditorPane extends EditorPane { delete this.targetDocument?.body.dataset["reviewCanvasReady"]; } const method = diagnostic.level === "error" ? console.error : console.warn; - method(`[Review canvas ${diagnostic.source}] ${diagnostic.message}`, diagnostic.stack ?? ""); + method(`[Whiteboard canvas ${diagnostic.source}] ${diagnostic.message}`, diagnostic.stack ?? ""); lifecycle?.reportDiagnostic(diagnostic); }, }; @@ -1133,7 +1133,7 @@ function loadStylesheet(document: Document, url: string): Promise { link.href = url; link.dataset["reviewCanvasStylesheet"] = "true"; link.addEventListener("load", () => resolve(), { once: true }); - link.addEventListener("error", () => reject(new Error(`Review canvas stylesheet failed: ${url}`)), { once: true }); + link.addEventListener("error", () => reject(new Error(`Whiteboard canvas stylesheet failed: ${url}`)), { once: true }); document.head.appendChild(link); }); } diff --git a/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewFind.contribution.ts b/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewFind.contribution.ts index 0124ecad9..a21265cb1 100644 --- a/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewFind.contribution.ts +++ b/apps/review-desktop/code-oss/src/vs/review/browser/parts/canvas/reviewFind.contribution.ts @@ -23,7 +23,7 @@ class ReviewFindAction extends Action2 { constructor() { super({ id: REVIEW_FIND_COMMAND_ID, - title: localize2("review.action.find", "Find in Review"), + title: localize2("review.action.find", "Find in session"), keybinding: { weight: KeybindingWeight.WorkbenchContrib, primary: KeyMod.CtrlCmd | KeyCode.KeyF, diff --git a/apps/review-desktop/code-oss/src/vs/review/browser/parts/explorer/reviewExplorerPart.ts b/apps/review-desktop/code-oss/src/vs/review/browser/parts/explorer/reviewExplorerPart.ts index 0b0900a57..3820f4af3 100644 --- a/apps/review-desktop/code-oss/src/vs/review/browser/parts/explorer/reviewExplorerPart.ts +++ b/apps/review-desktop/code-oss/src/vs/review/browser/parts/explorer/reviewExplorerPart.ts @@ -191,7 +191,7 @@ class ReviewExplorerRenderer extends Disposable implements ITreeRenderer = { - getWidgetAriaLabel: () => localize("review.explorer.ariaLabel", "Review Files"), + getWidgetAriaLabel: () => localize("review.explorer.ariaLabel", "Session files"), getAriaLabel: (element: IFileStat) => basename(element.resource), }; diff --git a/apps/review-desktop/code-oss/src/vs/review/browser/parts/reviewLinuxTitlebar.ts b/apps/review-desktop/code-oss/src/vs/review/browser/parts/reviewLinuxTitlebar.ts index 1e534652a..0bd68a487 100644 --- a/apps/review-desktop/code-oss/src/vs/review/browser/parts/reviewLinuxTitlebar.ts +++ b/apps/review-desktop/code-oss/src/vs/review/browser/parts/reviewLinuxTitlebar.ts @@ -36,8 +36,8 @@ export class ReviewLinuxTitlebar extends Disposable { ) { super(); const menu = append(left, $('button.review-application-menu', { - type: 'button', title: localize('review.menu.title', "Review menu (F10)"), - 'aria-label': localize('review.menu.label', "Review menu"), 'aria-haspopup': 'menu', 'aria-expanded': 'false', + type: 'button', title: localize('review.menu.title', "Whiteboard menu (F10)"), + 'aria-label': localize('review.menu.label', "Whiteboard menu"), 'aria-haspopup': 'menu', 'aria-expanded': 'false', })); append(menu, renderIcon(Codicon.menu)); let dialogOpen = false; @@ -57,9 +57,9 @@ export class ReviewLinuxTitlebar extends Disposable { command('review.openWelcome', localize('review.menu.welcome', "Getting Started...")), new Separator(), command('review.checkForUpdates', localize('review.menu.updates', "Check for Updates...")), - toAction({ id: 'review.about', label: localize('review.menu.about', "About Review"), run: () => dialogService.about() }), + toAction({ id: 'review.about', label: localize('review.menu.about', "About Whiteboard"), run: () => dialogService.about() }), new Separator(), - command('workbench.action.quit', localize('review.menu.quit', "Quit Review")), + command('workbench.action.quit', localize('review.menu.quit', "Quit Whiteboard")), ], getKeyBinding: action => keybindingService.lookupKeybinding(action.id), onHide: () => { menu.setAttribute('aria-expanded', 'false'); menu.focus(); }, diff --git a/apps/review-desktop/code-oss/src/vs/review/browser/reviewCommunity.contribution.ts b/apps/review-desktop/code-oss/src/vs/review/browser/reviewCommunity.contribution.ts index 6e5e923a0..892b4fc45 100644 --- a/apps/review-desktop/code-oss/src/vs/review/browser/reviewCommunity.contribution.ts +++ b/apps/review-desktop/code-oss/src/vs/review/browser/reviewCommunity.contribution.ts @@ -41,7 +41,7 @@ export class ReviewCommunityContribution implements IWorkbenchContribution { } const result = await dialogService.confirm({ type: 'info', - message: 'Join the Review community', + message: 'Join the Whiteboard community', detail: 'Meet the team, ask questions, and share feedback in the /dev/fast Discord. You can also join anytime using the Discord link next to Report a bug.', primaryButton: 'Join Discord', cancelButton: 'Not now', diff --git a/apps/review-desktop/code-oss/src/vs/review/browser/reviewTheme.contribution.ts b/apps/review-desktop/code-oss/src/vs/review/browser/reviewTheme.contribution.ts index c6eef657f..eef329170 100644 --- a/apps/review-desktop/code-oss/src/vs/review/browser/reviewTheme.contribution.ts +++ b/apps/review-desktop/code-oss/src/vs/review/browser/reviewTheme.contribution.ts @@ -19,7 +19,7 @@ class SelectReviewThemeAction extends Action2 { constructor() { super({ id: 'review.selectTheme', - title: localize2('review.selectTheme', "Review: Theme"), + title: localize2('review.selectTheme', "Whiteboard: Theme"), f1: true }); } @@ -36,7 +36,7 @@ class SelectReviewThemeAction extends Action2 { ]; const picked = await quickInputService.pick(items, { - title: localize('review.theme.title', "Review: Theme"), + title: localize('review.theme.title', "Whiteboard: Theme"), placeHolder: localize('review.theme.placeholder', "Select a theme") }); if (!picked) { diff --git a/apps/review-desktop/code-oss/src/vs/review/common/reviewConfiguration.ts b/apps/review-desktop/code-oss/src/vs/review/common/reviewConfiguration.ts index afa01a274..45ccf45b0 100644 --- a/apps/review-desktop/code-oss/src/vs/review/common/reviewConfiguration.ts +++ b/apps/review-desktop/code-oss/src/vs/review/common/reviewConfiguration.ts @@ -26,7 +26,7 @@ const configurationRegistry = Registry.as(Extensions.Con configurationRegistry.registerConfiguration({ id: 'review', - title: localize('reviewConfigurationTitle', "Review"), + title: localize('reviewConfigurationTitle', "Whiteboard"), type: 'object', scope: ConfigurationScope.APPLICATION, properties: { @@ -34,12 +34,12 @@ configurationRegistry.registerConfiguration({ type: 'string', enum: [...REVIEW_KEYMAPS], default: 'none', - description: localize('review.keymap', "Select the curated keymap extension Review enables."), + description: localize('review.keymap', "Select the curated keymap extension Whiteboard enables."), }, [REVIEW_TELEMETRY_SETTING]: { type: 'boolean', default: true, - description: localize('review.telemetry.enabled', "Send anonymous Review usage data."), + description: localize('review.telemetry.enabled', "Send anonymous Whiteboard usage data."), }, [REVIEW_STRUCTURAL_DIFF_SETTING]: { type: 'boolean', @@ -49,7 +49,7 @@ configurationRegistry.registerConfiguration({ [REVIEW_SOFTWARE_MAP_SETTING]: { type: 'boolean', default: false, - description: localize('review.experimental.softwareMap.enabled', "Show the experimental Software Map view in reviews."), + description: localize('review.experimental.softwareMap.enabled', "Show the experimental Software Map view in sessions."), }, }, }); diff --git a/apps/review-desktop/code-oss/src/vs/review/common/reviewConfigurationDefaults.test.ts b/apps/review-desktop/code-oss/src/vs/review/common/reviewConfigurationDefaults.test.ts deleted file mode 100644 index eaef6b036..000000000 --- a/apps/review-desktop/code-oss/src/vs/review/common/reviewConfigurationDefaults.test.ts +++ /dev/null @@ -1,35 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) dev.fast. All rights reserved. - * Licensed under the MIT License. See LICENSE in the repository root for license information. - *--------------------------------------------------------------------------------------------*/ - -import assert from 'node:assert/strict'; -import test from 'node:test'; - -import { REVIEW_KEYMAP_SETTING, reviewConfigurationDefaults } from './reviewConfigurationDefaults.js'; - -test('turns off diff indicators for the indicator-free visual language', () => { - assert.equal(reviewConfigurationDefaults['diffEditor.renderIndicators'], false); -}); - -test('titles the window Review and enables the native navigation control', () => { - assert.equal(reviewConfigurationDefaults['window.title'], 'Review'); - assert.equal(reviewConfigurationDefaults['workbench.navigationControl.enabled'], true); -}); - -test('names the curated keymap setting review.keymap', () => { - assert.equal(REVIEW_KEYMAP_SETTING, 'review.keymap'); -}); - -test('keeps the VSCodium-derived opt-out defaults', () => { - assert.equal(reviewConfigurationDefaults['telemetry.telemetryLevel'], 'off'); - assert.equal(reviewConfigurationDefaults['telemetry.enableTelemetry'], false); - assert.equal(reviewConfigurationDefaults['telemetry.enableCrashReporter'], false); - assert.equal(reviewConfigurationDefaults['telemetry.editStats.enabled'], false); - assert.equal(reviewConfigurationDefaults['workbench.enableExperiments'], false); - assert.equal( - reviewConfigurationDefaults['workbench.commandPalette.experimental.enableNaturalLanguageSearch'], - false, - ); - assert.equal(reviewConfigurationDefaults['workbench.settings.enableNaturalLanguageSearch'], false); -}); diff --git a/apps/review-desktop/code-oss/src/vs/review/common/reviewConfigurationDefaults.ts b/apps/review-desktop/code-oss/src/vs/review/common/reviewConfigurationDefaults.ts index 039f8d666..b304b5708 100644 --- a/apps/review-desktop/code-oss/src/vs/review/common/reviewConfigurationDefaults.ts +++ b/apps/review-desktop/code-oss/src/vs/review/common/reviewConfigurationDefaults.ts @@ -48,7 +48,7 @@ export const reviewConfigurationDefaults = { 'workbench.startupEditor': 'none', 'workbench.activityBar.location': 'hidden', 'workbench.statusBar.visible': false, - 'window.title': 'Review', + 'window.title': 'Whiteboard', 'window.commandCenter': false, 'workbench.navigationControl.enabled': true, 'window.menuBarVisibility': 'hidden', diff --git a/apps/review-desktop/code-oss/src/vs/review/common/reviewDesktopBootstrap.ts b/apps/review-desktop/code-oss/src/vs/review/common/reviewDesktopBootstrap.ts index 2288e1085..0fe4556dd 100644 --- a/apps/review-desktop/code-oss/src/vs/review/common/reviewDesktopBootstrap.ts +++ b/apps/review-desktop/code-oss/src/vs/review/common/reviewDesktopBootstrap.ts @@ -115,14 +115,14 @@ export class ReviewReadyEventReader { typeof token !== "string" || typeof instanceId !== "string" ) { - throw new Error("The Review server ready event is malformed."); + throw new Error("The Whiteboard server ready event is malformed."); } if ( token !== this.credentials.token || instanceId !== this.credentials.instanceId ) { throw new Error( - "The Review server ready event carried unexpected credentials.", + "The Whiteboard server ready event carried unexpected credentials.", ); } const cliPath = event["cliPath"]; diff --git a/apps/review-desktop/code-oss/src/vs/review/contrib/explorer/reviewFileTree.contribution.ts b/apps/review-desktop/code-oss/src/vs/review/contrib/explorer/reviewFileTree.contribution.ts index 190ae5d65..73d16c564 100644 --- a/apps/review-desktop/code-oss/src/vs/review/contrib/explorer/reviewFileTree.contribution.ts +++ b/apps/review-desktop/code-oss/src/vs/review/contrib/explorer/reviewFileTree.contribution.ts @@ -33,7 +33,7 @@ class ToggleReviewFileTreeAction extends Action2 { constructor() { super({ id: 'review.toggleFileTree', - title: localize2('review.toggleFileTree', "Review: Toggle File Tree"), + title: localize2('review.toggleFileTree', "Whiteboard: Toggle File Tree"), f1: true, keybinding: { weight: KeybindingWeight.WorkbenchContrib + 1, diff --git a/apps/review-desktop/code-oss/src/vs/review/contrib/extensions/reviewCuratedExtensions.contribution.ts b/apps/review-desktop/code-oss/src/vs/review/contrib/extensions/reviewCuratedExtensions.contribution.ts index f1c787b89..5fe679dc9 100644 --- a/apps/review-desktop/code-oss/src/vs/review/contrib/extensions/reviewCuratedExtensions.contribution.ts +++ b/apps/review-desktop/code-oss/src/vs/review/contrib/extensions/reviewCuratedExtensions.contribution.ts @@ -71,7 +71,7 @@ const OPTIONAL_GROUPS: readonly { group: string; label: string; detail?: string { group: 'csharp', label: localize('review.curated.csharp', "C#"), - detail: localize('review.curated.csharp.requiresDotnet', "Requires a system .NET SDK. Review does not download .NET.") + detail: localize('review.curated.csharp.requiresDotnet', "Requires a system .NET SDK. Whiteboard does not download .NET.") }, { group: 'go', @@ -190,7 +190,7 @@ async function applyReviewKeymap(accessor: ServicesAccessor, keymap: ReviewKeyma // rather than force it. const reload = await dialogService.confirm({ type: 'info', - message: localize('review.keymap.reload', "Reload Review to apply the keymap?"), + message: localize('review.keymap.reload', "Reload Whiteboard to apply the keymap?"), detail: localize('review.keymap.reloadDetail', "Keymap extensions only take effect after the extension host restarts."), primaryButton: localize('review.keymap.reloadNow', "&&Reload"), cancelButton: localize('review.keymap.reloadLater', "Later"), @@ -242,7 +242,7 @@ async function stageRustAnalyzer( try { await mainProcessService.getChannel(REVIEW_DESKTOP_CHANNEL).call('stageRustAnalyzer'); } catch (error) { - logService.error(`[Review extensions] Could not stage rust-analyzer: ${getErrorMessage(error)}`); + logService.error(`[Whiteboard extensions] Could not stage rust-analyzer: ${getErrorMessage(error)}`); } } @@ -360,7 +360,7 @@ class ManageCuratedExtensionsAction extends Action2 { const confirmation = await dialogService.confirm({ type: 'warning', message: localize('review.curated.confirmUninstall', "Uninstall {0}?", item.label), - detail: localize('review.curated.confirmUninstallDetail', "Review will remove all user-installed members of this language group."), + detail: localize('review.curated.confirmUninstallDetail', "Whiteboard will remove all user-installed members of this language group."), primaryButton: localize('review.curated.uninstallNow', "&&Uninstall") }); if (!confirmation.confirmed) { @@ -390,7 +390,7 @@ class ManageCuratedExtensionsAction extends Action2 { } catch (error) { notificationService.error(localize( 'review.curated.uninstallFailed', - "Review could not uninstall the optional extension group: {0}", + "Whiteboard could not uninstall the optional extension group: {0}", getErrorMessage(error) )); } @@ -475,13 +475,13 @@ class ManageCuratedExtensionsAction extends Action2 { for (const rollbackError of error.rollbackErrors) { notificationService.error(localize( 'review.curated.rollbackFailed', - "Review could not roll back an optional extension: {0}", + "Whiteboard could not roll back an optional extension: {0}", getErrorMessage(rollbackError) )); } const message = error.phase === 'download' - ? localize('review.curated.downloadFailed', "Review could not download an optional extension: {0}", getErrorMessage(error.originalError)) - : localize('review.curated.installFailed', "Review could not install an optional extension: {0}", getErrorMessage(error.originalError)); + ? localize('review.curated.downloadFailed', "Whiteboard could not download an optional extension: {0}", getErrorMessage(error.originalError)) + : localize('review.curated.installFailed', "Whiteboard could not install an optional extension: {0}", getErrorMessage(error.originalError)); notificationService.error(message); } else { notificationService.error(getErrorMessage(error)); @@ -532,7 +532,7 @@ class ImportUserConfigAction extends Action2 { constructor() { super({ id: 'review.importUserConfig', - title: localize2('review.importUserConfig', "Review: Import VS Code Settings and Keybindings..."), + title: localize2('review.importUserConfig', "Whiteboard: Import VS Code Settings and Keybindings..."), f1: true, }); } @@ -549,14 +549,14 @@ class ImportUserConfigAction extends Action2 { if (preview.status === 'disabled') { await dialogService.info( localize('review.importUserConfig.disabled', "VS Code settings import is disabled."), - localize('review.importUserConfig.disabledDetail', "Unset DEV_REVIEW_IMPORT_FROM=none and restart Review to enable imports."), + localize('review.importUserConfig.disabledDetail', "Unset DEV_REVIEW_IMPORT_FROM=none and restart Whiteboard to enable imports."), ); return; } if (preview.status === 'not-found' || !preview.source) { await dialogService.info( localize('review.importUserConfig.notFound', "No VS Code settings were found."), - localize('review.importUserConfig.notFoundDetail', "Review checks Code, Code - Insiders, VSCodium, and Cursor's default profiles."), + localize('review.importUserConfig.notFoundDetail', "Whiteboard checks Code, Code - Insiders, VSCodium, and Cursor's default profiles."), ); return; } @@ -564,12 +564,12 @@ class ImportUserConfigAction extends Action2 { const overwriteDetail = preview.wouldOverwrite.length > 0 ? localize( 'review.importUserConfig.overwriteDetail', - "The following Review files will be overwritten:\n{0}", + "The following Whiteboard files will be overwritten:\n{0}", preview.wouldOverwrite.join('\n'), ) : localize( 'review.importUserConfig.createDetail', - "Review will create settings files under its user profile. Source:\n{0}", + "Whiteboard will create settings files under its user profile. Source:\n{0}", preview.source, ); const confirmation = await dialogService.confirm({ @@ -593,7 +593,7 @@ class ImportUserConfigAction extends Action2 { const reload = await dialogService.confirm({ type: 'info', message: localize('review.importUserConfig.complete', "VS Code settings and keybindings were imported."), - detail: localize('review.importUserConfig.reloadDetail', "Reload Review to apply keybindings and keymap extension changes."), + detail: localize('review.importUserConfig.reloadDetail', "Reload Whiteboard to apply keybindings and keymap extension changes."), primaryButton: localize('review.importUserConfig.reload', "Reload"), }); if (reload.confirmed) { @@ -601,7 +601,7 @@ class ImportUserConfigAction extends Action2 { } } catch (error) { await dialogService.error( - localize('review.importUserConfig.error', "Review could not import VS Code settings and keybindings."), + localize('review.importUserConfig.error', "Whiteboard could not import VS Code settings and keybindings."), String(error), ); } @@ -683,7 +683,7 @@ class OptionalExtensionPinUpgrades implements IWorkbenchContribution { @IReviewTelemetryService private readonly reviewTelemetryService: IReviewTelemetryService ) { void this.run().catch(error => { - this.logService.error(`[Review extensions] Could not check optional extension pins: ${getErrorMessage(error)}`); + this.logService.error(`[Whiteboard extensions] Could not check optional extension pins: ${getErrorMessage(error)}`); }); } @@ -707,7 +707,7 @@ class OptionalExtensionPinUpgrades implements IWorkbenchContribution { }, stageRustAnalyzer: () => stageRustAnalyzer(this.mainProcessService, this.logService), logError: (message, error) => { - this.logService.error(`[Review extensions] ${message}: ${getErrorMessage(error)}`); + this.logService.error(`[Whiteboard extensions] ${message}: ${getErrorMessage(error)}`); }, onInstalled: (extensionId, trigger, durationMs) => { this.reviewTelemetryService.capture('extension_installed', { diff --git a/apps/review-desktop/code-oss/src/vs/review/contrib/install/reviewCliInstall.contribution.ts b/apps/review-desktop/code-oss/src/vs/review/contrib/install/reviewCliInstall.contribution.ts index 8affdf8d2..ea83f93bf 100644 --- a/apps/review-desktop/code-oss/src/vs/review/contrib/install/reviewCliInstall.contribution.ts +++ b/apps/review-desktop/code-oss/src/vs/review/contrib/install/reviewCliInstall.contribution.ts @@ -39,7 +39,7 @@ class OpenWelcomeAction extends Action2 { constructor() { super({ id: "review.openWelcome", - title: localize2("review.welcome", "Review: Welcome..."), + title: localize2("review.welcome", "Whiteboard: Welcome..."), f1: true, }); } @@ -55,7 +55,7 @@ class OpenTutorialAction extends Action2 { constructor() { super({ id: "review.openTutorial", - title: localize2("review.openTutorial", "Review: Open Tutorial..."), + title: localize2("review.openTutorial", "Whiteboard: Open Tutorial..."), f1: true, }); } @@ -69,7 +69,7 @@ class OpenTutorialAction extends Action2 { await tabsService.openApiReview(opened.reviewUuid, opened.title); } catch (error) { notificationService.error( - localize("review.tutorial.failed", "Review could not open the tutorial: {0}", String(error)), + localize("review.tutorial.failed", "Whiteboard could not open the tutorial: {0}", String(error)), ); } } @@ -81,7 +81,7 @@ class InstallReviewCliInPathAction extends Action2 { constructor() { super({ id: "review.installCliInPath", - title: localize2("review.installCliInPath", "Review: Install CLI in PATH"), + title: localize2("review.installCliInPath", "Whiteboard: Install CLI in PATH"), f1: true, }); } @@ -98,8 +98,8 @@ class InstallReviewCliInPathAction extends Action2 { notificationService.info( localize( "review.cliInstall.installed", - "Review installed the CLI at {0}. New terminals can use the review command.", - installed.shimPath ?? "~/.local/bin/review", + "Whiteboard installed the CLI at {0}. New terminals can use the whiteboard command.", + installed.shimPath ?? "~/.local/bin/whiteboard", ), ); } catch (error) { @@ -107,7 +107,7 @@ class InstallReviewCliInPathAction extends Action2 { return; } notificationService.error( - localize("review.cliInstall.failed", "Review could not install the CLI in PATH: {0}", String(error)), + localize("review.cliInstall.failed", "Whiteboard could not install the CLI in PATH: {0}", String(error)), ); } } @@ -117,7 +117,7 @@ registerAction2(InstallReviewCliInPathAction); /** * Removes everything the app installed on this machine: the tutorial, the - * review terminal command, managed trace capture, and the consent stamp. It then + * whiteboard terminal command, managed trace capture, and the consent stamp. It then * points at the app bundle so the user can move it to the Trash. Other Review * data stays untouched. Resetting the stamp makes a later reinstall start as * a first run. @@ -126,7 +126,7 @@ class UninstallReviewDesktopAction extends Action2 { constructor() { super({ id: "review.uninstallApp", - title: localize2("review.uninstallApp", "Review: Uninstall Review Desktop..."), + title: localize2("review.uninstallApp", "Whiteboard: Uninstall Whiteboard Desktop..."), f1: true, }); } @@ -141,19 +141,19 @@ class UninstallReviewDesktopAction extends Action2 { const status = await desktopConnection.getCliInstallStatus(); const detail = [ status.stamp?.shimPath - ? localize("review.uninstall.shim", "Removes the review terminal command at {0}.", status.stamp.shimPath) - : localize("review.uninstall.noShim", "The review terminal command is not installed."), + ? localize("review.uninstall.shim", "Removes the whiteboard terminal command at {0}.", status.stamp.shimPath) + : localize("review.uninstall.noShim", "The whiteboard terminal command is not installed."), status.stamp?.traceManaged ? localize( "review.uninstall.trace", "Disables trace capture and restores hook paths for known repositories. R2 credentials stay on disk.", ) - : localize("review.uninstall.noTrace", "Trace capture is not managed by Review."), - localize("review.uninstall.tutorial", "Removes the bundled tutorial repository and Review."), - localize("review.uninstall.keepsData", "Your reviews and their history stay on disk."), + : localize("review.uninstall.noTrace", "Trace capture is not managed by Whiteboard."), + localize("review.uninstall.tutorial", "Removes the bundled tutorial repository and session."), + localize("review.uninstall.keepsData", "Your sessions and their history stay on disk."), ].join("\n"); const { confirmed } = await dialogService.confirm({ - message: localize("review.uninstall.confirm", "Remove everything Review Desktop installed on this machine?"), + message: localize("review.uninstall.confirm", "Remove everything Whiteboard Desktop installed on this machine?"), detail, primaryButton: localize("review.uninstall.remove", "&&Remove"), }); @@ -178,13 +178,13 @@ class UninstallReviewDesktopAction extends Action2 { await desktopConnection.resetCliInstallPrompts(); if (tutorialError) { await dialogService.error( - localize("review.uninstall.tutorialFailed", "Review could not remove the tutorial data at ~/.dev/tutorial."), + localize("review.uninstall.tutorialFailed", "Whiteboard could not remove the tutorial data at ~/.dev/tutorial."), String(tutorialError), ); } } catch (error) { await dialogService.error( - localize("review.uninstall.failed", "Review could not remove its command and trace setup."), + localize("review.uninstall.failed", "Whiteboard could not remove its command and trace setup."), String(error), ); return; @@ -192,10 +192,10 @@ class UninstallReviewDesktopAction extends Action2 { if (isLinux) { await dialogService.info( - localize("review.uninstall.linuxDone", "Review’s user-installed integrations were removed."), + localize("review.uninstall.linuxDone", "Whiteboard’s user-installed integrations were removed."), localize( "review.uninstall.linuxFinish", - "To remove the app, quit Review and run sudo apt remove dev-fast-review on Ubuntu, or sudo pacman -R dev-fast-review on Omarchy / Arch. Your reviews and settings stay on disk.", + "To remove the app, quit Whiteboard and run sudo apt remove dev-fast-review on Ubuntu, or sudo pacman -R dev-fast-review on Omarchy / Arch. Your sessions and settings stay on disk.", ), ); return; @@ -204,10 +204,10 @@ class UninstallReviewDesktopAction extends Action2 { const bundlePath = macAppBundlePath(environmentService.appRoot); if (bundlePath) { const { confirmed: reveal } = await dialogService.confirm({ - message: localize("review.uninstall.done", "Review's command and trace setup were removed."), + message: localize("review.uninstall.done", "Whiteboard's command and trace setup were removed."), detail: localize( "review.uninstall.finish", - "To finish, quit Review Desktop and move {0} to the Trash.", + "To finish, quit Whiteboard Desktop and move {0} to the Trash.", bundlePath, ), primaryButton: localize("review.uninstall.reveal", "&&Show in Finder"), @@ -218,7 +218,7 @@ class UninstallReviewDesktopAction extends Action2 { } } else { await dialogService.info( - localize("review.uninstall.done", "Review's command and trace setup were removed."), + localize("review.uninstall.done", "Whiteboard's command and trace setup were removed."), localize("review.uninstall.finishDev", "This is a development build, so there is no app bundle to remove."), ); } @@ -256,7 +256,7 @@ class ReviewCliInstallStartup implements IWorkbenchContribution { this.notificationService.warn( localize( "review.cliInstall.updateFailed", - "Review could not update its CLI: {0}. Retry from Getting Started, or restart Review.", + "Whiteboard could not update its CLI: {0}. Retry from Getting Started, or restart Whiteboard.", String(error), ), ); @@ -280,7 +280,7 @@ class ReviewCliInstallStartup implements IWorkbenchContribution { autoUpdate: true, }); // Review has no status bar; status() messages would be dropped. - this.notificationService.info(localize("review.cliInstall.resyncedCli", "Review updated the installed CLI.")); + this.notificationService.info(localize("review.cliInstall.resyncedCli", "Whiteboard updated the installed CLI.")); return; case "none": return; diff --git a/apps/review-desktop/code-oss/src/vs/review/contrib/quickaccess/reviewQuickAccess.contribution.ts b/apps/review-desktop/code-oss/src/vs/review/contrib/quickaccess/reviewQuickAccess.contribution.ts index b5c9acc70..515b19ddb 100644 --- a/apps/review-desktop/code-oss/src/vs/review/contrib/quickaccess/reviewQuickAccess.contribution.ts +++ b/apps/review-desktop/code-oss/src/vs/review/contrib/quickaccess/reviewQuickAccess.contribution.ts @@ -68,9 +68,9 @@ Registry.as(Extensions.Quickaccess).registerQuickAccessPro ctor: ReviewCommandsQuickAccessProvider, prefix: ReviewCommandsQuickAccessProvider.PREFIX, contextKey: 'inCommandsPicker', - placeholder: localize('reviewCommandsQuickAccessPlaceholder', 'Type the name of an editor or Review command to run.'), + placeholder: localize('reviewCommandsQuickAccessPlaceholder', 'Type the name of an editor or Whiteboard command to run.'), helpEntries: [{ - description: localize('reviewCommandsQuickAccess', 'Show and run Review commands'), + description: localize('reviewCommandsQuickAccess', 'Show and run Whiteboard commands'), commandId: ShowAllCommandsAction.ID, commandCenterOrder: 20 }] diff --git a/apps/review-desktop/code-oss/src/vs/review/contrib/settings/reviewSettings.contribution.ts b/apps/review-desktop/code-oss/src/vs/review/contrib/settings/reviewSettings.contribution.ts index 2be4db250..4694aff29 100644 --- a/apps/review-desktop/code-oss/src/vs/review/contrib/settings/reviewSettings.contribution.ts +++ b/apps/review-desktop/code-oss/src/vs/review/contrib/settings/reviewSettings.contribution.ts @@ -18,7 +18,7 @@ class OpenReviewSettingsAction extends Action2 { constructor() { super({ id: 'review.openSettings', - title: localize2('review.openSettings', "Review: Settings..."), + title: localize2('review.openSettings', "Whiteboard: Settings..."), f1: true, keybinding: { weight: KeybindingWeight.WorkbenchContrib, diff --git a/apps/review-desktop/code-oss/src/vs/review/contrib/sharing/reviewSharing.contribution.ts b/apps/review-desktop/code-oss/src/vs/review/contrib/sharing/reviewSharing.contribution.ts index b063b7dd9..a59904a22 100644 --- a/apps/review-desktop/code-oss/src/vs/review/contrib/sharing/reviewSharing.contribution.ts +++ b/apps/review-desktop/code-oss/src/vs/review/contrib/sharing/reviewSharing.contribution.ts @@ -31,7 +31,7 @@ async function openShare( const started = await client.post<{ reviewId: string }>("/sharing/import", { url }); for (;;) { const status = await client.read<{ stage: string; title?: string; error?: string }>(`/sharing/import/${started.reviewId}`); - if (status.stage === "error") throw new Error(status.error ?? "Could not open the shared review."); + if (status.stage === "error") throw new Error(status.error ?? "Could not open the shared session."); if (status.stage === "ready") { await tabs.openApiReview(started.reviewId, status.title ?? "Shared review"); return; @@ -48,7 +48,7 @@ async function openShare( } catch (error) { notifications.prompt( Severity.Error, - error instanceof Error ? error.message : "Could not open the shared review.", + error instanceof Error ? error.message : "Could not open the shared session.", [{ label: "Retry", run: () => openShare(url, session, tabs, notifications, progress) }], ); } @@ -73,7 +73,7 @@ class SharedReviewUrlHandler extends Disposable implements IURLHandler { url.hash = uri.fragment; await openShare(url.href, this.session, this.tabs, this.notifications, this.progress); } catch { - this.notifications.error("Invalid Review share link."); + this.notifications.error("Invalid Whiteboard share link."); } return true; } @@ -87,8 +87,8 @@ registerAction2( class extends Action2 { constructor() { super({ - id: "review.openSharedReview", - title: localize2("review.openSharedReview", "Open Shared Review"), + id: "whiteboard.openSharedSession", + title: localize2("whiteboard.openSharedSession", "Open Shared Session"), f1: true, }); } @@ -100,7 +100,7 @@ registerAction2( const url = await accessor .get(IQuickInputService) .input({ - prompt: "Paste a Review share link", + prompt: "Paste a Whiteboard share link", placeHolder: "https://app.dev.fast/s/…", ignoreFocusLost: true, }); diff --git a/apps/review-desktop/code-oss/src/vs/review/contrib/telemetry/reviewTelemetry.contribution.ts b/apps/review-desktop/code-oss/src/vs/review/contrib/telemetry/reviewTelemetry.contribution.ts index 011328a61..bc3920c6d 100644 --- a/apps/review-desktop/code-oss/src/vs/review/contrib/telemetry/reviewTelemetry.contribution.ts +++ b/apps/review-desktop/code-oss/src/vs/review/contrib/telemetry/reviewTelemetry.contribution.ts @@ -58,7 +58,7 @@ export class ReviewTelemetryNotice implements IWorkbenchContribution { Severity.Info, localize( 'review.telemetry.notice', - "Review sends anonymous usage data. You can change this in Settings.", + "Whiteboard sends anonymous usage data. You can change this in Settings.", ), [{ label: localize( diff --git a/apps/review-desktop/code-oss/src/vs/review/contrib/update/reviewUpdate.contribution.ts b/apps/review-desktop/code-oss/src/vs/review/contrib/update/reviewUpdate.contribution.ts index ec93d8b6f..13843c123 100644 --- a/apps/review-desktop/code-oss/src/vs/review/contrib/update/reviewUpdate.contribution.ts +++ b/apps/review-desktop/code-oss/src/vs/review/contrib/update/reviewUpdate.contribution.ts @@ -105,7 +105,7 @@ class ReviewUpdateNotifications extends Disposable { StorageScope.APPLICATION, StorageTarget.MACHINE, ); - this.logService.error(`[ReviewUpdate] update failed (${failure.targetCommit})`); + this.logService.error(`[WhiteboardUpdate] update failed (${failure.targetCommit})`); this.notificationService.notify({ severity: Severity.Error, message: localize('review.update.installFailed', "Update failed"), @@ -135,12 +135,12 @@ class ReviewUpdateNotifications extends Disposable { // The update landed, so any skip recorded against it is spent. this.storageService.remove(SKIPPED_UPDATE_STORAGE_KEY, StorageScope.APPLICATION); - this.logService.info(`[ReviewUpdate] running the staged update (${this.productService.commit})`); + this.logService.info(`[WhiteboardUpdate] running the staged update (${this.productService.commit})`); this.notificationService.notify({ severity: Severity.Info, message: notice.productVersion - ? localize('review.update.applied', "Review updated to {0}.", notice.productVersion) - : localize('review.update.applied.unknownVersion', "Review has been updated."), + ? localize('review.update.applied', "Whiteboard updated to {0}.", notice.productVersion) + : localize('review.update.applied.unknownVersion', "Whiteboard has been updated."), }); } @@ -160,7 +160,7 @@ class ReviewUpdateNotifications extends Disposable { this.readyCommit = state.update.version; this.readyHandle = this.notificationService.notify({ severity: Severity.Info, - message: localize('review.update.linuxAvailable', "Review {0} is available. Update with your system package manager, then reopen Review.", state.update.productVersion ?? ''), + message: localize('review.update.linuxAvailable', "Whiteboard {0} is available. Update with your system package manager, then reopen Whiteboard.", state.update.productVersion ?? ''), actions: { primary: [toAction({ id: 'review.update.instructions', label: localize('review.update.instructions', "Update Instructions"), run: () => this.updateService.downloadUpdate(true), @@ -178,7 +178,7 @@ class ReviewUpdateNotifications extends Disposable { const next = stagedUpdateFromReady(state.update); if (!next) { - this.logService.warn('[ReviewUpdate] update is ready but carries no commit; nothing to record'); + this.logService.warn('[WhiteboardUpdate] update is ready but carries no commit; nothing to record'); return; } @@ -216,8 +216,8 @@ class ReviewUpdateNotifications extends Disposable { // Waits for a decision rather than expiring unseen. sticky: true, message: next.productVersion - ? localize('review.update.ready', "Review {0} is ready to install.", next.productVersion) - : localize('review.update.ready.unknownVersion', "A Review update is ready to install."), + ? localize('review.update.ready', "Whiteboard {0} is ready to install.", next.productVersion) + : localize('review.update.ready.unknownVersion', "A Whiteboard update is ready to install."), actions: { primary: [ toAction({ diff --git a/apps/review-desktop/code-oss/src/vs/review/contrib/verbs/reviewVerbs.ts b/apps/review-desktop/code-oss/src/vs/review/contrib/verbs/reviewVerbs.ts index 4002ab434..562ba7e1d 100644 --- a/apps/review-desktop/code-oss/src/vs/review/contrib/verbs/reviewVerbs.ts +++ b/apps/review-desktop/code-oss/src/vs/review/contrib/verbs/reviewVerbs.ts @@ -130,7 +130,7 @@ export class ReviewVerbsService extends Disposable implements IReviewVerbsServic case "openDiff": case "reveal": case "openReviewRevision": - throw new Error("This action requires a pinned review canvas."); + throw new Error("This action requires a pinned session canvas."); case "focusCanvas": this._onDidRequestCanvasFocus.fire(); break; @@ -138,7 +138,7 @@ export class ReviewVerbsService extends Disposable implements IReviewVerbsServic return { ok: true, result: await this.captureScreenshot() }; case "openReview": { const review = this.apiCatalog.reviews.find((review) => review.reviewId === request.args.reviewUuid); - if (!review) throw new Error("Review not found."); + if (!review) throw new Error("Session not found."); await this.tabsService.openApiReview(review.reviewId, review.title, request.args.active); break; } diff --git a/apps/review-desktop/code-oss/src/vs/review/electron-main/reviewMenubar.ts b/apps/review-desktop/code-oss/src/vs/review/electron-main/reviewMenubar.ts index 6a39cefb0..09447be32 100644 --- a/apps/review-desktop/code-oss/src/vs/review/electron-main/reviewMenubar.ts +++ b/apps/review-desktop/code-oss/src/vs/review/electron-main/reviewMenubar.ts @@ -231,7 +231,7 @@ export class ReviewMenubarMainService new MenuItem({ label: localize( "review.menu.uninstall", - "Uninstall Review Desktop...", + "Uninstall Whiteboard...", ), click: () => this.runActionInFocusedWindow("review.uninstallApp"), }), diff --git a/apps/review-desktop/code-oss/src/vs/review/services/reviewApiCatalogService.ts b/apps/review-desktop/code-oss/src/vs/review/services/reviewApiCatalogService.ts index 5646445af..3bee4b28b 100644 --- a/apps/review-desktop/code-oss/src/vs/review/services/reviewApiCatalogService.ts +++ b/apps/review-desktop/code-oss/src/vs/review/services/reviewApiCatalogService.ts @@ -51,7 +51,7 @@ export class ReviewApiCatalogService extends Disposable implements IReviewApiCat this.started = undefined; this.reviews = this.reviews.map(review => ({ ...review, diffStats: null })); this.changed.fire(); - void this.initialize().catch(error => this.log.warn("[Review] Catalog mode change failed:", error)); + void this.initialize().catch(error => this.log.warn("[Whiteboard] Catalog mode change failed:", error)); })); } @@ -89,7 +89,7 @@ export class ReviewApiCatalogService extends Disposable implements IReviewApiCat accept(await client.read(`?mode=${mode}`, abort.signal)); this.client = client; void client.follow(null, abort.signal, accept, (error) => - this.log.warn("[Review] API review list disconnected:", error), + this.log.warn("[Whiteboard] API review list disconnected:", error), mode, ); } diff --git a/apps/review-desktop/code-oss/src/vs/review/services/reviewCanvasEditorTabsService.ts b/apps/review-desktop/code-oss/src/vs/review/services/reviewCanvasEditorTabsService.ts index 4733cd2c0..e9aae016b 100644 --- a/apps/review-desktop/code-oss/src/vs/review/services/reviewCanvasEditorTabsService.ts +++ b/apps/review-desktop/code-oss/src/vs/review/services/reviewCanvasEditorTabsService.ts @@ -182,7 +182,7 @@ export class ReviewCanvasEditorTabsService extends Disposable implements IReview const status = await this.desktopConnection.getCliInstallStatus(); if (status.updateNeeded) await this.desktopConnection.finishCliInstallUpdate(); } catch (error) { - this.logService.warn("[Review] Could not finish the CLI install update:", error); + this.logService.warn("[Whiteboard] Could not finish the CLI install update:", error); } } diff --git a/apps/review-desktop/code-oss/src/vs/review/services/reviewDesktopConnectionService.ts b/apps/review-desktop/code-oss/src/vs/review/services/reviewDesktopConnectionService.ts index 8979c0284..931777ada 100644 --- a/apps/review-desktop/code-oss/src/vs/review/services/reviewDesktopConnectionService.ts +++ b/apps/review-desktop/code-oss/src/vs/review/services/reviewDesktopConnectionService.ts @@ -119,7 +119,7 @@ export class ReviewDesktopConnectionService extends Disposable implements IRevie private requireConnection(): ReviewDesktopConnection { if (!this.connection) { - throw new Error("The Review Desktop connection is not established yet."); + throw new Error("The Whiteboard connection is not established yet."); } return this.connection; } @@ -130,7 +130,7 @@ export class ReviewDesktopConnectionService extends Disposable implements IRevie .getChannel(REVIEW_DESKTOP_CHANNEL) .call("getConnection")) as ReviewDesktopConnection; if (connection?.version !== REVIEW_DESKTOP_CONNECTION_VERSION) { - throw new Error(`Unsupported Review Desktop connection version: ${String(connection?.version)}.`); + throw new Error(`Unsupported Whiteboard Desktop connection version: ${String(connection?.version)}.`); } this.connection = connection; } @@ -232,13 +232,13 @@ export class ReviewDesktopConnectionService extends Disposable implements IRevie headers: this.authHeaders(), signal: AbortSignal.timeout(5_000), }); - await this.requireOk(response, "Review tutorial status"); + await this.requireOk(response, "Whiteboard tutorial status"); const payload = (await response.json()) as { version?: unknown; reviewUuid?: unknown; }; if (payload.version !== 1 || (payload.reviewUuid !== null && typeof payload.reviewUuid !== "string")) { - throw new Error("Review tutorial status is invalid."); + throw new Error("Whiteboard tutorial status is invalid."); } return { version: 1, reviewUuid: payload.reviewUuid as string | null }; } @@ -268,7 +268,7 @@ export class ReviewDesktopConnectionService extends Disposable implements IRevie headers: this.authHeaders(), signal: AbortSignal.timeout(120_000), }); - await this.requireOk(response, "Review tutorial preparation"); + await this.requireOk(response, "Whiteboard tutorial preparation"); } async openTutorial(): Promise { @@ -278,7 +278,7 @@ export class ReviewDesktopConnectionService extends Disposable implements IRevie headers: this.authHeaders(), signal: AbortSignal.timeout(120_000), }); - await this.requireOk(response, "Review tutorial open"); + await this.requireOk(response, "Whiteboard tutorial open"); const payload = parseReviewTutorialOpenResponse(await response.json()); this.tutorialPrepareAttempted = true; this.storageService.remove(REVIEW_TUTORIAL_AUTOPREPARE_SUPPRESSED_KEY, StorageScope.APPLICATION); @@ -292,7 +292,7 @@ export class ReviewDesktopConnectionService extends Disposable implements IRevie headers: this.authHeaders(), signal: AbortSignal.timeout(30_000), }); - await this.requireOk(response, "Review tutorial delete"); + await this.requireOk(response, "Whiteboard tutorial delete"); this.tutorialPreparePromise = undefined; this.tutorialPrepareAttempted = true; this.storageService.store( @@ -322,7 +322,7 @@ export class ReviewDesktopConnectionService extends Disposable implements IRevie headers: this.authHeaders(), signal: AbortSignal.timeout(30_000), }); - await this.requireOk(response, "Review install status"); + await this.requireOk(response, "Whiteboard install status"); return parseReviewCliInstallStatus(await response.json()); })().finally(() => { this.cliInstallStatusPromise = undefined; @@ -357,7 +357,7 @@ export class ReviewDesktopConnectionService extends Disposable implements IRevie ? detail.output : typeof detail.error === "string" ? detail.error - : `Review install returned ${response.status}.`, + : `Whiteboard install returned ${response.status}.`, ); } return parseReviewCliInstallApplyResponse(payload); @@ -378,7 +378,7 @@ export class ReviewDesktopConnectionService extends Disposable implements IRevie signal: AbortSignal.timeout(30_000), }); if (!response.ok) { - throw new Error(`Review install remove returned ${response.status}.`); + throw new Error(`Whiteboard install remove returned ${response.status}.`); } } @@ -410,7 +410,7 @@ export class ReviewDesktopConnectionService extends Disposable implements IRevie signal: AbortSignal.timeout(30_000), }); if (!response.ok) { - throw new Error(`Review install ${verb} returned ${response.status}.`); + throw new Error(`Whiteboard install ${verb} returned ${response.status}.`); } } @@ -424,7 +424,7 @@ export class ReviewDesktopConnectionService extends Disposable implements IRevie ? current(value) : Promise.resolve({ ok: false, - error: "Review Desktop control handler is unavailable.", + error: "Whiteboard control handler is unavailable.", }); }); } @@ -449,7 +449,7 @@ export class ReviewDesktopConnectionService extends Disposable implements IRevie await this.maintainControl(dispatch); }, { - onRetry: (error) => console.error("[Review Desktop] control channel stopped", error), + onRetry: (error) => console.error("[Whiteboard] control channel stopped", error), }, ); } @@ -468,7 +468,7 @@ export class ReviewDesktopConnectionService extends Disposable implements IRevie } await new Promise((resolve) => setTimeout(resolve, 100)); } - throw new Error("The embedded Review server did not become healthy."); + throw new Error("The embedded Whiteboard server did not become healthy."); } @@ -478,7 +478,7 @@ export class ReviewDesktopConnectionService extends Disposable implements IRevie async (onConnected) => { await this.consumeControl(dispatch, onConnected); if (this.controller.signal.aborted) return; - throw new Error("The Review Desktop control stream ended."); + throw new Error("The Whiteboard control stream ended."); }, { onExhausted: (error) => { diff --git a/apps/review-desktop/code-oss/src/vs/review/services/reviewLocalLanguageFeatures.ts b/apps/review-desktop/code-oss/src/vs/review/services/reviewLocalLanguageFeatures.ts index 7f23a1cf3..7bfede720 100644 --- a/apps/review-desktop/code-oss/src/vs/review/services/reviewLocalLanguageFeatures.ts +++ b/apps/review-desktop/code-oss/src/vs/review/services/reviewLocalLanguageFeatures.ts @@ -120,7 +120,7 @@ export class ReviewLocalLanguageFeatures extends Disposable { } if (!context?.rootPath) return undefined; const pending = this.acquire(model, { rootPath: context.rootPath, identity: context.identity }).catch(error => { - this.log.debug("[Review] Language model unavailable", error); + this.log.debug("[Whiteboard] Language model unavailable", error); return undefined; }); const entry = { identity: context.identity, rootPath: context.rootPath, pending }; @@ -132,7 +132,7 @@ export class ReviewLocalLanguageFeatures extends Disposable { } catch (error) { const cached = this.sources.get(model); if (cached) this.uncertainRoots.add(URI.file(cached.rootPath).toString()); - this.log.debug("[Review] Language environment unavailable", error); + this.log.debug("[Whiteboard] Language environment unavailable", error); return undefined; } } diff --git a/apps/review-desktop/code-oss/src/vs/review/services/reviewStructuralDiff.ts b/apps/review-desktop/code-oss/src/vs/review/services/reviewStructuralDiff.ts index 19a925b52..3a11a30c6 100644 --- a/apps/review-desktop/code-oss/src/vs/review/services/reviewStructuralDiff.ts +++ b/apps/review-desktop/code-oss/src/vs/review/services/reviewStructuralDiff.ts @@ -72,7 +72,7 @@ export class StructuralDiffProvider implements IDocumentDiffProvider { const path = this.pairs.get(original.uri.with({ fragment: "" }).toString() + "\n" + modified.uri.with({ fragment: "" }).toString()); this.path = path; if (path !== undefined && this.unchanged.has(path)) { - if (original.getValue() !== modified.getValue()) throw new Error("Referenced context file changed; reload the review."); + if (original.getValue() !== modified.getValue()) throw new Error("Referenced context file changed; reload the session."); return { changes: [], moves: [], identical: true, quitEarly: false }; } if (path !== undefined && this.session.getFileResult(path)?.diff?.type === "binary") { @@ -87,7 +87,7 @@ export class StructuralDiffProvider implements IDocumentDiffProvider { modified.getLinesContent().join("\n") !== right ) { throw new Error( - "diffr sources differ from Review's editor snapshots; reload the review.", + "diffr sources differ from Whiteboard's editor snapshots; reload the session.", ); } const rows = structuralRows(diff); diff --git a/apps/review-desktop/code-oss/src/vs/review/services/reviewStructuralDiffClient.ts b/apps/review-desktop/code-oss/src/vs/review/services/reviewStructuralDiffClient.ts index 9b9d89524..80262ba66 100644 --- a/apps/review-desktop/code-oss/src/vs/review/services/reviewStructuralDiffClient.ts +++ b/apps/review-desktop/code-oss/src/vs/review/services/reviewStructuralDiffClient.ts @@ -20,7 +20,7 @@ export class StructuralDiffClient implements StructuralDiffStream { if (!response.ok) throw new Error((await response.json()).error ?? "Structural diff request failed."); if (!response.body || !response.headers.get("content-type")?.includes("ndjson")) { await response.body?.cancel(); - throw new Error("The Review host must be updated to stream structural diffs."); + throw new Error("The Whiteboard host must be updated to stream structural diffs."); } const reader = response.body.getReader(); const decoder = new TextDecoder(); diff --git a/apps/review-desktop/code-oss/src/vs/review/services/reviewTelemetryService.ts b/apps/review-desktop/code-oss/src/vs/review/services/reviewTelemetryService.ts index d6a5ad687..860b46f8e 100644 --- a/apps/review-desktop/code-oss/src/vs/review/services/reviewTelemetryService.ts +++ b/apps/review-desktop/code-oss/src/vs/review/services/reviewTelemetryService.ts @@ -72,7 +72,7 @@ export class ReviewTelemetryService implements IReviewTelemetryService { lifecycleService.onWillShutdown((event) => { event.join(this.flush(), { id: "reviewTelemetryService.flush", - label: "Sending Review telemetry", + label: "Sending Whiteboard telemetry", }); }); } diff --git a/apps/review-desktop/code-oss/src/vs/review/services/reviewWorkbenchServices.ts b/apps/review-desktop/code-oss/src/vs/review/services/reviewWorkbenchServices.ts index c2dba53cb..d6715cf98 100644 --- a/apps/review-desktop/code-oss/src/vs/review/services/reviewWorkbenchServices.ts +++ b/apps/review-desktop/code-oss/src/vs/review/services/reviewWorkbenchServices.ts @@ -37,7 +37,7 @@ class ReviewStatusbarService implements IStatusbarService { getPart(_container: HTMLElement): IStatusbarEntryContainer { return this; } createAuxiliaryStatusbarPart(_container: HTMLElement, _instantiationService: IInstantiationService): IAuxiliaryStatusbarPart { - throw new Error('Review does not provide status bar parts'); + throw new Error('Whiteboard does not provide status bar parts'); } createScoped(_statusbarEntryContainer: IStatusbarEntryContainer, _disposables: DisposableStore): IStatusbarService { return this; } addEntry( @@ -130,7 +130,7 @@ class ReviewExtensionsWorkbenchService implements IExtensionsWorkbenchService { toggleApplyExtensionToAllProfiles(): Promise { return Promise.resolve(); } private unavailable(): Promise { - return Promise.reject(new Error('Review does not expose extension management')); + return Promise.reject(new Error('Whiteboard does not expose extension management')); } } diff --git a/apps/review-desktop/code-oss/src/vs/review/services/workspace/browser/workspaceContextService.ts b/apps/review-desktop/code-oss/src/vs/review/services/workspace/browser/workspaceContextService.ts index 3ae683658..95f5a56a7 100644 --- a/apps/review-desktop/code-oss/src/vs/review/services/workspace/browser/workspaceContextService.ts +++ b/apps/review-desktop/code-oss/src/vs/review/services/workspace/browser/workspaceContextService.ts @@ -38,7 +38,7 @@ export class ReviewWorkspaceContextService extends Disposable implements IWorksp private readonly uriIdentityService: IUriIdentityService, ) { super(); - this.workspace = new Workspace(workspaceIdentifier.id, [], false, workspaceIdentifier.configPath, uri => uriIdentityService.extUri.ignorePathCasing(uri), localize('reviewWindow', "Review")); + this.workspace = new Workspace(workspaceIdentifier.id, [], false, workspaceIdentifier.configPath, uri => uriIdentityService.extUri.ignorePathCasing(uri), localize('reviewWindow', "Whiteboard")); } getCompleteWorkspace(): Promise { diff --git a/apps/review-desktop/scripts/desktop-branding.test.mjs b/apps/review-desktop/scripts/desktop-branding.test.mjs index a2a6c9176..c298d40f6 100644 --- a/apps/review-desktop/scripts/desktop-branding.test.mjs +++ b/apps/review-desktop/scripts/desktop-branding.test.mjs @@ -7,16 +7,6 @@ const readSource = (relativePath) => const product = JSON.parse(await readSource("../code-oss/product.json")); -const themePackage = JSON.parse( - await readSource("../code-oss/extensions/review-themes/package.json"), -); - -test("uses slash-form branding in Review Desktop display surfaces", () => { - assert.equal(product.nameLong, "/dev/fast Review"); - assert.equal(product.win32NameVersion, "/dev/fast Review"); - assert.equal(themePackage.description, "Themes for /dev/fast Review."); -}); - test("keeps compatibility-sensitive Desktop identifiers unchanged", () => { assert.equal(product.darwinBundleIdentifier, "dev.fast.review"); assert.equal(product.updateUrl, "https://update.dev.fast"); @@ -24,8 +14,3 @@ test("keeps compatibility-sensitive Desktop identifiers unchanged", () => { assert.equal(product.dataFolderName, ".dev-fast-review"); assert.equal(product.sharedDataFolderName, ".dev-fast-review-shared"); }); - -test("uses the product short name for app bundle paths", async () => { - assert.equal(product.nameShort, "Review"); - assert.equal(product.win32DirName, "Review"); -}); diff --git a/packages/review/app/src/App.tsx b/packages/review/app/src/App.tsx index 9289c9650..9c6a5ccef 100644 --- a/packages/review/app/src/App.tsx +++ b/packages/review/app/src/App.tsx @@ -555,7 +555,7 @@ function ReviewLayoutContent({
{reviewViews.map((view) => (
{mode === "prompt" ? (

- Your agent should reply that it reached Review's - instructions. If it says Review is not running, keep this app open - and try again. + Your agent should reply that it reached Whiteboard's + instructions. If it says Whiteboard is not running, keep this app + open and try again.

) : null} @@ -228,7 +228,7 @@ export function ConnectCard({ ) : (

- {`${plugin.label}\nInstall the review command first.`} + {`${plugin.label}\nInstall the whiteboard command first.`}

)} {status.error ? ( @@ -263,7 +263,7 @@ function readStoredTarget(): ReviewCliInstallTarget { } /** - * Skills that earlier versions of Review installed into agent configs. After + * Skills that earlier versions of Whiteboard installed into agent configs. After * a removal the row names what went, until the next status refresh. */ export function LegacySkillsRow({ @@ -310,12 +310,15 @@ export function LegacySkillsRow({ }; return ( -
+
{legacySkills.length > 0 ? ( <>

- Earlier versions of Review installed these skills. Review no longer - uses them. + Earlier versions of Whiteboard installed these skills. Whiteboard no + longer uses them.

    {legacySkills.map((skill) => ( @@ -329,7 +332,7 @@ export function LegacySkillsRow({ disabled={busy} onClick={() => void removeSkills()} > - Remove old Review skills + Remove old Whiteboard skills ) : null} diff --git a/packages/review/app/src/desktop-entry.tsx b/packages/review/app/src/desktop-entry.tsx index 875df47e5..a2adbfd92 100644 --- a/packages/review/app/src/desktop-entry.tsx +++ b/packages/review/app/src/desktop-entry.tsx @@ -72,7 +72,7 @@ function ReviewCanvas({ if (content.kind === "error") { return ( - +

    {content.message}

    ); @@ -120,7 +120,7 @@ function CanvasShell({ }) { return (
    -
    /dev/fast Review
    +
    /dev/fast Whiteboard

    {title}

    {children}
    diff --git a/packages/review/app/src/prompt-card.tsx b/packages/review/app/src/prompt-card.tsx index daa5df6c6..10b406ecd 100644 --- a/packages/review/app/src/prompt-card.tsx +++ b/packages/review/app/src/prompt-card.tsx @@ -14,14 +14,14 @@ const PROMPT_KINDS: ReadonlyArray<{ kind: PromptKind; label: string }> = [ ]; /** - * Prompts name the subject and stop there: Review's server gives the agent + * Prompts name the subject and stop there: Whiteboard's server gives the agent * the authoring instructions, so every agent gets the same wording. */ export const PROMPTS: Record = { change: - "Create a Review of my current branch against up to date main, then open it in Review.", + "Create a Whiteboard of my current branch against up to date main, then open it in Whiteboard.", architecture: - "Create a Review that sketches out the main data flows, access patterns, and code paths in this repo, so I can do a full architecture review of it. Open it in Review when you're done.", + "Create a Whiteboard that sketches out the main data flows, access patterns, and code paths in this repo, so I can do a full architecture review of it. Open it in Whiteboard when you're done.", }; const COPIED_RESET_MS = 2000; @@ -70,7 +70,7 @@ export function PromptCard() { }; return ( -
    +
    +
    { ); expect(unavailable?.textContent).toContain("PR #40"); - expect(unavailable?.textContent).toContain("No Review"); + expect(unavailable?.textContent).toContain("No session"); const layer = container.querySelector( '.review-stack-menu button[data-relation="later"]', diff --git a/packages/review/app/src/review-doc-meta.tsx b/packages/review/app/src/review-doc-meta.tsx index b2d9cd4a9..f78f8e7f8 100644 --- a/packages/review/app/src/review-doc-meta.tsx +++ b/packages/review/app/src/review-doc-meta.tsx @@ -277,7 +277,7 @@ function ReviewStackLayerRow({ {layer.branch} - {!layer.reviewUuid && !current ? "No Review" : layer.relation} + {!layer.reviewUuid && !current ? "No session" : layer.relation} ); @@ -298,8 +298,8 @@ function ReviewStackLayerRow({ disabled={!layer.reviewUuid} title={ layer.reviewUuid - ? "Open Review (Cmd/Ctrl-click to open in the background)" - : "No generated Review exists for this pull request" + ? "Open session (Cmd/Ctrl-click to open in the background)" + : "No generated session exists for this pull request" } onClick={(event) => onOpen(layer, event)} onAuxClick={(event) => { diff --git a/packages/review/app/src/review-document-boundary.tsx b/packages/review/app/src/review-document-boundary.tsx index 80aff8fcb..07604bc7d 100644 --- a/packages/review/app/src/review-document-boundary.tsx +++ b/packages/review/app/src/review-document-boundary.tsx @@ -59,8 +59,8 @@ export class ReviewDocumentBoundary extends Component< <> Your coding agent is writing the canvas now…
    - Edit the review through the Review MCP tools or{" "} - review api to replace the failing block. + Edit the review through the Whiteboard MCP tools or{" "} + whiteboard api to replace the failing block. } /> diff --git a/packages/review/app/src/review-find.tsx b/packages/review/app/src/review-find.tsx index 3cc0bb7c7..c35ca59d0 100644 --- a/packages/review/app/src/review-find.tsx +++ b/packages/review/app/src/review-find.tsx @@ -356,7 +356,7 @@ export function ReviewFindProvider({
    -

    Reviews

    +

    Sessions

    @@ -270,8 +270,8 @@ function SearchBox({ ref={input} type="search" value={query} - placeholder="Search reviews" - aria-label="Search reviews" + placeholder="Search sessions" + aria-label="Search sessions" spellCheck={false} onChange={(event) => onChange(event.target.value)} onKeyDown={(event) => { @@ -302,7 +302,7 @@ function SearchBox({ /** * Dismissed reviews, collapsed by default and kept out of the workspace - * grouping. Reviews stay saved until the reader deletes them. + * grouping. Sessions stay saved until the reader deletes them. */ function DismissedSection({ reviews, @@ -318,7 +318,7 @@ function DismissedSection({ onDelete?(review: ReviewApiSummary): Promise; }) { return ( -
    +