* nes: implement cursor line distance check for serving from cache
* address review: use rebasedEdit for rejection, skip cross-file cursorOffset, fix test types
nes: fix: address PR review for _performFetch extraction
- Rename FetchResult.Error to FetchResult.FetchFailure to avoid
confusion with built-in Error class
- Move fetchResultPromise .then/.catch/.finally handlers before
await Promise.race so early-return paths get setFetchEndTime()
telemetry
* feat: use crossAppIPC to coordinate update ownership between apps
Introduce CrossAppUpdateCoordinator that uses Electron's crossAppIPC
module to ensure only one update client runs at a time. Whichever app
(VS Code or Agents) launches first becomes the IPC server and owns the
update client. The second app becomes the IPC client, suspends its local
update service, and proxies all update operations to the server.
When the server app quits, the client detects the disconnect, resumes
its local update service, and takes over update ownership. Both apps
show synchronized update UI at all times. "Restart to Update" signals
the peer to quit before applying the update.
- Add crossAppIPC type definitions for custom Electron build
- Add CrossAppUpdateCoordinator (symmetric, role-based coordination)
- Add suspend()/resume() to AbstractUpdateService
- Simplify Agents update UI to use direct update actions
* chore: use temp build
* fix: address review feedback for cross-app update coordination
- Dynamically register/dispose the local state change listener instead
of filtering by mode, avoids unnecessary event handling
while in client mode
- Clarify that suspend() blocks all update checks (automatic and manual)
since the coordinator proxies everything to the server in client mode
- Replace fire-and-forget quit with a proper handshake protocol:
server sends PrepareForQuit, client responds with QuitConfirmed or
QuitVetoed, server only proceeds with quitAndInstall on confirmation.
This prevents one side from quitting while the other's quit is vetoed.
* temp: update build
* fix: disable the crossapp coordinator for stable
* fix: don't restart ipc for client disconnection over quit request
* fix: use proxy exe mutex to detect and relaunch app
* temp: workaround for reconnect on macOS
* chore: move noisy updating state to trace level
* fix: compile error on windows
* fix: ready mutex when running as embedded app
* fix: don't open host app when proxy app is the only client
* chore: only enable cross app updater on windows
macOS needs additional work in the squirrel client.
* chore: revert to upstream electron
* fix: compile error
* fix: lazy resolve custom module
Convert inlineChat module from TypeScript private (`private _field`)
to native ES private fields (`#field`) for better encapsulation and
V8 performance (after the private-to-property build step mangles them).
* Fix double compaction on first-turn budget exceeded
When the first render of a turn throws BudgetExceededError and the
background summarizer is Idle, we fall back to a synchronous foreground
'full' summarization via renderWithSummarization. That path did not set
the 'summary applied this iteration' flag, so the post-render gate
(>= 80% + Idle) would also kick off a background 'inline' compaction
in the same buildPrompt call — producing both
summarizeConversationHistory-full and summarizeConversationHistory-inline.
- Set the flag on both foreground fallback call sites so the post-render
gate correctly short-circuits.
- Rename 'summaryAppliedThisIteration' to 'didSummarizeThisIteration' to
better reflect that it covers any summarization work (pre-render bg
apply, budget-exceeded bg apply, or foreground fallback).
* Update extensions/copilot/src/extension/intents/node/agentIntent.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* agentHost: subagents
* agentHost: remove _meta.parentToolCallId dependency, subscribe to child sessions instead
Inner tool calls from subagent sessions are no longer stored in the parent
turn with _meta.parentToolCallId. Instead:
- Server: _buildTurnsFromMessages skips inner events (parentToolCallId),
_restoreSubagentSession builds child session turns from raw messages
- Client: _enrichHistoryWithSubagentCalls subscribes to child sessions
during history restore, injects serialized inner tool calls with
subAgentInvocationId set
Also fixes hygiene: replace 'in' operator with hasKey in
agentSideEffects.test.ts, exclude .jsonl from copyright filter.
* fix: set terminalCommandUri from terminal content blocks in stateToProgressAdapter
completedToolCallToSerialized and toolCallStateToInvocation were not
detecting terminal tools via ToolResultContentType.Terminal content
blocks or setting terminalCommandUri/terminalToolSessionId, causing
6 test failures in CI.
* comments
Co-authored-by: Copilot <copilot@github.com>
* revert diff
---------
Co-authored-by: Copilot <copilot@github.com>
feat: show breakpoint widget on Alt+click in gutter
Add Alt+click handling in the editor gutter to quickly add or edit
conditional breakpoints. When Alt+clicking on a line without
breakpoints, the breakpoint widget opens in conditional breakpoint
mode. When Alt+clicking on a line with existing breakpoints, the
breakpoint widget opens for editing the first breakpoint.
Fixes#203259
Co-authored-by: Rob Lourens <roblourens@gmail.com>
* Refactor inline summarization handling in ToolCallingLoop
* Refactor conversation summarization settings and improve logging in AgentIntent
* Refactor agent intent to improve telemetry and remove obsolete test file
* Refactor inline summarization handling: remove unused properties and related tests
* Remove unused summarization instruction from AgentPromptProps interface
* Refactor AgentIntentInvocation to streamline model capabilities handling in background summarization
* Update debugName for background summarization to reflect inline context
* Update logging message in AgentIntentInvocation for clarity and remove unused test suite for inline summarization