Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
947b079
introduce title bar actions menu and contribute changes action to it …
sandy081 Feb 26, 2026
404102f
revert adding active session folder to workspace (#298039)
sandy081 Feb 26, 2026
cca0539
rm duplicate `askQuestions` tool from picker, use correct name in pro…
meganrogge Feb 26, 2026
4dec73e
enhance defineKeybindingWidget styles with important flags for shadow…
mrleemurray Feb 26, 2026
b9afe18
enhance notifications styling for reduced transparency mode
mrleemurray Feb 26, 2026
e0d6fa2
default account: expose copilot token info and keep cache model separ…
ulugbekna Feb 26, 2026
32a452a
fix tests
ulugbekna Feb 26, 2026
734a143
add explanation for persisted data migration and a todo
ulugbekna Feb 26, 2026
3aedb3e
'new custom agent' does not show configured locations (#298052)
aeschli Feb 26, 2026
c69dea1
Merge pull request #298056 from microsoft/mrleemurray/yawning-amarant…
mrleemurray Feb 26, 2026
74a369a
simplify question summary styling (#298048)
meganrogge Feb 26, 2026
5ee82cb
add applyToParentRepo action and contribution for synchronizing chang…
osortega Feb 26, 2026
6fb9cbf
fix terminal output expansion regression (#298055)
meganrogge Feb 26, 2026
a1b26b7
update ChangesViewPane to hide label for applyToParentRepo action; al…
osortega Feb 26, 2026
a2b7750
skip a11y test vs failing if timeout occurs (#298058)
meganrogge Feb 26, 2026
8374d97
refactor: update import statements and use 'relative' from path modul…
osortega Feb 26, 2026
5496be1
Fixes for agent debug panel (#298053)
pwang347 Feb 26, 2026
d2b678d
fix: update precondition and menu visibility for ApplyToParentRepoAct…
osortega Feb 26, 2026
ec90288
Align tool invocation spacing (#298071)
daviddossett Feb 26, 2026
f08c9d9
add tool to vscode vs agent set (#298060)
meganrogge Feb 26, 2026
0287d20
update distro (#298068)
bpasero Feb 26, 2026
80de3ee
plugins: fix mcp server discovery in plugins (#298038)
connor4312 Feb 26, 2026
17a4f63
fix: enhance proposed API check to validate enabledApiProposals in ex…
osortega Feb 26, 2026
581b3de
fix: normalize URI to file scheme for accurate path comparisons in Ap…
osortega Feb 26, 2026
7a46d11
fix: improve notification messages for file application results in Ap…
osortega Feb 26, 2026
0a01b4f
Fixes vite warnings & improves pipeline
hediet Feb 26, 2026
fbe3aee
Fix Integrated Browser Localhost Opener triggering in too many cases …
jruales Feb 26, 2026
406db26
More UI fixes for debug panel (#298104)
pwang347 Feb 26, 2026
3537bbc
Merge pull request #298072 from microsoft/copilot-worktree-2026-02-26…
osortega Feb 26, 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
46 changes: 25 additions & 21 deletions .github/workflows/screenshot-test.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Screenshot Tests
name: Checking Component Screenshots

on:
push:
Expand All @@ -20,6 +20,7 @@ concurrency:

jobs:
screenshots:
name: Checking Component Screenshots
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand Down Expand Up @@ -95,37 +96,40 @@ jobs:
REPORT="test/componentFixtures/.screenshots/report/report.json"
if [ -f "$REPORT" ]; then
CHANGED=$(node -e "const r = require('./$REPORT'); console.log(r.summary.added + r.summary.removed + r.summary.changed)")
TITLE="${CHANGED} screenshots changed"
TITLE="📸 ${CHANGED} screenshots changed"
CONCLUSION="neutral"
else
TITLE="Screenshots match"
TITLE="📸 Screenshots match"
CONCLUSION="success"
fi

SHA="${{ github.event.pull_request.head.sha || github.sha }}"
CHECK_RUN_ID=$(gh api "repos/${{ github.repository }}/commits/$SHA/check-runs" \
--jq '.check_runs[] | select(.name == "screenshots") | .id')

DETAILS_URL="https://hediet-ghartifactpreview.azurewebsites.net/${{ github.repository }}/run/${{ github.run_id }}/component-explorer/___explorer.html?report=./screenshot-report/report.json"

if [ -n "$CHECK_RUN_ID" ]; then
gh api "repos/${{ github.repository }}/check-runs/$CHECK_RUN_ID" \
-X PATCH --input - <<EOF || echo "::warning::Could not update check run (expected for fork PRs)"
{"details_url":"$DETAILS_URL","output":{"title":"$TITLE","summary":"$TITLE"}}
EXPLORER_PUSHED=false
if gh api "repos/${{ github.repository }}/check-runs" \
--input - <<EOF; then
{"name":"Component Screenshots","head_sha":"$SHA","status":"completed","conclusion":"$CONCLUSION","details_url":"$DETAILS_URL","output":{"title":"$TITLE","summary":"$TITLE"}}
EOF
EXPLORER_PUSHED=true
else
echo "::warning::Could not create check run (expected for fork PRs)"
fi

DETAILS_URL="https://hediet-ghartifactpreview.azurewebsites.net/${{ github.repository }}/run/${{ github.run_id }}/component-explorer/___explorer.html?report=./screenshot-report/report.json"
gh api "repos/${{ github.repository }}/statuses/$SHA" \
--input - <<EOF || echo "::warning::Could not create commit status (expected for fork PRs)"
{"state":"success","target_url":"$DETAILS_URL","description":"$TITLE","context":"screenshots / explorer"}
EOF
CHECK_RUN_ID=$(gh api "repos/${{ github.repository }}/commits/$SHA/check-runs" \
--jq '.check_runs[] | select(.name == "Checking Component Screenshots / screenshots") | .id')

- name: Post summary
run: |
if [ -f test/componentFixtures/.screenshots/report/report.md ]; then
cat test/componentFixtures/.screenshots/report/report.md >> $GITHUB_STEP_SUMMARY
if [ "$EXPLORER_PUSHED" = true ]; then
CHECK_TITLE="Screenshots"
else
echo "## Screenshots ✅" >> $GITHUB_STEP_SUMMARY
echo "No visual changes detected." >> $GITHUB_STEP_SUMMARY
CHECK_TITLE="$TITLE"
fi

if [ -n "$CHECK_RUN_ID" ]; then
gh api "repos/${{ github.repository }}/check-runs/$CHECK_RUN_ID" \
-X PATCH --input - <<EOF || echo "::warning::Could not update check run (expected for fork PRs)"
{"details_url":"$DETAILS_URL","output":{"title":"$CHECK_TITLE","summary":"$CHECK_TITLE"}}
EOF
fi

# - name: Post PR comment
Expand Down
5 changes: 5 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,11 @@
"file": 1,
"line": 2,
"column": 3
},
"background": {
"activeOnStart": true,
"beginsPattern": ".*Setting up sessions.*",
"endsPattern": "Redirection server listening on.*"
}
}
}
Expand Down
7 changes: 2 additions & 5 deletions build/vite/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -143,11 +143,8 @@ const logger = createLogger();
const loggerWarn = logger.warn;

logger.warn = (msg, options) => {
// amdX and the baseUrl code cannot be analyzed by vite.
// However, they are not needed, so it is okay to silence the warning.
if (msg.indexOf('vs/amdX.ts') !== -1) {
return;
}
// the baseUrl code cannot be analyzed by vite.
// However, it is not needed, so it is okay to silence the warning.
if (msg.indexOf('await import(new URL(`vs/workbench/workbench.desktop.main.js`, baseUrl).href)') !== -1) {
return;
}
Expand Down
15 changes: 14 additions & 1 deletion extensions/theme-2026/themes/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -394,10 +394,11 @@
}

.monaco-workbench .defineKeybindingWidget {
box-shadow: var(--shadow-lg);
box-shadow: var(--shadow-lg) !important;
border-radius: var(--radius-lg);
backdrop-filter: var(--backdrop-blur-md);
-webkit-backdrop-filter: var(--backdrop-blur-md);
background-color: color-mix(in srgb, var(--vscode-editorHoverWidget-background) 60%, transparent) !important;
}

.monaco-workbench.vs-dark .defineKeybindingWidget {
Expand Down Expand Up @@ -723,6 +724,17 @@
background: var(--vscode-notifications-background) !important;
}

.monaco-workbench.monaco-reduce-transparency .notifications-list-container {
-webkit-backdrop-filter: none;
backdrop-filter: none;
background: var(--vscode-notifications-background) !important;
}

.monaco-workbench.monaco-reduce-transparency .notification-list-item,
.monaco-workbench.monaco-reduce-transparency .notifications-center-header {
background: var(--vscode-notifications-background) !important;
}

.monaco-workbench.monaco-reduce-transparency .notifications-center {
-webkit-backdrop-filter: none;
backdrop-filter: none;
Expand Down Expand Up @@ -786,6 +798,7 @@
.monaco-workbench.monaco-reduce-transparency .defineKeybindingWidget {
-webkit-backdrop-filter: none;
backdrop-filter: none;
background: var(--vscode-editorHoverWidget-background) !important;
}

/* Chat Editor Overlay */
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "code-oss-dev",
"version": "1.110.0",
"distro": "fdfb55bde654559f3a3baea839e9797107b4e92e",
"distro": "11e5d56acfb25db3d8e0088b0150ce2488eddb53",
"author": {
"name": "Microsoft Corporation"
},
Expand Down Expand Up @@ -250,4 +250,4 @@
"optionalDependencies": {
"windows-foreground-love": "0.6.1"
}
}
}
8 changes: 4 additions & 4 deletions src/vs/amdX.ts
Original file line number Diff line number Diff line change
Expand Up @@ -171,15 +171,15 @@ class AMDModuleImporter {
if (this._amdPolicy) {
scriptSrc = this._amdPolicy.createScriptURL(scriptSrc) as unknown as string;
}
await import(scriptSrc);
await import(/* @vite-ignore */ scriptSrc);
return this._defineCalls.pop();
}

private async _nodeJSLoadScript(scriptSrc: string): Promise<DefineCall | undefined> {
try {
const fs = (await import(`${'fs'}`)).default;
const vm = (await import(`${'vm'}`)).default;
const module = (await import(`${'module'}`)).default;
const fs = (await import(/* @vite-ignore */ `${'fs'}`)).default;
const vm = (await import(/* @vite-ignore */ `${'vm'}`)).default;
const module = (await import(/* @vite-ignore */ `${'module'}`)).default;

const filePath = URI.parse(scriptSrc).fsPath;
const content = fs.readFileSync(filePath).toString();
Expand Down
5 changes: 5 additions & 0 deletions src/vs/base/common/defaultAccount.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,11 @@ export interface IPolicyData {
readonly mcpAccess?: 'allow_all' | 'registry_only';
}

export interface ICopilotTokenInfo {
readonly sn?: string;
readonly fcv1?: string;
}

export interface IDefaultAccountAuthenticationProvider {
readonly id: string;
readonly name: string;
Expand Down
38 changes: 20 additions & 18 deletions src/vs/editor/contrib/inlineCompletions/test/browser/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,34 @@

import { timeout } from '../../../../../base/common/async.js';
import { CancellationToken } from '../../../../../base/common/cancellation.js';
import { BugIndicatingError } from '../../../../../base/common/errors.js';
import { Emitter, Event } from '../../../../../base/common/event.js';
import { Disposable, DisposableStore, IReference } from '../../../../../base/common/lifecycle.js';
import { CoreEditingCommands, CoreNavigationCommands } from '../../../../browser/coreCommands.js';
import { Position } from '../../../../common/core/position.js';
import { ITextModel } from '../../../../common/model.js';
import { IInlineCompletionChangeHint, InlineCompletion, InlineCompletionContext, InlineCompletions, InlineCompletionsProvider } from '../../../../common/languages.js';
import { ITestCodeEditor, TestCodeEditorInstantiationOptions, withAsyncTestCodeEditor } from '../../../../test/browser/testCodeEditor.js';
import { InlineCompletionsModel } from '../../browser/model/inlineCompletionsModel.js';
import { autorun, derived } from '../../../../../base/common/observable.js';
import { URI } from '../../../../../base/common/uri.js';
import { runWithFakedTimers } from '../../../../../base/test/common/timeTravelScheduler.js';
import { IAccessibilitySignalService } from '../../../../../platform/accessibilitySignal/browser/accessibilitySignalService.js';
import { IDefaultAccountService } from '../../../../../platform/defaultAccount/common/defaultAccount.js';
import { SyncDescriptor } from '../../../../../platform/instantiation/common/descriptors.js';
import { ServiceCollection } from '../../../../../platform/instantiation/common/serviceCollection.js';
import { CoreEditingCommands, CoreNavigationCommands } from '../../../../browser/coreCommands.js';
import { IBulkEditService } from '../../../../browser/services/bulkEditService.js';
import { IRenameSymbolTrackerService, NullRenameSymbolTrackerService } from '../../../../browser/services/renameSymbolTrackerService.js';
import { TextEdit } from '../../../../common/core/edits/textEdit.js';
import { Position } from '../../../../common/core/position.js';
import { Range } from '../../../../common/core/range.js';
import { PositionOffsetTransformer } from '../../../../common/core/text/positionToOffset.js';
import { IInlineCompletionChangeHint, InlineCompletion, InlineCompletionContext, InlineCompletions, InlineCompletionsProvider } from '../../../../common/languages.js';
import { ITextModel } from '../../../../common/model.js';
import { ILanguageFeaturesService } from '../../../../common/services/languageFeatures.js';
import { LanguageFeaturesService } from '../../../../common/services/languageFeaturesService.js';
import { IModelService } from '../../../../common/services/model.js';
import { IResolvedTextEditorModel, ITextModelService } from '../../../../common/services/resolverService.js';
import { ViewModel } from '../../../../common/viewModel/viewModelImpl.js';
import { ITestCodeEditor, TestCodeEditorInstantiationOptions, withAsyncTestCodeEditor } from '../../../../test/browser/testCodeEditor.js';
import { InlineCompletionsController } from '../../browser/controller/inlineCompletionsController.js';
import { Range } from '../../../../common/core/range.js';
import { TextEdit } from '../../../../common/core/edits/textEdit.js';
import { BugIndicatingError } from '../../../../../base/common/errors.js';
import { PositionOffsetTransformer } from '../../../../common/core/text/positionToOffset.js';
import { InlineCompletionsModel } from '../../browser/model/inlineCompletionsModel.js';
import { InlineSuggestionsView } from '../../browser/view/inlineSuggestionsView.js';
import { IBulkEditService } from '../../../../browser/services/bulkEditService.js';
import { IDefaultAccountService } from '../../../../../platform/defaultAccount/common/defaultAccount.js';
import { Emitter, Event } from '../../../../../base/common/event.js';
import { IRenameSymbolTrackerService, NullRenameSymbolTrackerService } from '../../../../browser/services/renameSymbolTrackerService.js';
import { ITextModelService, IResolvedTextEditorModel } from '../../../../common/services/resolverService.js';
import { IModelService } from '../../../../common/services/model.js';
import { URI } from '../../../../../base/common/uri.js';
import { SyncDescriptor } from '../../../../../platform/instantiation/common/descriptors.js';

export class MockInlineCompletionsProvider implements InlineCompletionsProvider {
private returnValue: InlineCompletion[] = [];
Expand Down Expand Up @@ -274,6 +274,8 @@ export async function withAsyncTestCodeEditorAndInlineCompletionsModel<T>(
onDidChangeDefaultAccount: Event.None,
onDidChangePolicyData: Event.None,
policyData: null,
copilotTokenInfo: null,
onDidChangeCopilotTokenInfo: Event.None,
getDefaultAccount: async () => null,
setDefaultAccountProvider: () => { },
getDefaultAccountAuthenticationProvider: () => { return { id: 'mockProvider', name: 'Mock Provider', enterprise: false }; },
Expand Down
Loading
Loading