Skip to content

Commit 6d385b5

Browse files
test
Signed-off-by: Roman Nikitenko <rnikiten@redhat.com> test Signed-off-by: Roman Nikitenko <rnikiten@redhat.com> fix header Signed-off-by: Roman Nikitenko <rnikiten@redhat.com>
1 parent 593048a commit 6d385b5

8 files changed

Lines changed: 141 additions & 4 deletions

File tree

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
# Rebase Rules Test Report
2+
3+
**Date:** 2026-04-24
4+
**Upstream version:** release/1.116
5+
**Summary:** 41 passed, 0 warnings, 3 failed, 0 skipped
6+
7+
## Failures
8+
9+
| File | Handler | Details |
10+
|------|---------|---------|
11+
| `code/product.json` | apply_code_product_changes | Diff: 14 lines - Missing Che-specific Copilot chat integration settings |
12+
| `code/build/lib/mangle/index.ts` | apply_changes_multi_line | Diff: 5 lines - Missing exclusions for new dynamic imports |
13+
| `code/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.ts` | apply_changes_multi_line | Diff: 8 lines - Missing Che-specific check for installed chat extension |
14+
15+
### `code/product.json`
16+
17+
**Handler:** apply_code_product_changes
18+
**Root cause:** The `.rebase/override/code_product.json` file is missing updates for the `chatExtensionId` field and `welcomePage.builtinExtensions` arrays that should include the Che-specific Copilot chat integration (`redhat.devspaces-copilot-chat-integration`).
19+
20+
```diff
21+
113c113
22+
< "chatExtensionId": "redhat.devspaces-copilot-chat-integration",
23+
---
24+
> "chatExtensionId": "GitHub.copilot-chat",
25+
178,179c178
26+
< "GitHub.copilot-chat",
27+
< "redhat.devspaces-copilot-chat-integration"
28+
---
29+
> "GitHub.copilot-chat"
30+
182,183c181
31+
< "GitHub.copilot-chat",
32+
< "redhat.devspaces-copilot-chat-integration"
33+
---
34+
> "GitHub.copilot-chat"
35+
```
36+
37+
The expected che-code result should have:
38+
- `chatExtensionId` set to `"redhat.devspaces-copilot-chat-integration"` instead of `"GitHub.copilot-chat"`
39+
- Both `"GitHub.copilot-chat"` and `"redhat.devspaces-copilot-chat-integration"` in the `welcomePage.builtinExtensions` arrays (lines 178-179 and 182-183)
40+
41+
### `code/build/lib/mangle/index.ts`
42+
43+
**Handler:** apply_changes_multi_line
44+
**Root cause:** The `.rebase/replace/code/build/lib/mangle/index.ts` file is missing a rule to add new exclusions for dynamic imports (`runInTerminalConfirmationTool` and `mockAgent`) that have been added in upstream.
45+
46+
```diff
47+
313a314,317
48+
>
49+
> // Dynamic imports whose destructuring is not found by findRenameLocations
50+
> 'runInTerminalConfirmationTool',
51+
> 'mockAgent',
52+
```
53+
54+
The expected che-code result should include these two new exclusion entries after line 313.
55+
56+
### `code/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.ts`
57+
58+
**Handler:** apply_changes_multi_line
59+
**Root cause:** The `.rebase/replace/code/src/vs/workbench/contrib/chat/browser/chatSetup/chatSetupController.ts` file is missing a rule to add a Che-specific check that prevents showing the chat setup if the configured chat extension is already installed.
60+
61+
```diff
62+
263,269d262
63+
< const installed = this.extensionsWorkbenchService.local.find(e =>
64+
< e.identifier.id.toLowerCase() === defaultChat.chatExtensionId.toLowerCase() && e.local
65+
< );
66+
< if (installed) {
67+
< return;
68+
< }
69+
<
70+
```
71+
72+
The expected che-code result should include a check (lines 263-269) that looks for already-installed chat extensions and returns early if found. This code is being removed by the handler when it should be preserved or added.
73+
74+
## Passed
75+
76+
- `code/package.json`
77+
- `code/build/package.json`
78+
- `code/extensions/package.json`
79+
- `code/remote/package.json`
80+
- `code/extensions/microsoft-authentication/package.json`
81+
- `code/extensions/github-authentication/package.json`
82+
- `code/src/vs/platform/remote/browser/browserSocketFactory.ts`
83+
- `code/src/vs/server/node/webClientServer.ts`
84+
- `code/src/server-main.ts`
85+
- `code/src/vs/platform/product/common/product.ts`
86+
- `code/src/vs/server/node/remoteExtensionHostAgentServer.ts`
87+
- `code/src/vs/workbench/contrib/remote/browser/remote.ts`
88+
- `code/src/vs/webview/browser/pre/index.html`
89+
- `code/src/vs/code/browser/workbench/workbench.ts`
90+
- `code/extensions/git/src/ssh-askpass.sh`
91+
- `code/src/vs/base/common/product.ts`
92+
- `code/src/vs/workbench/contrib/welcomeGettingStarted/browser/gettingStarted.ts`
93+
- `code/src/vs/workbench/browser/web.main.ts`
94+
- `code/src/vs/server/node/serverServices.ts`
95+
- `code/src/vs/server/node/serverEnvironmentService.ts`
96+
- `code/src/vs/platform/shell/node/shellEnv.ts`
97+
- `code/src/vs/server/node/extensionHostConnection.ts`
98+
- `code/src/vs/server/node/remoteTerminalChannel.ts`
99+
- `code/src/vs/code/browser/workbench/workbench.html`
100+
- `code/src/vs/workbench/browser/workbench.contribution.ts`
101+
- `code/src/vs/workbench/browser/parts/titlebar/windowTitle.ts`
102+
- `code/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts`
103+
- `code/src/vs/workbench/browser/parts/titlebar/commandCenterControl.ts`
104+
- `code/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts`
105+
- `code/src/vs/platform/extensionManagement/node/extensionManagementService.ts`
106+
- `code/src/vs/platform/extensionManagement/common/extensionManagement.ts`
107+
- `code/src/vs/platform/extensionManagement/common/extensionGalleryService.ts`
108+
- `code/src/vs/platform/extensionManagement/common/abstractExtensionManagementService.ts`
109+
- `code/src/vs/workbench/contrib/extensions/browser/extensionsWorkbenchService.ts`
110+
- `code/src/vs/workbench/services/extensions/common/extensionsProposedApi.ts`
111+
- `code/extensions/npm/package.json`
112+
- `code/build/gulpfile.cli.ts`
113+
- `code/build/gulpfile.reh.ts`
114+
- `code/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts`
115+
- `code/resources/server/bin/helpers/browser-linux.sh`
116+
- `code/resources/server/bin/remote-cli/code-linux.sh`

.rebase/replace/code/src/vs/workbench/browser/parts/titlebar/windowTitle.ts.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
},
66
{
77
"from": "\tisCustomTitleFormat(): boolean {",
8-
"by": "\tgetHeader(): string | undefined{\n\t\tconst header = this.configurationService.inspect<string>(WindowSettingNames.header);\n\t\treturn header.value;\n\t}\n\n\tisCustomTitleFormat(): boolean {"
8+
"by": "\tgetHeader(): string | undefined{\n\t\treturn this.configurationService.getValue<string>(WindowSettingNames.header);\n\t}\n\n\tisCustomTitleFormat(): boolean {"
9+
},
10+
{
11+
"from": "\t\tif (affectsTitleConfiguration || event.affectsConfiguration(WindowSettingNames.titleSeparator)) {\n\t\t\tthis.titleUpdater.schedule();\n\t\t}\n\t}",
12+
"by": "\t\tif (affectsTitleConfiguration || event.affectsConfiguration(WindowSettingNames.titleSeparator)) {\n\t\t\tthis.titleUpdater.schedule();\n\t\t}\n\n\t\tif (event.affectsConfiguration(WindowSettingNames.header)) {\n\t\t\tthis.onDidChangeEmitter.fire();\n\t\t}\n\t}"
913
}
1014
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[
2+
{
3+
"from": "\t\tlet label = this._windowTitle.workspaceName;\n\t\tif (this._windowTitle.isCustomTitleFormat()) {",
4+
"by": "\t\tlet label = this._windowTitle.workspaceName;\n\t\tconst header = this._windowTitle.getHeader();\n\t\tif (header) {\n\t\t\tlabel = header;\n\t\t} else if (this._windowTitle.isCustomTitleFormat()) {"
5+
}
6+
]

code/src/vs/workbench/browser/parts/titlebar/commandCenterControl.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ class CommandCenterCenterViewItem extends BaseActionViewItem {
217217
const { prefix, suffix } = that._windowTitle.getTitleDecorations();
218218
let label = that._windowTitle.workspaceName;
219219
const header = that._windowTitle.getHeader();
220+
console.log(`[window.header] commandCenter._getLabel() header=${JSON.stringify(header)}, workspaceName=${JSON.stringify(label)}`);
220221
if (header) {
221222
label = header;
222223
} else if (that._windowTitle.isCustomTitleFormat()) {

code/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,6 +582,8 @@ export class BrowserTitlebarPart extends Part implements ITitlebarPart {
582582

583583
const isShowingTitleInNativeTitlebar = hasNativeTitlebar(this.configurationService, this.titleBarStyle);
584584

585+
console.log(`[window.header] createTitle() isCommandCenterVisible=${this.isCommandCenterVisible}, isShowingTitleInNativeTitlebar=${isShowingTitleInNativeTitlebar}`);
586+
585587
// Text Title
586588
if (!this.isCommandCenterVisible) {
587589
if (!isShowingTitleInNativeTitlebar) {

code/src/vs/workbench/browser/parts/titlebar/windowTitle.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,10 @@ export class WindowTitle extends Disposable {
140140
if (affectsTitleConfiguration || event.affectsConfiguration(WindowSettingNames.titleSeparator)) {
141141
this.titleUpdater.schedule();
142142
}
143+
144+
if (event.affectsConfiguration(WindowSettingNames.header)) {
145+
this.onDidChangeEmitter.fire();
146+
}
143147
}
144148

145149
private checkTitleVariables(): void {
@@ -409,8 +413,7 @@ export class WindowTitle extends Disposable {
409413
}
410414

411415
getHeader(): string | undefined{
412-
const header = this.configurationService.inspect<string>(WindowSettingNames.header);
413-
return header.value;
416+
return this.configurationService.getValue<string>(WindowSettingNames.header);
414417
}
415418

416419
isCustomTitleFormat(): boolean {

code/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1388,7 +1388,10 @@ export class AgentTitleBarStatusWidget extends BaseActionViewItem {
13881388

13891389
// Base label: custom title, workspace name, or file name when tabs are hidden
13901390
let label = this._windowTitle.workspaceName;
1391-
if (this._windowTitle.isCustomTitleFormat()) {
1391+
const header = this._windowTitle.getHeader();
1392+
if (header) {
1393+
label = header;
1394+
} else if (this._windowTitle.isCustomTitleFormat()) {
13921395
label = this._windowTitle.getWindowTitle();
13931396
} else if (!label && this.editorGroupsService.partOptions.showTabs === 'none') {
13941397
label = this._windowTitle.fileName ?? '';

rebase.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,8 @@ resolve_conflicts() {
425425
apply_changes_multi_line "$conflictingFile"
426426
elif [[ "$conflictingFile" == "code/src/vs/workbench/browser/parts/titlebar/commandCenterControl.ts" ]]; then
427427
apply_changes_multi_line "$conflictingFile"
428+
elif [[ "$conflictingFile" == "code/src/vs/workbench/contrib/chat/browser/agentSessions/experiments/agentTitleBarStatusWidget.ts" ]]; then
429+
apply_changes_multi_line "$conflictingFile"
428430
elif [[ "$conflictingFile" == "code/src/vs/workbench/contrib/extensions/browser/extensions.contribution.ts" ]]; then
429431
apply_code_vs_extensions_contribution_changes
430432
elif [[ "$conflictingFile" == "code/src/vs/platform/extensionManagement/node/extensionManagementService.ts" ]]; then

0 commit comments

Comments
 (0)