Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
cf6f3c9
Remove timeout warning, keep running
Tyriar Jan 14, 2026
d756bdd
Use terminal log service
Tyriar Jan 14, 2026
aa5e796
Add polling for idle transition
Tyriar Jan 14, 2026
e568df9
Fix tests
Tyriar Jan 14, 2026
ef0bb3b
chore: bump node-pty (#287627)
rzhao271 Jan 14, 2026
5fca6ae
`outputLocation:none` -> `outputLocation:terminal` (#287596)
meganrogge Jan 14, 2026
dccac35
Polish buttons and inputs (#280457)
daviddossett Jan 14, 2026
a880611
Agent sessions: allow to resize the sessions sidebar like terminal ta…
bpasero Jan 14, 2026
228337d
Truncate long page titles in integrated browser (#287702)
Copilot Jan 14, 2026
0e5d594
complete the fix for #287509 (#287824)
sandy081 Jan 14, 2026
8fae6fe
fix spelling (#287828)
sandy081 Jan 14, 2026
6b31b75
Support streaming of partial tool data (#278640)
lramos15 Jan 14, 2026
da543af
enable `outputLocation: chat` in stable (#287836)
meganrogge Jan 14, 2026
48a49c4
Merge pull request #287665 from microsoft/tyriar/285434
Tyriar Jan 14, 2026
0112ae1
chat - only show welcome until setup has ran and show more sessions (…
bpasero Jan 14, 2026
b41e884
add accessibility help for thinking (#287640)
meganrogge Jan 14, 2026
ace789b
Clear promptInput's value onCommandFinished (#287139)
anthonykim1 Jan 14, 2026
be85fe8
ci: check for valid compilation artifacts in alpine stage (#284096)
deepak1556 Jan 14, 2026
deef0f5
fix: correct tunnel command path resolution for Windows Insiders (#28…
ThanhNguyxn Jan 14, 2026
f9de7ea
agent sessions - force side by side mode when chat maximised (#287859)
bpasero Jan 14, 2026
7341d1b
only show terminal chat scrollbar on focus/hover (#287851)
meganrogge Jan 14, 2026
4e9b0b7
Support additional actions in integrated browser (#287653)
kycutler Jan 14, 2026
60a9382
Chat - fix working set button spacing (#287870)
lszomoru Jan 14, 2026
bd9ea19
feat: add CSS extension point proposal (#287871)
joaomoreno Jan 14, 2026
b9cb6a3
SCM - fix sync changes button layout regression (#287873)
lszomoru Jan 14, 2026
42a4933
Integrated Browser - New Tab welcome screen (#287638)
jruales Jan 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions build/azure-pipelines/product-compile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,23 @@ jobs:
GITHUB_TOKEN: "$(github-distro-mixin-password)"
displayName: Compile & Hygiene

- script: |
set -e

[ -d "out-build" ] || { echo "ERROR: out-build folder is missing" >&2; exit 1; }
[ -n "$(find out-build -mindepth 1 2>/dev/null | head -1)" ] || { echo "ERROR: out-build folder is empty" >&2; exit 1; }
echo "out-build exists and is not empty"

ls -d out-vscode-* >/dev/null 2>&1 || { echo "ERROR: No out-vscode-* folders found" >&2; exit 1; }
for folder in out-vscode-*; do
[ -d "$folder" ] || { echo "ERROR: $folder is missing" >&2; exit 1; }
[ -n "$(find "$folder" -mindepth 1 2>/dev/null | head -1)" ] || { echo "ERROR: $folder is empty" >&2; exit 1; }
echo "$folder exists and is not empty"
done

echo "All required compilation folders checked."
displayName: Validate compilation folders

- script: |
set -e
npm run compile
Expand Down
9 changes: 9 additions & 0 deletions extensions/simple-browser/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,15 @@
"default": true,
"title": "Focus Lock Indicator Enabled",
"description": "%configuration.focusLockIndicator.enabled.description%"
},
"simpleBrowser.useIntegratedBrowser": {
"type": "boolean",
"default": false,
"markdownDescription": "%configuration.useIntegratedBrowser.description%",
"scope": "application",
"tags": [
"experimental"
]
}
}
}
Expand Down
3 changes: 2 additions & 1 deletion extensions/simple-browser/package.nls.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"displayName": "Simple Browser",
"description": "A very basic built-in webview for displaying web content.",
"configuration.focusLockIndicator.enabled.description": "Enable/disable the floating indicator that shows when focused in the simple browser."
"configuration.focusLockIndicator.enabled.description": "Enable/disable the floating indicator that shows when focused in the simple browser.",
"configuration.useIntegratedBrowser.description": "When enabled, the `simpleBrowser.show` command will open URLs in the integrated browser instead of the Simple Browser webview. **Note:** This setting is experimental and only available on desktop."
}
47 changes: 41 additions & 6 deletions extensions/simple-browser/src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ declare class URL {

const openApiCommand = 'simpleBrowser.api.open';
const showCommand = 'simpleBrowser.show';
const integratedBrowserCommand = 'workbench.action.browser.open';
const useIntegratedBrowserSetting = 'simpleBrowser.useIntegratedBrowser';

const enabledHosts = new Set<string>([
'localhost',
Expand All @@ -31,6 +33,27 @@ const enabledHosts = new Set<string>([

const openerId = 'simpleBrowser.open';

/**
* Checks if the integrated browser should be used instead of the simple browser
*/
async function shouldUseIntegratedBrowser(): Promise<boolean> {
const config = vscode.workspace.getConfiguration();
if (!config.get<boolean>(useIntegratedBrowserSetting, false)) {
return false;
}

// Verify that the integrated browser command is available
const commands = await vscode.commands.getCommands(true);
return commands.includes(integratedBrowserCommand);
}

/**
* Opens a URL in the integrated browser
*/
async function openInIntegratedBrowser(url?: string): Promise<void> {
await vscode.commands.executeCommand(integratedBrowserCommand, url);
}

export function activate(context: vscode.ExtensionContext) {

const manager = new SimpleBrowserManager(context.extensionUri);
Expand All @@ -43,6 +66,10 @@ export function activate(context: vscode.ExtensionContext) {
}));

context.subscriptions.push(vscode.commands.registerCommand(showCommand, async (url?: string) => {
if (await shouldUseIntegratedBrowser()) {
return openInIntegratedBrowser(url);
}

if (!url) {
url = await vscode.window.showInputBox({
placeHolder: vscode.l10n.t("https://example.com"),
Expand All @@ -55,11 +82,15 @@ export function activate(context: vscode.ExtensionContext) {
}
}));

context.subscriptions.push(vscode.commands.registerCommand(openApiCommand, (url: vscode.Uri, showOptions?: {
context.subscriptions.push(vscode.commands.registerCommand(openApiCommand, async (url: vscode.Uri, showOptions?: {
preserveFocus?: boolean;
viewColumn: vscode.ViewColumn;
}) => {
manager.show(url, showOptions);
if (await shouldUseIntegratedBrowser()) {
await openInIntegratedBrowser(url.toString(true));
} else {
manager.show(url, showOptions);
}
}));

context.subscriptions.push(vscode.window.registerExternalUriOpener(openerId, {
Expand All @@ -74,10 +105,14 @@ export function activate(context: vscode.ExtensionContext) {

return vscode.ExternalUriOpenerPriority.None;
},
openExternalUri(resolveUri: vscode.Uri) {
return manager.show(resolveUri, {
viewColumn: vscode.window.activeTextEditor ? vscode.ViewColumn.Beside : vscode.ViewColumn.Active
});
async openExternalUri(resolveUri: vscode.Uri) {
if (await shouldUseIntegratedBrowser()) {
await openInIntegratedBrowser(resolveUri.toString(true));
} else {
return manager.show(resolveUri, {
viewColumn: vscode.window.activeTextEditor ? vscode.ViewColumn.Beside : vscode.ViewColumn.Active
});
}
}
}, {
schemes: ['http', 'https'],
Expand Down
6 changes: 3 additions & 3 deletions extensions/theme-defaults/themes/dark_modern.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
"badge.background": "#616161",
"badge.foreground": "#F8F8F8",
"button.background": "#0078D4",
"button.border": "#FFFFFF12",
"button.border": "#ffffff1a",
"button.foreground": "#FFFFFF",
"button.hoverBackground": "#026EC1",
"button.secondaryBackground": "#313131",
"button.secondaryBackground": "#00000000",
"button.secondaryForeground": "#CCCCCC",
"button.secondaryHoverBackground": "#3C3C3C",
"button.secondaryHoverBackground": "#2B2B2B",
"chat.slashCommandBackground": "#26477866",
"chat.slashCommandForeground": "#85B6FF",
"chat.editedFileForeground": "#E2C08D",
Expand Down
6 changes: 5 additions & 1 deletion extensions/tunnel-forwarding/src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,11 @@ const cliPath = process.env.VSCODE_FORWARDING_IS_DEV
? path.join(__dirname, '../../../cli/target/debug/code')
: path.join(
vscode.env.appRoot,
process.platform === 'darwin' ? 'bin' : '../../bin',
process.platform === 'darwin'
? 'bin'
: process.platform === 'win32' && vscode.env.appQuality === 'insider'
? '../../../bin' // TODO: remove as part of https://github.com/microsoft/vscode/issues/282514
: '../../bin',
vscode.env.appQuality === 'stable' ? 'code-tunnel' : 'code-tunnel-insiders',
) + (process.platform === 'win32' ? '.exe' : '');

Expand Down
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "code-oss-dev",
"version": "1.109.0",
"distro": "ce89ce05183635114ccfc46870d71ec520727c8e",
"distro": "b570759d1928b4b2f34a86c40da42b1a2b6d3796",
"author": {
"name": "Microsoft Corporation"
},
Expand Down Expand Up @@ -109,7 +109,7 @@
"native-is-elevated": "0.8.0",
"native-keymap": "^3.3.5",
"native-watchdog": "^1.4.1",
"node-pty": "^1.1.0-beta43",
"node-pty": "^1.2.0-beta.6",
"open": "^10.1.2",
"tas-client": "0.3.1",
"undici": "^7.9.0",
Expand Down Expand Up @@ -240,4 +240,4 @@
"optionalDependencies": {
"windows-foreground-love": "0.5.0"
}
}
}
8 changes: 4 additions & 4 deletions remote/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion remote/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
"kerberos": "2.1.1",
"minimist": "^1.2.8",
"native-watchdog": "^1.4.1",
"node-pty": "^1.1.0-beta43",
"node-pty": "^1.2.0-beta.6",
"tas-client": "0.3.1",
"vscode-oniguruma": "1.7.0",
"vscode-regexpp": "^3.1.0",
Expand Down
18 changes: 13 additions & 5 deletions src/vs/base/browser/ui/button/button.css
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,21 @@
box-sizing: border-box;
display: flex;
width: 100%;
padding: 4px;
border-radius: 2px;
padding: 4px 8px;
border-radius: 4px;
text-align: center;
cursor: pointer;
justify-content: center;
align-items: center;
border: 1px solid var(--vscode-button-border, transparent);
line-height: 18px;
line-height: 16px;
font-size: 12px;
}

.monaco-text-button.small {
line-height: 14px;
font-size: 11px;
padding: 3px 6px;
}

.monaco-text-button:focus {
Expand Down Expand Up @@ -61,6 +68,7 @@
align-items: center;
font-weight: normal;
font-style: inherit;
line-height: 18px;
padding: 4px 0;
}

Expand Down Expand Up @@ -100,13 +108,13 @@
.monaco-button-dropdown > .monaco-button.monaco-dropdown-button {
border: 1px solid var(--vscode-button-border, transparent);
border-left-width: 0 !important;
border-radius: 0 2px 2px 0;
border-radius: 0 4px 4px 0;
display: flex;
align-items: center;
}

.monaco-button-dropdown > .monaco-button.monaco-text-button {
border-radius: 2px 0 0 2px;
border-radius: 4px 0 0 4px;
}

.monaco-description-button {
Expand Down
2 changes: 2 additions & 0 deletions src/vs/base/browser/ui/button/button.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ export interface IButtonOptions extends Partial<IButtonStyles> {
readonly supportIcons?: boolean;
readonly supportShortLabel?: boolean;
readonly secondary?: boolean;
readonly small?: boolean;
readonly hoverDelegate?: IHoverDelegate;
readonly disabled?: boolean;
}
Expand Down Expand Up @@ -116,6 +117,7 @@ export class Button extends Disposable implements IButton {
this._element.setAttribute('role', 'button');

this._element.classList.toggle('secondary', !!options.secondary);
this._element.classList.toggle('small', !!options.small);
const background = options.secondary ? options.buttonSecondaryBackground : options.buttonBackground;
const foreground = options.secondary ? options.buttonSecondaryForeground : options.buttonForeground;

Expand Down
10 changes: 2 additions & 8 deletions src/vs/base/browser/ui/dialog/dialog.css
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,6 @@
}

.monaco-dialog-box > .dialog-buttons-row > .dialog-buttons > .monaco-button {
padding: 4px 10px;
overflow: hidden;
text-overflow: ellipsis;
margin: 4px 5px; /* allows button focus outline to be visible */
Expand Down Expand Up @@ -228,19 +227,14 @@
outline-width: 1px;
outline-style: solid;
outline-color: var(--vscode-focusBorder);
border-radius: 2px;
border-radius: 4px;
}

.monaco-dialog-box > .dialog-buttons-row > .dialog-buttons > .monaco-button-dropdown > .monaco-text-button {
padding-left: 10px;
padding-right: 10px;
}

.monaco-dialog-box.align-vertical > .dialog-buttons-row > .dialog-buttons > .monaco-button-dropdown > .monaco-text-button {
width: 100%;
}

.monaco-dialog-box > .dialog-buttons-row > .dialog-buttons > .monaco-button-dropdown > .monaco-dropdown-button {
padding-left: 5px;
padding-right: 5px;
padding: 0 4px;
}
2 changes: 1 addition & 1 deletion src/vs/base/browser/ui/inputbox/inputBox.css
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
display: block;
padding: 0;
box-sizing: border-box;
border-radius: 2px;
border-radius: 4px;

/* Customizable */
font-size: inherit;
Expand Down
4 changes: 2 additions & 2 deletions src/vs/base/browser/ui/selectBox/selectBox.css
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
.monaco-select-box {
width: 100%;
cursor: pointer;
border-radius: 2px;
border-radius: 4px;
}

.monaco-select-box-dropdown-container {
Expand All @@ -30,6 +30,6 @@

.mac .monaco-action-bar .action-item .monaco-select-box {
font-size: 11px;
border-radius: 3px;
border-radius: 4px;
min-height: 24px;
}
2 changes: 1 addition & 1 deletion src/vs/base/browser/ui/selectBox/selectBoxCustom.css
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
.monaco-select-box-dropdown-container {
display: none;
box-sizing: border-box;
border-radius: 5px;
border-radius: 4px;
box-shadow: 0 2px 8px var(--vscode-widget-shadow);
}

Expand Down
2 changes: 1 addition & 1 deletion src/vs/editor/contrib/rename/browser/renameWidget.css
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

.monaco-editor .rename-box .rename-input-with-button {
padding: 3px;
border-radius: 2px;
border-radius: 4px;
width: calc(100% - 8px); /* 4px padding on each side */
}

Expand Down
1 change: 1 addition & 0 deletions src/vs/platform/accessibility/browser/accessibleView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ export const enum AccessibleViewProviderId {
MergeEditor = 'mergeEditor',
PanelChat = 'panelChat',
ChatTerminalOutput = 'chatTerminalOutput',
ChatThinking = 'chatThinking',
InlineChat = 'inlineChat',
AgentChat = 'agentChat',
QuickChat = 'quickChat',
Expand Down
Loading
Loading