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
f9fcd84
inline chat: add experiment-controlled reasoning effort and thinking …
jrieken Apr 20, 2026
9de7ce0
inline chat: honor user modelConfiguration.reasoningEffort from UI
jrieken Apr 20, 2026
5635ce9
Defer EditorMouseEvent position computation
mjbvz Apr 20, 2026
e186b4c
feat(chat): add randomized placeholders for new-session chat input
mrleemurray Apr 21, 2026
0c740b2
feat(chat): enhance chat input with randomized placeholders to improv…
mrleemurray Apr 21, 2026
15d4bf6
feat(chat): refine chat input placeholders by removing ellipses for c…
mrleemurray Apr 21, 2026
16e7e39
Agents - disable git commands in the editor title (#311645)
lszomoru Apr 21, 2026
38df135
Agents - add open file/open changes actions (#311648)
lszomoru Apr 21, 2026
fd70690
Merge pull request #311350 from microsoft/joh/inline-chat-reasoning-e…
jrieken Apr 21, 2026
d9b89ca
Merge pull request #311637 from microsoft/mrleemurray/agent-chat-plac…
mrleemurray Apr 21, 2026
232ae44
Implement plan review feedback functionality with UI enhancements (#3…
DonJayamanne Apr 21, 2026
df02828
Agents: Refine animated chat input working border (#311653)
mrleemurray Apr 21, 2026
fa123b8
Agents - rework open changes action (#311665)
lszomoru Apr 21, 2026
4e26289
fix: update @github/copilot to version 1.0.34 and integrate AutoModeS…
DonJayamanne Apr 21, 2026
e19e287
Agents - get agent feedback working in the multi-file diff editor (#3…
lszomoru Apr 21, 2026
c4634a7
add expand action for question part (#311439)
meganrogge Apr 21, 2026
7d8f4ac
refactor: consolidate debug service registrations into a new contribu…
jrieken Apr 21, 2026
d4e3ed3
Agents - add layout actions to open in modal editor (#311680)
lszomoru Apr 21, 2026
0f7e0b9
Agents: Add experimental gradient styling for chat send button (#311685)
mrleemurray Apr 21, 2026
3170842
Fix steer/queue keybinding labels in picker dropdown (#310961)
ulugbekna Apr 21, 2026
8dfc15d
Merge pull request #311495 from mjbvz/dev/mjbvz/smooth-swordtail
mjbvz Apr 21, 2026
2749e2b
Adjust padding in chat editor for improved layout (#311692)
mrleemurray Apr 21, 2026
ad714f0
Agents - start cleaning up IChatSessionFileChange and IChatSessionFil…
lszomoru Apr 21, 2026
b70766c
Fix customizations sidebar restoring previous section on reopen (#311…
joshspicer Apr 21, 2026
177f8e4
Surfacing the chat customization item menu (#311641)
aiday-mar Apr 21, 2026
24c9ba1
update docs for edit capturing (#311694)
ulugbekna Apr 21, 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 build/lib/stylelint/vscode-known-variables.json
Original file line number Diff line number Diff line change
Expand Up @@ -1041,7 +1041,7 @@
"--animation-angle",
"--animation-opacity",
"--chat-input-anim-angle",
"--chat-input-working-fill",
"--chat-send-button-anim-angle",
"--chat-setup-dialog-glow-angle",
"--vscode-chat-font-family",
"--vscode-chat-font-size-body-l",
Expand Down
24 changes: 12 additions & 12 deletions extensions/copilot/docs/NES_EXPECTED_EDIT_CAPTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Add this setting to your VS Code `settings.json`:
}
```

That's it! Auto-capture on rejection is enabled by default. To disable it (you can still capture manually via **Cmd+K Cmd+R**):
That's it! Auto-capture on rejection is enabled by default. To disable it (you can still capture manually via the Command Palette):
```json
{
"github.copilot.chat.advanced.inlineEdits.recordExpectedEdit.onReject": false
Expand All @@ -29,14 +29,14 @@ That's it! Auto-capture on rejection is enabled by default. To disable it (you c
1. Reject the suggestion (press `Esc` or continue typing)
2. If `onReject` is enabled, capture mode starts automatically
3. Type the code you *expected* NES to suggest
4. Press **Enter** to save, or **Esc** to cancel
4. Press **Cmd+Enter** (Mac) / **Ctrl+Enter** (Windows/Linux) to save, or **Esc** to cancel

**When NES didn't appear but should have:**
1. Press **Cmd+K Cmd+R** (Mac) or **Ctrl+K Ctrl+R** (Windows/Linux)
1. Open the Command Palette (**Cmd+Shift+P** / **Ctrl+Shift+P**) and run **"Copilot: Record Expected Edit (NES)"**
2. Type the code you expected NES to suggest
3. Press **Enter** to save
3. Press **Cmd+Enter** / **Ctrl+Enter** to save

> **Tip:** Use **Shift+Enter** to insert newlines during capture (since Enter saves).
> **Tip:** To indicate that *no* edit was expected (i.e. the rejection was correct), press **Cmd+Enter** / **Ctrl+Enter** without making any edits.

### 3. Submit Your Feedback
Once you've captured some edits:
Expand All @@ -49,10 +49,10 @@ Once you've captured some edits:

| Action | Keybinding |
|--------|------------|
| Start capture manually | **Cmd+K Cmd+R** / **Ctrl+K Ctrl+R** |
| Save capture | **Enter** |
| Start capture manually | Command Palette → **Copilot: Record Expected Edit (NES)** |
| Save capture | **Cmd+Enter** / **Ctrl+Enter** |
| Save as "no edit expected" | **Cmd+Enter** / **Ctrl+Enter** with no edits made |
| Cancel capture | **Esc** |
| Insert newline | **Shift+Enter** |

| Command | Description |
|---------|-------------|
Expand All @@ -63,13 +63,13 @@ Once you've captured some edits:

### Trigger Points
- **Automatic**: Capture starts when you reject an NES suggestion (if `onReject` setting is enabled)
- **Manual**: Use the keyboard shortcut or Command Palette when NES didn't appear but should have
- **Manual**: Run **"Copilot: Record Expected Edit (NES)"** from the Command Palette when NES didn't appear but should have

### Capture Session
When capture mode is active:
1. A status bar indicator shows: **"NES CAPTURE MODE ACTIVE"**
2. Type your expected edit naturally in the editor
3. Press **Enter** to save or **Esc** to cancel
1. An animated status bar indicator shows: **"NES CAPTURE MODE ACTIVE"** (with an error background for visibility). Hovering it reveals the available keybindings.
2. Type your expected edit naturally in the editor (Enter inserts a newline as usual)
3. Press **Cmd+Enter** / **Ctrl+Enter** to save (saving with no edits records "no edit expected"), or **Esc** to cancel

### Where Captures Are Saved
Recordings are stored in your workspace under `.copilot/nes-feedback/`:
Expand Down
56 changes: 28 additions & 28 deletions extensions/copilot/package-lock.json

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

31 changes: 29 additions & 2 deletions extensions/copilot/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4222,6 +4222,33 @@
"onExp"
]
},
"github.copilot.chat.inlineChat.reasoningEffort": {
"type": "string",
"default": "low",
"enum": [
"none",
"minimal",
"low",
"medium",
"high"
],
"markdownDescription": "%github.copilot.config.inlineChat.reasoningEffort%",
"tags": [
"advanced",
"experimental",
"onExp"
]
},
"github.copilot.chat.inlineChat.enableThinking": {
"type": "boolean",
"default": false,
"markdownDescription": "%github.copilot.config.inlineChat.enableThinking%",
"tags": [
"advanced",
"experimental",
"onExp"
]
},
"github.copilot.chat.debug.requestLogger.maxEntries": {
"type": "number",
"default": 100,
Expand Down Expand Up @@ -5682,7 +5709,7 @@
{
"command": "github.copilot.sessions.discardChanges",
"when": "chatSessionType == copilotcli && isSessionsWindow && sessions.hasGitRepository && sessions.changesVersionMode == branchChanges",
"group": "navigation@1"
"group": "navigation@2"
}
],
"chat/customizations/create": [
Expand Down Expand Up @@ -6411,7 +6438,7 @@
"@anthropic-ai/claude-agent-sdk": "0.2.112",
"@anthropic-ai/sdk": "^0.82.0",
"@github/blackbird-external-ingest-utils": "^0.3.0",
"@github/copilot": "^1.0.28",
"@github/copilot": "^1.0.34",
"@google/genai": "^1.22.0",
"@humanwhocodes/gitignore-to-minimatch": "1.0.2",
"@microsoft/tiktokenizer": "^1.0.10",
Expand Down
2 changes: 2 additions & 0 deletions extensions/copilot/package.nls.json
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,8 @@
"github.copilot.config.localWorkspaceRecording.enabled": "Enable local workspace recording for analysis.",
"github.copilot.config.editRecording.enabled": "Enable edit recording for analysis.",
"github.copilot.config.inlineChat.selectionRatioThreshold": "Threshold at which to switch editing strategies for inline chat. When a selection portion of code matches a parse tree node, only that is presented to the language model. This speeds up response times but might have lower quality results. Requires having a parse tree for the document and the `inlineChat.enableV2` setting. Values must be between 0 and 1, where 0 means off and 1 means the selection perfectly matches a parse tree node.",
"github.copilot.config.inlineChat.reasoningEffort": "Controls the reasoning effort level for inline chat requests. Lower values result in faster responses with fewer reasoning tokens. Supported values depend on the model.",
"github.copilot.config.inlineChat.enableThinking": "Controls whether thinking/reasoning is enabled for inline chat requests. When disabled, reasoning summaries are suppressed for faster responses.",
"github.copilot.config.debug.requestLogger.maxEntries": "Maximum number of entries to keep in the request logger for debugging purposes.",
"github.copilot.config.chat.agentDebugLog.enabled": "Deprecated: use `github.copilot.chat.agentDebugLog.fileLogging.enabled` instead.",
"github.copilot.config.chat.agentDebugLog.enabled.deprecated": "This setting has been merged into `github.copilot.chat.agentDebugLog.fileLogging.enabled`. Please use this setting instead.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ export class CopilotCLISessionService extends Disposable implements ICopilotCLIS
this.monitorSessionFiles();
this._sessionManager = new Lazy<Promise<internal.LocalSessionManager>>(async () => {
try {
const { internal, createLocalFeatureFlagService } = await this.getSDKPackage();
const { internal, createLocalFeatureFlagService, AutoModeSessionManager } = await this.getSDKPackage();
// Always enable SDK OTel so the debug panel receives native spans via the bridge.
// When user OTel is disabled, we force file exporter to /dev/null so the SDK
// creates OtelSessionTracker (for debug panel) but doesn't export to any collector.
Expand Down Expand Up @@ -210,6 +210,7 @@ export class CopilotCLISessionService extends Disposable implements ICopilotCLIS
return new internal.LocalSessionManager({
featureFlagService: createLocalFeatureFlagService(),
telemetryService: new internal.NoopTelemetryService(),
autoModeManager: new AutoModeSessionManager(),
}, { flushDebounceMs: undefined, settings: undefined, version: undefined });
}
catch (error) {
Expand All @@ -221,8 +222,8 @@ export class CopilotCLISessionService extends Disposable implements ICopilotCLIS
}

private async getSDKPackage() {
const { internal, LocalSession, createLocalFeatureFlagService } = await this.copilotCLISDK.getPackage();
return { internal, LocalSession, createLocalFeatureFlagService };
const { internal, LocalSession, createLocalFeatureFlagService, AutoModeSessionManager } = await this.copilotCLISDK.getPackage();
return { internal, LocalSession, createLocalFeatureFlagService, AutoModeSessionManager };
}

getSessionWorkingDirectory(sessionId: string): Uri | undefined {
Expand Down
Loading
Loading