Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
36b085b
some more minor chat input improvements
benibenj Mar 23, 2026
072e113
Revert "Use bracketed paste for multiline executed terminal text (#30…
meganrogge Mar 23, 2026
9ea434f
Session grouping api
benibenj Mar 23, 2026
c685394
Fix get_task_output empty results for background tasks while preservi…
meganrogge Mar 23, 2026
98d306b
update endgame notebook (#304144)
jrieken Mar 23, 2026
6865491
Merge pull request #304149 from microsoft/benibenj/silky-raccoon
benibenj Mar 23, 2026
b56ff98
Track update velocity in the base update service (#304151)
dmitrivMS Mar 23, 2026
59ffcc0
Merge pull request #304119 from microsoft/benibenj/entire-viper
benibenj Mar 23, 2026
551308f
Remove automated trigger for sanity tests pipeline (#304168)
dmitrivMS Mar 23, 2026
fb7273f
select model when sub menu value is selected (#304172)
sandy081 Mar 23, 2026
1771717
Make sure update tooltip is updated in all windows, not just focused …
dmitrivMS Mar 23, 2026
70019df
Fix Azure pipeline parameter whitespace handling (#304065)
joaomoreno Mar 23, 2026
072e1e6
agentPlugins: add plugin creation flow (#304207)
connor4312 Mar 23, 2026
ac0b7fc
Add workbench.browser.openLocalhostLinks to ExP (#304224)
jruales Mar 23, 2026
87134ba
Editor - fix paste preference filter matching all providers (#304044)
xingsy97 Mar 23, 2026
79721dc
Remove unnecessary progress handling in Copilot CLI forking (#304189)
DonJayamanne Mar 23, 2026
73ae3f2
feat: add `chatPlugins` extension contribution point for agent plugin…
connor4312 Mar 23, 2026
3b2648b
Sessions - always show the version submenu (#304238)
lszomoru Mar 23, 2026
e9a5354
Enable terminal commands to run freely in `Autopilot` and `Bypass App…
meganrogge Mar 23, 2026
8a0e70c
Set max height for the chat input part (#302670)
roblourens Mar 23, 2026
4357790
Add "add remote" command to sessions app (#303781)
roblourens Mar 23, 2026
2736a7b
Revert "Sessions: Replace badge with inline title count in Changes vi…
lszomoru Mar 23, 2026
0edbe88
fix: don't block window reload on extension host graceful shutdown (#…
deepak1556 Mar 23, 2026
bcc578a
fix https://github.com/microsoft/vscode/issues/304025 (#304260)
joshspicer Mar 23, 2026
6c52b71
Bump copilot-sdk (#304267)
roblourens Mar 23, 2026
29359ef
Accessible View: include file paths for inline references in chat res…
Copilot Mar 23, 2026
8978366
Move .claude creation for testing agent harness to postinstall (#304283)
TylerLeonhardt Mar 23, 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
1 change: 0 additions & 1 deletion .claude/CLAUDE.md

This file was deleted.

1 change: 0 additions & 1 deletion .claude/skills/launch

This file was deleted.

4 changes: 2 additions & 2 deletions .github/skills/azure-pipelines/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ node .github/skills/azure-pipelines/azure-pipeline.ts queue --parameter "VSCODE_
|--------|-------------|
| `--branch <name>` | Source branch to build (default: current git branch) |
| `--definition <id>` | Pipeline definition ID (default: 111) |
| `--parameter <entry>` | Pipeline parameter in `KEY=value` format (repeatable) |
| `--parameters <list>` | Space-separated parameters in `KEY=value KEY2=value2` format |
| `--parameter <entry>` | Pipeline parameter in `KEY=value` format (repeatable); **use this when the value contains spaces** |
| `--parameters <list>` | Space-separated parameters in `KEY=value KEY2=value2` format; values **must not** contain spaces |
| `--dry-run` | Print the command without executing |

### Product Build Queue Parameters (`build/azure-pipelines/product-build.yml`)
Expand Down
22 changes: 18 additions & 4 deletions .github/skills/azure-pipelines/azure-pipeline.ts
Original file line number Diff line number Diff line change
Expand Up @@ -556,7 +556,11 @@ class AzureDevOpsClient {

protected runAzCommand(args: string[]): Promise<string> {
return new Promise((resolve, reject) => {
const proc = spawn('az', args, { shell: true });
// Use shell: false so that argument values with spaces are passed verbatim
// to the process without shell word-splitting. On Windows, az is a .cmd
// file and cannot be executed directly, so we must use az.cmd.
const azBin = process.platform === 'win32' ? 'az.cmd' : 'az';
const proc = spawn(azBin, args, { shell: false });
let stdout = '';
let stderr = '';

Expand Down Expand Up @@ -778,8 +782,8 @@ function printQueueUsage(): void {
console.log('Options:');
console.log(' --branch <name> Source branch to build (default: current git branch)');
console.log(' --definition <id> Pipeline definition ID (default: 111)');
console.log(' --parameter <entry> Pipeline parameter in "KEY=value" format (repeatable)');
console.log(' --parameters <list> Space-separated parameter list in "KEY=value KEY2=value2" format');
console.log(' --parameter <entry> Pipeline parameter in "KEY=value" format (repeatable); use this for values with spaces');
console.log(' --parameters <list> Space-separated parameter list in "KEY=value KEY2=value2" format (values must not contain spaces)');
console.log(' --dry-run Print the command without executing');
console.log(' --help Show this help message');
console.log('');
Expand Down Expand Up @@ -887,7 +891,8 @@ async function runQueueCommand(args: string[]): Promise<void> {
cmdArgs.push('--parameters', ...parsedArgs.parameters);
}
cmdArgs.push('--output', 'json');
console.log(`az ${cmdArgs.join(' ')}`);
const displayArgs = cmdArgs.map(a => a.includes(' ') ? `"${a}"` : a);
console.log(`az ${displayArgs.join(' ')}`);
process.exit(0);
}

Expand Down Expand Up @@ -1539,6 +1544,15 @@ async function runAllTests(): Promise<void> {
assert.ok(cmd.includes('OTHER=test'));
});

it('queueBuild passes parameter values with spaces verbatim', async () => {
const client = new TestableAzureDevOpsClient(ORGANIZATION, PROJECT);
await client.queueBuild('111', 'main', ['VSCODE_BUILD_TYPE=Product Build']);

const cmd = client.capturedCommands[0];
assert.ok(cmd.includes('--parameters'));
assert.deepStrictEqual(cmd[cmd.indexOf('--parameters') + 1], 'VSCODE_BUILD_TYPE=Product Build');
});

it('getBuild constructs correct az command', async () => {
const client = new TestableAzureDevOpsClient(ORGANIZATION, PROJECT);
await client.getBuild('12345');
Expand Down
7 changes: 1 addition & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,21 +30,16 @@ test/componentFixtures/.screenshots/*
!test/componentFixtures/.screenshots/baseline/
dist
.playwright-cli
.claude/
.agents/agents/*.local.md
.claude/agents/*.local.md
.github/agents/*.local.md
.agents/agents/*.local.agent.md
.claude/agents/*.local.agent.md
.github/agents/*.local.agent.md
.agents/hooks/*.local.json
.claude/hooks/*.local.json
.github/hooks/*.local.json
.agents/instructions/*.local.instructions.md
.claude/instructions/*.local.instructions.md
.github/instructions/*.local.instructions.md
.agents/prompts/*.local.prompt.md
.claude/prompts/*.local.prompt.md
.github/prompts/*.local.prompt.md
.agents/skills/.local/
.claude/skills/.local/
.github/skills/.local/
121 changes: 8 additions & 113 deletions .vscode/notebooks/endgame.github-issues
Original file line number Diff line number Diff line change
Expand Up @@ -7,82 +7,32 @@
{
"kind": 2,
"language": "github-issues",
"value": "$MILESTONE=milestone:\"1.112.0\""
"value": "$MILESTONE=milestone:\"1.113.0\""
},
{
"kind": 1,
"language": "markdown",
"value": "# Preparation"
},
{
"kind": 1,
"language": "markdown",
"value": "## Open Pull Requests on the Milestone"
},
{
"kind": 2,
"language": "github-issues",
"value": "org:microsoft $MILESTONE is:pr is:open"
},
{
"kind": 1,
"language": "markdown",
"value": "## Unverified Older Insiders-Released Issues"
},
{
"kind": 2,
"language": "github-issues",
"value": "org:microsoft -$MILESTONE is:issue is:closed reason:completed label:bug label:insiders-released -label:verified -label:*duplicate -label:*as-designed -label:z-author-verified -label:on-testplan -label:error-telemetry"
},
{
"kind": 1,
"language": "markdown",
"value": "## Unverified Older Insiders-Released Feature Requests"
},
{
"kind": 2,
"language": "github-issues",
"value": "org:microsoft -$MILESTONE is:issue is:closed reason:completed label:feature-request label:insiders-released -label:on-testplan -label:verified -label:*duplicate -label:error-telemetry"
},
{
"kind": 1,
"language": "markdown",
"value": "## Open Issues on the Milestone"
"value": "## Prep: Open PRs and Issues"
},
{
"kind": 2,
"language": "github-issues",
"value": "org:microsoft $MILESTONE is:issue is:open -label:iteration-plan -label:endgame-plan -label:testplan-item"
"value": "org:microsoft $MILESTONE is:issue is:open -label:iteration-plan -label:endgame-plan -label:testplan-item\norg:microsoft $MILESTONE is:pr is:open"
},
{
"kind": 1,
"language": "markdown",
"value": "## Feature Requests Missing Labels"
"value": "## Verification: Missing Steps"
},
{
"kind": 2,
"language": "github-issues",
"value": "org:microsoft $MILESTONE is:issue is:closed reason:completed label:feature-request -label:verification-needed -label:on-testplan -label:verified -label:*duplicate"
"value": "org:microsoft $MILESTONE is:issue is:closed reason:completed sort:updated-asc label:verification-steps-needed -label:verified -label:on-testplan -label:*duplicate -label:duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:z-author-verified -label:unreleased -label:*not-reproducible"
},
{
"kind": 1,
"language": "markdown",
"value": "## Open Test Plan Items without milestone"
},
{
"kind": 2,
"language": "github-issues",
"value": "org:microsoft $MILESTONE is:issue is:open label:testplan-item no:milestone"
},
{
"kind": 1,
"language": "markdown",
"value": "# Testing"
},
{
"kind": 1,
"language": "markdown",
"value": "## Test Plan Items"
"value": "## Testing & Verification"
},
{
"kind": 2,
Expand All @@ -92,66 +42,11 @@
{
"kind": 1,
"language": "markdown",
"value": "## Verification Needed"
},
{
"kind": 2,
"language": "github-issues",
"value": "org:microsoft $MILESTONE is:issue is:closed reason:completed label:verification-needed -label:verified -label:on-testplan"
},
{
"kind": 1,
"language": "markdown",
"value": "# Verification"
},
{
"kind": 1,
"language": "markdown",
"value": "## Verifiable Fixes"
},
{
"kind": 2,
"language": "github-issues",
"value": "org:microsoft $MILESTONE is:issue is:closed reason:completed sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:z-author-verified -label:unreleased -label:*not-reproducible -label:*out-of-scope"
},
{
"kind": 1,
"language": "markdown",
"value": "## Verifiable Fixes Missing Steps"
},
{
"kind": 2,
"language": "github-issues",
"value": "org:microsoft $MILESTONE is:issue is:closed reason:completed sort:updated-asc label:bug label:verification-steps-needed -label:verified -label:on-testplan -label:*duplicate -label:duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:z-author-verified -label:unreleased -label:*not-reproducible"
},
{
"kind": 1,
"language": "markdown",
"value": "## Unreleased Fixes"
},
{
"kind": 2,
"language": "github-issues",
"value": "org:microsoft $MILESTONE is:issue is:closed reason:completed sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:z-author-verified label:unreleased -label:*not-reproducible"
},
{
"kind": 1,
"language": "markdown",
"value": "## All Unverified Fixes"
},
{
"kind": 2,
"language": "github-issues",
"value": "org:microsoft $MILESTONE is:issue is:closed reason:completed sort:updated-asc label:bug -label:verified -label:on-testplan -label:*duplicate -label:duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:z-author-verified -label:*not-reproducible"
},
{
"kind": 1,
"language": "markdown",
"value": "# Candidates"
"value": "These are bugs we created and closed after running the TPI tool. They need to be `verified` manually"
},
{
"kind": 2,
"language": "github-issues",
"value": "org:microsoft $MILESTONE is:issue is:open label:candidate"
"value": "org:microsoft $MILESTONE is:issue is:closed label:bug reason:completed -label:verified created:>=2026-03-23"
}
]
24 changes: 2 additions & 22 deletions build/azure-pipelines/product-sanity-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ parameters:
- name: buildCommit
displayName: Published Build Commit
type: string
default: ''

- name: npmRegistry
displayName: Custom NPM Registry URL
Expand All @@ -28,17 +27,9 @@ variables:
- name: Codeql.SkipTaskAutoInjection
value: true
- name: BUILD_COMMIT
${{ if ne(parameters.buildCommit, '') }}:
value: ${{ parameters.buildCommit }}
${{ else }}:
value: $(resources.pipeline.vscode.sourceCommit)
value: ${{ parameters.buildCommit }}
- name: BUILD_QUALITY
${{ if ne(parameters.buildCommit, '') }}:
value: ${{ parameters.buildQuality }}
${{ elseif startsWith(variables['Build.SourceBranch'], 'refs/heads/release/') }}:
value: stable
${{ else }}:
value: insider
value: ${{ parameters.buildQuality }}
- name: NPM_REGISTRY
value: ${{ parameters.npmRegistry }}

Expand All @@ -50,17 +41,6 @@ resources:
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release
pipelines:
- pipeline: vscode
# allow-any-unicode-next-line
source: '⭐️ VS Code'
trigger:
stages:
- Publish
branches:
include:
- main
- release/*

extends:
template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines
Expand Down
16 changes: 16 additions & 0 deletions build/npm/postinstall.ts
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,22 @@ async function main() {
fs.writeFileSync(stateFile, JSON.stringify(_state));
fs.writeFileSync(stateContentsFile, JSON.stringify(computeContents()));

// Symlink .claude/ files to their canonical locations to test Claude agent harness
const claudeDir = path.join(root, '.claude');
fs.mkdirSync(claudeDir, { recursive: true });

const claudeMdLink = path.join(claudeDir, 'CLAUDE.md');
if (!fs.existsSync(claudeMdLink)) {
fs.symlinkSync(path.join('..', '.github', 'copilot-instructions.md'), claudeMdLink);
log('.', 'Symlinked .claude/CLAUDE.md -> .github/copilot-instructions.md');
}

const claudeSkillsLink = path.join(claudeDir, 'skills');
if (!fs.existsSync(claudeSkillsLink)) {
fs.symlinkSync(path.join('..', '.agents', 'skills'), claudeSkillsLink);
log('.', 'Symlinked .claude/skills -> .agents/skills');
}

// Temporary: patch @github/copilot-sdk session.js to fix ESM import
// (missing .js extension on vscode-jsonrpc/node). Fixed upstream in v0.1.32.
// TODO: Remove once @github/copilot-sdk is updated to >=0.1.32
Expand Down
Loading
Loading