From a35083ec558804c4259c297440919892a876c127 Mon Sep 17 00:00:00 2001 From: Sidharth Menon Date: Wed, 23 Sep 2026 15:25:53 -0400 Subject: [PATCH 1/5] Rename visible desktop branding to Whiteboard Agent-Session: b320a5ae-50a4-4472-a324-515d964c5f5a Agent-Session: 01a0cf8e-5b2b-7253-9d6c-2d77ac6485b8 --- .../extensions/review-themes/package.json | 10 +++--- .../review-themes/themes/review-dark.json | 2 +- .../review-themes/themes/review-light.json | 2 +- apps/review-desktop/code-oss/product.json | 6 ++-- .../canvas/reviewCanvasEditor.contribution.ts | 2 +- .../parts/canvas/reviewCanvasEditorInput.ts | 2 +- .../browser/parts/canvas/reviewCanvasPart.ts | 4 +-- .../parts/canvas/reviewFind.contribution.ts | 2 +- .../parts/explorer/reviewExplorerPart.ts | 2 +- .../browser/parts/reviewLinuxTitlebar.ts | 8 ++--- .../browser/reviewCommunity.contribution.ts | 2 +- .../browser/reviewTheme.contribution.ts | 4 +-- .../vs/review/common/reviewConfiguration.ts | 8 ++--- .../reviewConfigurationDefaults.test.ts | 35 ------------------- .../common/reviewConfigurationDefaults.ts | 2 +- .../review/common/reviewDesktopBootstrap.ts | 4 +-- .../explorer/reviewFileTree.contribution.ts | 2 +- .../reviewCuratedExtensions.contribution.ts | 26 +++++++------- .../reviewQuickAccess.contribution.ts | 4 +-- .../settings/reviewSettings.contribution.ts | 2 +- .../sharing/reviewSharing.contribution.ts | 12 +++---- .../telemetry/reviewTelemetry.contribution.ts | 2 +- .../update/reviewUpdate.contribution.ts | 10 +++--- .../vs/review/contrib/verbs/reviewVerbs.ts | 4 +-- .../vs/review/electron-main/reviewMenubar.ts | 2 +- .../reviewDesktopConnectionService.ts | 20 +++++------ .../review/services/reviewStructuralDiff.ts | 4 +-- .../services/reviewStructuralDiffClient.ts | 2 +- .../review/services/reviewTelemetryService.ts | 2 +- .../services/reviewWorkbenchServices.ts | 4 +-- .../browser/workspaceContextService.ts | 2 +- .../scripts/desktop-branding.test.mjs | 15 -------- packages/review/app/src/App.tsx | 8 ++--- packages/review/app/src/ReviewTraceView.tsx | 2 +- .../review/app/src/authoring-activity.tsx | 4 +-- .../src/bug-report-dialog.browser.test.tsx | 2 +- packages/review/app/src/bug-report-dialog.tsx | 2 +- .../app/src/connect-card.browser.test.tsx | 4 +-- packages/review/app/src/connect-card.tsx | 21 ++++++----- packages/review/app/src/desktop-entry.tsx | 4 +-- packages/review/app/src/prompt-card.tsx | 8 ++--- .../review/app/src/review-branch-range.tsx | 2 +- .../app/src/review-doc-meta.browser.test.tsx | 2 +- packages/review/app/src/review-doc-meta.tsx | 6 ++-- .../app/src/review-document-boundary.tsx | 4 +-- packages/review/app/src/review-find.tsx | 2 +- packages/review/app/src/review-home-view.tsx | 22 ++++++------ packages/review/app/src/review-view-route.ts | 2 +- packages/review/app/src/settings-page.tsx | 8 ++--- .../review/app/src/trace-capture-section.tsx | 4 +-- .../review/app/src/tutorial-experience.tsx | 2 +- packages/review/app/src/tutorial-plan.ts | 4 +-- .../app/src/welcome-page.browser.test.tsx | 2 +- packages/review/app/src/welcome-page.tsx | 20 +++++------ 54 files changed, 149 insertions(+), 194 deletions(-) delete mode 100644 apps/review-desktop/code-oss/src/vs/review/common/reviewConfigurationDefaults.test.ts 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..d314f0241 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"); @@ -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; 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..a7e8d981f 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"), @@ -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, }); } @@ -556,7 +556,7 @@ class ImportUserConfigAction extends Action2 { 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), ); } 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..e74d91086 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 @@ -139,8 +139,8 @@ class ReviewUpdateNotifications extends Disposable { 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), @@ -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/reviewDesktopConnectionService.ts b/apps/review-desktop/code-oss/src/vs/review/services/reviewDesktopConnectionService.ts index 8979c0284..3776e442a 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; } @@ -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( @@ -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/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} @@ -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 ( -
    +