Skip to content

Commit 7cc22a4

Browse files
ndemiancclaude
andcommitted
De-brand WS-C: rebrand Agents-window + Report-Issue + chat-picker VS Code strings
H3 (sessions/Agents window): 'Open VS Code Window', 'Open in VS Code Editor Window', and the policy-blocked 'Open VS Code' all open a LevelCode window (via nativeHostService / urlProtocol=levelcode), so → LevelCode; plus the 'SSH … managed by VS Code' and 'Local VS Code chat sessions' settings descriptions. KEPT applyChangesToParentRepo 'Open in VS Code' — it genuinely hands off to EXTERNAL VS Code via the vscode:// scheme (verified per-string, not a blanket swap). M2: Report-Issue source dropdown 'Visual Studio Code'/'A VS Code extension' → LevelCode. M6: chat model-picker 'requires a newer version of VS Code'/'Update VS Code' → LevelCode. Skipped M13 (dormant quality-switch — no Insiders LevelCode). Patch regenerated (18 files), verified reverse + forward-apply onto a pristine checkout; logged in docs/CORE-PATCHES.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 4724b7e commit 7cc22a4

2 files changed

Lines changed: 120 additions & 0 deletions

File tree

‎docs/CORE-PATCHES.md‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,13 @@ git -C vscode diff HEAD -- \
3131
src/vs/workbench/contrib/extensions/browser/extensionsActions.ts \
3232
src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts \
3333
src/vs/workbench/contrib/terminal/browser/terminalView.ts \
34+
src/vs/sessions/electron-browser/actions/vscodeActions.ts \
35+
src/vs/sessions/browser/widget/openInVSCodeWidget.ts \
36+
src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHost.contribution.ts \
37+
src/vs/sessions/contrib/providers/localChatSessions/browser/localChatSessions.contribution.ts \
38+
src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.ts \
39+
src/vs/workbench/contrib/issue/browser/baseIssueReporterService.ts \
40+
src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.ts \
3441
> patches/levelcode-core.patch
3542
# NOTE: use `diff HEAD` (not plain `diff`) — bootstrap's `git apply` may leave these STAGED,
3643
# and plain `git diff` shows only UNSTAGED changes, silently dropping the staged patches.
@@ -54,6 +61,8 @@ grep -rn "\[LevelCode\]" vscode/src vscode/build
5461
| 6 | `src/vs/workbench/contrib/update/browser/releaseNotesEditor.ts` (`show`) | Open `product.releaseNotesUrl` in the browser instead of fetching `code.visualstudio.com/raw/v{ver}.md`. | De-brand (WS-B/B5). Stops the in-editor **"Visual Studio Code 1.126"** release-notes tab. The `useCurrentFile` dev command (author a local `.md`) still renders locally. |
5562
| 7 | `src/vs/sessions/browser/media/openInVSCode.css` | The `[data-product-quality]` "Open in VS Code" button icon → `./vscode-icon.svg` (the real VS Code shield) instead of `code-icon.svg`. | De-brand (WS-D). That button *opens VS Code*, so it must show the VS Code logo — but we now overwrite `code-icon.svg` with the LevelCode mark (see the asset-override note below), which would otherwise make it show LevelCode. |
5663
| 8 | extensions `extensions.contribution.ts`, `extensionsActions.ts`, `extensionsWorkbenchService.ts`; terminal `terminalView.ts` | Rebrand user-visible reload/restart/deprecation notices: "Please reload/restart **Visual Studio Code**", "[**VS Code** Release Notes]", "bundled with **Visual Studio Code**" → **LevelCode**. | De-brand (WS-C / H4+M7). These fire on extension install/uninstall and terminal font changes. Tagged `// [LevelCode] rebrand` where the syntax allows. NOTE: lower-priority *settings-description* strings ("VS Code installs only…") in these files are **not yet** done (L1). |
64+
| 9 | sessions `vscodeActions.ts`, `openInVSCodeWidget.ts`, `policyBlocked/sessionsPolicyBlocked.ts`, `remoteAgentHost.contribution.ts`, `localChatSessions.contribution.ts` | Rebrand Agents-window strings that reference the app itself: "Open VS Code Window" / "Open in VS Code Editor Window" / "Open VS Code" (all open a **LevelCode** window via `urlProtocol`) → LevelCode; "SSH … managed by VS Code" and "Local VS Code chat sessions" settings → LevelCode. | De-brand (WS-C/H3). **KEPT** `applyCommitsToParentRepo/applyChangesToParentRepo.ts` "Open in VS Code" — that one genuinely hands off to *external* VS Code via the `vscode://` scheme. (Residual: a `aka.ms/VSCode/Agents/docs` "Learn more" URL in the policy-blocked card — no LevelCode equivalent yet.) |
65+
| 10 | issue `baseIssueReporterService.ts`; chat `chatModelPicker.ts` | Report-Issue **source dropdown** "Visual Studio Code" / "A VS Code extension" → LevelCode; chat model-picker "requires a newer version of VS Code" / "Update VS Code" → LevelCode. | De-brand (WS-C/M2+M6). **SKIPPED** M13 quality-switch dialogs — dormant (no Insiders LevelCode build); rebranding would imply a false "Insiders LevelCode". |
5766

5867
> **Branding asset override (not a patch):** `apply-branding.mjs` also copies `branding/icons/code-icon.svg` (the LevelCode chevron mark) over `vscode/src/vs/workbench/browser/media/code-icon.svg`. Stock Code-OSS ships the blue `#167abf` VS Code "book" there; it's used as a `background-image` on the title-bar app icon, the update tooltip, the welcome/onboarding hero, the walkthrough and the banner (one file → ~6 surfaces). Because it's a whole-file swap it's done by the branding copy step, not this patch — but patch #7 above pairs with it.
5968

‎patches/levelcode-core.patch‎

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,102 @@ index 5d89e0be..18d3b47b 100644
6666
}
6767

6868
.monaco-enable-motion .monaco-workbench .open-in-vscode-titlebar-widget > .open-in-vscode-titlebar-widget-icon,
69+
diff --git a/src/vs/sessions/browser/widget/openInVSCodeWidget.ts b/src/vs/sessions/browser/widget/openInVSCodeWidget.ts
70+
index 5d7e07a0..24ccc732 100644
71+
--- a/src/vs/sessions/browser/widget/openInVSCodeWidget.ts
72+
+++ b/src/vs/sessions/browser/widget/openInVSCodeWidget.ts
73+
@@ -44,7 +44,7 @@ export class OpenInVSCodeTitleBarWidget extends BaseActionViewItem {
74+
}
75+
76+
const label = this.action.label;
77+
- const hoverText = this.keybindingService.appendKeybinding(localize('openInVSCodeHover', "Open in VS Code Editor Window"), this.keybindingCommandId);
78+
+ const hoverText = this.keybindingService.appendKeybinding(localize('openInVSCodeHover', "Open in LevelCode Editor Window"), this.keybindingCommandId);
79+
container.setAttribute('aria-label', hoverText);
80+
this._register(this.hoverService.setupManagedHover(getDefaultHoverDelegate('element'), container, hoverText));
81+
82+
diff --git a/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.ts b/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.ts
83+
index ee8e0bdb..71e76bc4 100644
84+
--- a/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.ts
85+
+++ b/src/vs/sessions/contrib/policyBlocked/browser/sessionsPolicyBlocked.ts
86+
@@ -100,7 +100,7 @@ export class SessionsPolicyBlockedOverlay extends Disposable {
87+
}));
88+
89+
const button = this._register(new Button(card, { ...defaultButtonStyles, secondary: true }));
90+
- button.label = localize('policyBlocked.openVSCode', "Open VS Code");
91+
+ button.label = localize('policyBlocked.openVSCode', "Open LevelCode"); // [LevelCode] rebrand (opens a LevelCode window via urlProtocol)
92+
this._register(button.onDidClick(() => this._openVSCode()));
93+
}
94+
95+
diff --git a/src/vs/sessions/contrib/providers/localChatSessions/browser/localChatSessions.contribution.ts b/src/vs/sessions/contrib/providers/localChatSessions/browser/localChatSessions.contribution.ts
96+
index 54145042..1bdc071d 100644
97+
--- a/src/vs/sessions/contrib/providers/localChatSessions/browser/localChatSessions.contribution.ts
98+
+++ b/src/vs/sessions/contrib/providers/localChatSessions/browser/localChatSessions.contribution.ts
99+
@@ -28,7 +28,7 @@ Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration).regis
100+
default: true,
101+
tags: ['experimental'],
102+
experiment: { mode: 'startup' },
103+
- description: localize('sessions.chat.localAgent.enabled', "Enable Local VS Code chat sessions in the Agents Window. Reload the window for changes to take effect."),
104+
+ description: localize('sessions.chat.localAgent.enabled', "Enable Local LevelCode chat sessions in the Agents Window. Reload the window for changes to take effect."),
105+
},
106+
},
107+
});
108+
diff --git a/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHost.contribution.ts b/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHost.contribution.ts
109+
index 5a99c9fd..7042c1ad 100644
110+
--- a/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHost.contribution.ts
111+
+++ b/src/vs/sessions/contrib/providers/remoteAgentHost/browser/remoteAgentHost.contribution.ts
112+
@@ -1044,7 +1044,7 @@ Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration).regis
113+
},
114+
required: ['address', 'name'],
115+
},
116+
- description: nls.localize('chat.remoteAgentHosts', "A list of WebSocket remote agent host addresses to connect to (e.g. \"localhost:3000\"). SSH remote agent host details are managed by VS Code."),
117+
+ description: nls.localize('chat.remoteAgentHosts', "A list of WebSocket remote agent host addresses to connect to (e.g. \"localhost:3000\"). SSH remote agent host details are managed by LevelCode."),
118+
default: [],
119+
scope: ConfigurationScope.APPLICATION,
120+
tags: ['experimental', 'advanced'],
121+
diff --git a/src/vs/sessions/electron-browser/actions/vscodeActions.ts b/src/vs/sessions/electron-browser/actions/vscodeActions.ts
122+
index b2606fd2..987523c1 100644
123+
--- a/src/vs/sessions/electron-browser/actions/vscodeActions.ts
124+
+++ b/src/vs/sessions/electron-browser/actions/vscodeActions.ts
125+
@@ -97,7 +97,7 @@ export class OpenVSCodeWindowAction extends Action2 {
126+
constructor() {
127+
super({
128+
id: OpenVSCodeWindowAction.ID,
129+
- title: localize2('openVSCodeWindow', 'Open VS Code Window'),
130+
+ title: localize2('openVSCodeWindow', 'Open LevelCode Window'), // [LevelCode] rebrand (focuses the app's own main window)
131+
f1: true,
132+
keybinding: {
133+
primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KeyA,
134+
diff --git a/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.ts b/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.ts
135+
index b16728b8..79695842 100644
136+
--- a/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.ts
137+
+++ b/src/vs/workbench/contrib/chat/browser/widget/input/chatModelPicker.ts
138+
@@ -51,14 +51,14 @@ function getUpdateHoverContent(updateState: StateType): MarkdownString {
139+
const hoverContent = new MarkdownString('', { isTrusted: true, supportThemeIcons: true });
140+
switch (updateState) {
141+
case StateType.AvailableForDownload:
142+
- hoverContent.appendMarkdown(localize('chat.modelPicker.downloadUpdateHover', "This model requires a newer version of VS Code. [Download Update](command:update.downloadUpdate) to access it."));
143+
+ hoverContent.appendMarkdown(localize('chat.modelPicker.downloadUpdateHover', "This model requires a newer version of LevelCode. [Download Update](command:update.downloadUpdate) to access it."));
144+
break;
145+
case StateType.Downloaded:
146+
case StateType.Ready:
147+
- hoverContent.appendMarkdown(localize('chat.modelPicker.restartUpdateHover', "This model requires a newer version of VS Code. [Restart to Update](command:update.restartToUpdate) to access it."));
148+
+ hoverContent.appendMarkdown(localize('chat.modelPicker.restartUpdateHover', "This model requires a newer version of LevelCode. [Restart to Update](command:update.restartToUpdate) to access it."));
149+
break;
150+
default:
151+
- hoverContent.appendMarkdown(localize('chat.modelPicker.checkUpdateHover', "This model requires a newer version of VS Code. [Update VS Code](command:update.checkForUpdate) to access it."));
152+
+ hoverContent.appendMarkdown(localize('chat.modelPicker.checkUpdateHover', "This model requires a newer version of LevelCode. [Update LevelCode](command:update.checkForUpdate) to access it."));
153+
break;
154+
}
155+
return hoverContent;
156+
@@ -886,7 +886,7 @@ function createUnavailableModelItem(
157+
if (reason === 'upgrade') {
158+
description = new MarkdownString(localize('chat.modelPicker.upgradeLink', "[Upgrade](command:workbench.action.chat.upgradePlan \" \")"), { isTrusted: true });
159+
} else if (reason === 'update') {
160+
- description = localize('chat.modelPicker.updateDescription', "Update VS Code");
161+
+ description = localize('chat.modelPicker.updateDescription', "Update LevelCode");
162+
} else {
163+
description = manageSettingsUrl
164+
? new MarkdownString(localize('chat.modelPicker.adminLink', "[Contact your admin]({0})", manageSettingsUrl), { isTrusted: true })
69165
diff --git a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts b/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
70166
index 0c0965d3..aa17d72f 100644
71167
--- a/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts
@@ -129,6 +225,21 @@ index 574c2d8e..f6b8c7af 100644
129225
'markdownEnumDescriptions': [
130226
nls.localize('hotExit.off', 'Disable hot exit. A prompt will show when attempting to close a window with editors that have unsaved changes.'),
131227
nls.localize('hotExit.onExit', 'Hot exit will be triggered when the last window is closed on Windows/Linux or when the `workbench.action.quit` command is triggered (command palette, keybinding, menu). All windows without folders opened will be restored upon next launch. A list of previously opened windows with unsaved files can be accessed via `File > Open Recent > More...`'),
228+
diff --git a/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.ts b/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.ts
229+
index 44e0b933..39533c02 100644
230+
--- a/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.ts
231+
+++ b/src/vs/workbench/contrib/issue/browser/baseIssueReporterService.ts
232+
@@ -1053,8 +1053,8 @@ export class BaseIssueReporterService extends Disposable {
233+
234+
sourceSelect.innerText = '';
235+
sourceSelect.append(this.makeOption('', localize('selectSource', "Select source"), true));
236+
- sourceSelect.append(this.makeOption(IssueSource.VSCode, localize('vscode', "Visual Studio Code"), false));
237+
- sourceSelect.append(this.makeOption(IssueSource.Extension, localize('extension', "A VS Code extension"), false));
238+
+ sourceSelect.append(this.makeOption(IssueSource.VSCode, localize('vscode', "LevelCode"), false)); // [LevelCode] rebrand
239+
+ sourceSelect.append(this.makeOption(IssueSource.Extension, localize('extension', "A LevelCode extension"), false)); // [LevelCode] rebrand
240+
if (this.product.reportMarketplaceIssueUrl) {
241+
sourceSelect.append(this.makeOption(IssueSource.Marketplace, localize('marketplace', "Extensions Marketplace"), false));
242+
}
132243
diff --git a/src/vs/workbench/contrib/terminal/browser/terminalView.ts b/src/vs/workbench/contrib/terminal/browser/terminalView.ts
133244
index 9a745727..a0f7b147 100644
134245
--- a/src/vs/workbench/contrib/terminal/browser/terminalView.ts

0 commit comments

Comments
 (0)