Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
43b8edc
Use proper streams for loading webview resources
mjbvz Apr 22, 2026
779b23b
agentHost: first take of session settings and enhanced tool call appr…
connor4312 Apr 22, 2026
c2e84bb
Transfer streams directly when supported
mjbvz Apr 22, 2026
c98786a
Update src/vs/workbench/contrib/webview/browser/webviewElement.ts
mjbvz Apr 22, 2026
f7c1117
Update src/vs/workbench/contrib/webview/browser/resourceLoading.ts
mjbvz Apr 22, 2026
de17569
Add more error handling
mjbvz Apr 22, 2026
76696d4
prompt validator: improve error reporting (#311876)
aeschli Apr 22, 2026
95f4dfa
Refactor chat input animation and improve border color visibility (#3…
mrleemurray Apr 22, 2026
5b56487
Agents - maintain maximized state when opening in modal/main editor p…
lszomoru Apr 22, 2026
9c1d0bd
Agents - temporarily remove the "View All Changes" action (#311869)
lszomoru Apr 22, 2026
252581e
Timeline - split contributions (#311882)
lszomoru Apr 22, 2026
eec802b
Agents: Refactor chat experimental send button styles (#311875)
mrleemurray Apr 22, 2026
102df5b
ci: fix universal build post tsgo transition (#311889)
deepak1556 Apr 22, 2026
6fd016a
Move skip shell handling to service and optimize (#311892)
Tyriar Apr 22, 2026
717e853
Add `APPLICATION_SHARED` storage scope for cross-app state sharing (#…
sandy081 Apr 22, 2026
7650a4a
make `zone` the render-mode default again (#311672)
jrieken Apr 22, 2026
acb6bc5
Chat - restore chat contribution (#311906)
lszomoru Apr 22, 2026
225cd03
fix command rewrite issue (#311471)
meganrogge Apr 22, 2026
24e04be
test: add blocksCi label to InlineChatZoneWidget fixtures (#311902)
jrieken Apr 22, 2026
1c97294
Agents: Adjust padding for session section label (#311907)
mrleemurray Apr 22, 2026
683373f
remove agent app support in linux (#311910)
sandy081 Apr 22, 2026
bb52bd5
comments
connor4312 Apr 22, 2026
5f4a05b
Merge remote-tracking branch 'origin/main' into connor4312/ah-session…
connor4312 Apr 22, 2026
a002b8f
Display model used for inline chat responses (#311918)
jrieken Apr 22, 2026
ba9d296
test: add screenshots for InlineChatZoneWidget and its terminated sta…
jrieken Apr 22, 2026
77c8a07
Agents - remove "Selection" and "Go" main menu items (#311927)
lszomoru Apr 22, 2026
e7256a6
Agents - hide the "Appearance" menu (#311937)
lszomoru Apr 22, 2026
40db337
Agents - add "Sessions" menu item in the "Views" menu (#311936)
lszomoru Apr 22, 2026
72dbc99
Give explicit stream type
mjbvz Apr 22, 2026
88620e4
Revert byte stream usage for now
mjbvz Apr 22, 2026
4c69bbb
Clean up listener
mjbvz Apr 22, 2026
b2ffe3f
agentHost: first take of session settings and enhanced tool call appr…
connor4312 Apr 22, 2026
314658a
Handle a few more disposals
mjbvz Apr 22, 2026
3cf9be6
Fix chat input border colors and animation duration (#311933)
mrleemurray Apr 22, 2026
b980ef3
Merge pull request #311844 from mjbvz/dev/mjbvz/new-earwig
mjbvz Apr 22, 2026
6ee3ae6
nes: fix: skip noop diffs from diff history (#311932)
ulugbekna Apr 22, 2026
a14d030
Add support for TST for openai models @bhavyaus (#311841)
bhavyaus Apr 22, 2026
d1b5383
sessions: preserve chat tab title casing (#311942)
hawkticehurst Apr 22, 2026
f3d5d14
agentHost: settings followups (#311954)
connor4312 Apr 22, 2026
31320b4
restore changes for /remote. (#311956)
rebornix Apr 22, 2026
4b54023
Add option to switch to Auto
cwebster-99 Apr 22, 2026
6baf329
Enable custom agent hooks by default (#311827)
pwang347 Apr 22, 2026
0308de5
Adding check for isAuto
cwebster-99 Apr 22, 2026
096e5ab
agentHost: bump @github/copilot to 1.0.34 (#311964)
roblourens Apr 22, 2026
d9f2b94
Add one time prompt to try ts 7.0 if you have ts nightly installed
mjbvz Apr 22, 2026
09a7290
Add descriptions to chat customization creator menu (#311812)
pwang347 Apr 22, 2026
94c4655
ci: switch PR workflows back to 1ES self-hosted runners with JobId (#…
Yoyokrazy Apr 22, 2026
942c025
Make `timeout` optional in `run_in_terminal` and guide model to omit …
meganrogge Apr 22, 2026
2b31d58
fix cap
cwebster-99 Apr 22, 2026
ed5e5f5
Update GPT-5.4 prompt progress guidance (#311764)
dileepyavan Apr 22, 2026
1e87325
Post update release notes polish (#311955)
cwebster-99 Apr 22, 2026
7ba951a
Merge pull request #311977 from mjbvz/dev/mjbvz/selected-barracuda
mjbvz Apr 22, 2026
38e38b0
extensions: split devtoolsExtensionHost action into its own contribut…
roblourens Apr 22, 2026
ce3952d
handle progress rendering for cli todos (#311969)
justschen Apr 22, 2026
f6c99af
Merge pull request #311968 from microsoft/exuberant-landfowl
cwebster-99 Apr 22, 2026
e71a6eb
sessions: adjust notification placement and spacing (#311959)
hawkticehurst Apr 22, 2026
c08fa67
Sequence setMetadata writes per key to fix flaky session config test …
roblourens Apr 22, 2026
c10232d
fix: real-SDK integration tests — skip plan-mode test, fix subagent b…
roblourens Apr 22, 2026
82313c9
Agents - upadte default value for workbench.editor.useModal setting (…
lszomoru Apr 22, 2026
b1efe3d
fix padding and collapsing (#311998)
justschen Apr 22, 2026
e65f99d
share recent folders between apps (#311963)
sandy081 Apr 22, 2026
186e798
sessions: simplify secondary sidebar titlebar toggle (#311787)
hawkticehurst Apr 22, 2026
0917462
sessions: prevent attached secondary sidebar snap-close (#311950)
hawkticehurst Apr 22, 2026
16f1ebc
fix: clear parent change listener before disposeContext in ScopedCont…
maruthang Apr 22, 2026
0b45700
Adopt renamed agent host protocol types (#311983)
roblourens Apr 22, 2026
487cc1b
Rename skillContentRead telemetry properties to use 'skill' prefix (#…
AbhitejJohn Apr 22, 2026
ebb2a23
Update customization strings (#312003)
pwang347 Apr 22, 2026
1f9cd94
Tear down SSH tunnel when removing a remote (#311992)
roblourens Apr 22, 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
2 changes: 1 addition & 1 deletion .github/workflows/pr-linux-cli-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
jobs:
linux-cli-test:
name: ${{ inputs.job_name }}
runs-on: ubuntu-22.04
runs-on: [ self-hosted, 1ES.Pool=1es-vscode-oss-ubuntu-22.04-x64, "JobId=linux-cli-test-${{ inputs.job_name }}-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" ]
env:
RUSTUP_TOOLCHAIN: ${{ inputs.rustup_toolchain }}
steps:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/pr-node-modules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ permissions: {}
jobs:
compile:
name: Compile
runs-on: ubuntu-22.04
runs-on: [ self-hosted, 1ES.Pool=1es-vscode-oss-ubuntu-22.04-x64, "JobId=compile-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" ]
steps:
- name: Checkout microsoft/vscode
uses: actions/checkout@v6
Expand Down Expand Up @@ -86,7 +86,7 @@ jobs:

linux:
name: Linux
runs-on: ubuntu-22.04
runs-on: [ self-hosted, 1ES.Pool=1es-vscode-oss-ubuntu-22.04-x64, "JobId=linux-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" ]
env:
NPM_ARCH: x64
VSCODE_ARCH: x64
Expand Down Expand Up @@ -219,7 +219,7 @@ jobs:

windows:
name: Windows
runs-on: [ self-hosted, 1ES.Pool=1es-vscode-oss-windows-2022-x64 ]
runs-on: [ self-hosted, 1ES.Pool=1es-vscode-oss-windows-2022-x64, "JobId=windows-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" ]
env:
NPM_ARCH: x64
VSCODE_ARCH: x64
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr-win32-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ on:
jobs:
windows-test:
name: ${{ inputs.job_name }}
runs-on: windows-2022
runs-on: [ self-hosted, 1ES.Pool=1es-vscode-oss-windows-2022-x64, "JobId=windows-test-${{ inputs.job_name }}-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" ]
env:
ARTIFACT_NAME: ${{ (inputs.electron_tests && 'electron') || (inputs.browser_tests && 'browser') || (inputs.remote_tests && 'remote') || 'unknown' }}
NPM_ARCH: x64
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ env:
jobs:
compile:
name: Compile & Hygiene
runs-on: ubuntu-22.04
runs-on: [ self-hosted, 1ES.Pool=1es-vscode-oss-ubuntu-22.04-x64, "JobId=compile-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" ]
steps:
- name: Checkout microsoft/vscode
uses: actions/checkout@v6
Expand Down Expand Up @@ -159,7 +159,7 @@ jobs:

copilot-check-test-cache:
name: Copilot - Check Test Cache
runs-on: ubuntu-22.04
runs-on: [ self-hosted, 1ES.Pool=1es-vscode-oss-ubuntu-22.04-x64, "JobId=copilot-check-test-cache-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" ]
permissions:
contents: read
pull-requests: read
Expand Down Expand Up @@ -205,7 +205,7 @@ jobs:

copilot-check-telemetry:
name: Copilot - Check Telemetry
runs-on: ubuntu-22.04
runs-on: [ self-hosted, 1ES.Pool=1es-vscode-oss-ubuntu-22.04-x64, "JobId=copilot-check-telemetry-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" ]
permissions:
contents: read
steps:
Expand All @@ -224,7 +224,7 @@ jobs:

copilot-linux-tests:
name: Copilot - Test (Linux)
runs-on: ubuntu-22.04
runs-on: [ self-hosted, 1ES.Pool=1es-vscode-oss-ubuntu-22.04-x64, "JobId=copilot-linux-tests-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" ]
permissions:
contents: read
steps:
Expand Down Expand Up @@ -329,7 +329,7 @@ jobs:

copilot-windows-tests:
name: Copilot - Test (Windows)
runs-on: windows-2022
runs-on: [ self-hosted, 1ES.Pool=1es-vscode-oss-windows-2022-x64, "JobId=copilot-windows-tests-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" ]
permissions:
contents: read
steps:
Expand Down
1 change: 0 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
// --- Chat ---
"inlineChat.enableV2": true,
"inlineChat.affordance": "editor",
"inlineChat.renderMode": "hover",
"chat.tools.terminal.autoApprove": {
"scripts/test.bat": true,
"scripts/test.sh": true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ After creating:

**Skill vs Custom Agent?** Same capabilities for all steps → Skill. Need context isolation (subagent returns single output) or different tool restrictions per stage → Custom Agent.

**Hooks vs Instructions?** Instructions *guide* agent behavior (non-deterministic). Hooks *enforce* behavior via shell commands at lifecycle events like `PreToolUse` or `PostToolUse` — they can block operations, require approval, or run formatters deterministically. See [hooks reference](./references/hooks.md).
**Hooks vs Instructions?** Instructions *guide* agent behavior (non-deterministic). Hooks *enforce* behavior via shell commands at lifecycle events like `PreToolUse` or `PostToolUse` — they can block operations, require approval, or run formatters deterministically. Hooks can be defined in standalone `.json` files (see [hooks reference](./references/hooks.md)) or inline in custom agent frontmatter via the `hooks` attribute (see [agents reference](./references/agents.md)).

## Common Pitfalls

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,13 @@ agents: [agent1, agent2] # Optional, restrict allowed subagents by name (omi
user-invocable: true # Optional, show in agent picker (default: true)
disable-model-invocation: false # Optional, prevent subagent invocation (default: false)
handoffs: [...] # Optional, transitions to other agents
hooks: # Optional, inline hooks for this agent's lifecycle events
PreToolUse:
- type: command
command: "./scripts/validate.sh"
PostToolUse:
- type: command
command: "./scripts/format.sh"
---
```

Expand Down Expand Up @@ -108,4 +115,31 @@ You are a specialist at {specific task}. Your job is to {clear purpose}.
- **Swiss-army agents**: Too many tools, tries to do everything
- **Vague descriptions**: "A helpful agent" doesn't guide delegation—be specific
- **Role confusion**: Description doesn't match body persona
- **Circular handoffs**: A → B → A without progress criteria
- **Circular handoffs**: A → B → A without progress criteria

## Inline Hooks

Custom agents support inline `hooks` in frontmatter. These hooks execute shell commands at agent lifecycle points and are scoped to this agent only. The format matches standalone hook files (see [hooks reference](../hooks.md)).

### Supported Events

`SessionStart`, `UserPromptSubmit`, `PreToolUse`, `PostToolUse`, `PreCompact`, `SubagentStart`, `SubagentStop`, `Stop`

### Example

```yaml
---
description: "Secure code reviewer that blocks dangerous commands"
tools: [read, search, execute]
hooks:
PreToolUse:
- type: command
command: "./scripts/block-dangerous-cmds.sh"
timeout: 10
PostToolUse:
- type: command
command: "./scripts/auto-lint.sh"
---
```

Each hook command supports: `type` (must be `command`), `command`, platform overrides (`windows`, `linux`, `osx`), `cwd`, `env`, `timeout`.
9 changes: 9 additions & 0 deletions extensions/copilot/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3776,6 +3776,15 @@
"onExp"
]
},
"github.copilot.chat.responsesApi.toolSearchTool.enabled": {
"type": "boolean",
"default": false,
"markdownDescription": "%github.copilot.config.responsesApi.toolSearchTool.enabled%",
"tags": [
"experimental",
"onExp"
]
},
"github.copilot.chat.updated53CodexPrompt.enabled": {
"type": "boolean",
"default": true,
Expand Down
1 change: 1 addition & 0 deletions extensions/copilot/package.nls.json
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,7 @@
"github.copilot.config.responsesApiReasoningSummary": "Sets the reasoning summary style used for the Responses API. Requires `#github.copilot.chat.useResponsesApi#`.",
"github.copilot.config.responsesApiContextManagement.enabled": "Enables context management for the Responses API. Requires `#github.copilot.chat.useResponsesApi#`.",
"github.copilot.config.responsesApi.promptCacheKey.enabled": "Enables prompt cache key being set for the Responses API.",
"github.copilot.config.responsesApi.toolSearchTool.enabled": "Enable tool search for OpenAI Responses API models. When enabled, tools are dynamically discovered and loaded on-demand using embeddings-based search, reducing context window usage when many tools are available.",
"github.copilot.config.updated53CodexPrompt.enabled": "Enables the updated prompt for gpt-5.3-codex model.",
"github.copilot.config.gpt54ConcisePrompt.enabled": "Enables the concise prompt experiment for gpt-5.4 model.",
"github.copilot.config.gpt54LargePrompt.enabled": "Enables the large prompt experiment for gpt-5.4 model.",
Expand Down
Loading
Loading