Commit Graph
5365 Commits
Author SHA1 Message Date
Vijay UpadyaandGitHub 7a76a605df Telemetry: Emit messagesJson compressed chunks as messagesJSONChunk (#328815)
* Telemetry: override chunk property name

* test update
2026-08-03 20:22:40 +00:00
vs-code-engineering[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
365903f368 Bump version to 1.133.0 (#328671)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-03 13:43:30 +00:00
Bhavya UandGitHub a5944fe94f Enable tool search for Claude Haiku 4.5 and Sonnet 5 (#328662)
Anthropic's tool search compatibility table lists Haiku 4.5 as supported,
but the capability gate denied all Haiku. Sonnet 5 and Mythos 5 were also
missing from the tool's model picker list.
2026-08-03 05:17:22 +00:00
849be60ee8 Prefer semantic search in agent mode (#328663)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-08-03 05:06:51 +00:00
Justin ChenandGitHub e51d1cb61d clean up picker descriptions (#328637) 2026-08-02 21:58:43 +00:00
Vikram NitinandGitHub 8c3c10f42d Merge pull request #328503 from vikramnitin9/vikram/exec_sub_remove_gemini_gating
Execution Subagent: Remove gating on Gemini Availability
2026-08-02 21:57:44 +00:00
1992d7c712 Enable tool search and prefer-long-context by default (#328628)
Flip the defaults for two settings that have been validated behind an
opt-in flag:

- `chat.agentHost.copilot.toolSearch.enabled`
- `github.copilot.chat.preferLongContext.enabled`

Both settings are defined in more than one place, so each pair is
updated together:

- Tool search: the workbench setting registration in
  `chat.shared.contribution.ts` and the agent-host schema default in
  `copilotCliConfig.ts` that the renderer forwards into.
- Prefer long context: the contributed default in the Copilot extension's
  `package.json` and `ConfigKey.PreferLongContext`, which throws a
  `BugIndicatingError` at load if the two drift, plus the forwarded
  `preferLongContextEnabled` root-config default in `agentHostSchema.ts`.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-08-02 19:52:30 +00:00
Justin ChenGitHubcopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
91663e918c plan widget + commenting service (#328293)
* plan widget + commenting service

* address comments

* fix component fixtures and bug

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-08-01 00:00:05 +00:00
Dileep YavanmandhaandGitHub 7d661297ba Updating function call output to include content property for attaching cache breakpoint marker, (#328521)
Updating function call output to include content property when cacheBreakPoint is enabled
2026-07-31 23:00:46 +00:00
vritant24andCopilot ddf40933c4 Fix tool embeddings test constructor
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-31 13:18:32 -07:00
Vritant BhardwajandGitHub f7f831563f Merge branch 'main' into agents/investigate-unit-tests-agenthost-local 2026-07-31 13:08:50 -07:00
vritant24andCopilot 3e6e47985f Keep fallback tool groups within request limits
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-31 11:51:36 -07:00
9ccad27a28 Enable tool search for GPT models and add deferThreshold setting (#328136)
* Enable tool search for GPT models and add deferThreshold setting

- Uncomment GPT-5.4/5.5/5.6 support in agentHostModelSupportsToolSearch
- Add chat.agentHost.copilot.toolSearch.deferThreshold setting (default 1)
- Fix system instruction: generic 'use tool search' instead of backtick-quoted tool_search_tool name that doesn't exist in OpenAI Responses API
- Fix tool search description: generic 'deferred tools list' instead of extension-specific availableDeferredTools tag name
- Floor fractional threshold values to prevent runtime fallback to 30

* Address tool search review feedback

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-31 11:32:32 -07:00
vritant24 f1446ccb43 Agent Host changes for agents/investigate-unit-tests-agenthost-local 2026-07-31 11:23:06 -07:00
924d37b459 Make coding agent voice aware for better voice experience (#328217)
* Add voice-aware progress to Copilot Agent mode

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Gate voice-aware agent progress

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Mir Imad Ahmed <mirimadahmed@microsoft.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-07-31 16:24:24 +00:00
3d1fee0cc0 nes: preserve ghost-text state for speculative reuse (#328406)
nes: fix: preserve ghost-text state for speculative reuse

Keep speculative next-edit results linked to their stable cache entry so suggestions shown as ghost text remain suppressible when reused in another view kind. Add coverage for speculative reuse, rebasing, and cache replacement.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 93fb295d-2415-4079-b354-784417ad06f7
2026-07-31 18:18:31 +05:00
Vritant BhardwajandGitHub 985c82d099 Merge pull request #328147 from microsoft/agents/gemini-agent-host-byok-fixes
copilot: preserve Gemini BYOK tool fidelity
2026-07-31 05:57:31 -07:00
9bbf5e43c8 Coalesce content exclusion fetches to stop exhausting the GitHub API rate limit (#328268)
* Coalesce content exclusion fetches to stop exhausting the GitHub API rate limit

Every caller that discovered a new repository triggered a refresh of the
content exclusion rules for *every* known repository, so request volume grew
quadratically with repository count. In a workspace with many git repos (an
AOSP checkout, in the reported case) this produced ~16k requests to
api.github.com in 30 minutes, exhausting the account's 5k/hour REST budget and
starving everything sharing it, including Copilot token refresh.

The endpoint is https://api.github.com/copilot_internal/content_exclusion, so
it draws on the user's ordinary REST quota rather than a CAPI budget.

- Coalesce per repository using shared DeferredPromises, a short batching
  window and a bounded-concurrency Limiter, so each repo is fetched at most
  once per TTL and each caller only waits on the repos it asked for. A
  regression test measures 75 requests -> 3 for 26 repositories.
- Only cache rules on a successful response. Empty placeholder rules were
  written on discovery and left in place on failure, making a failed fetch
  indistinguishable from "this repo has no exclusions" and preventing a retry
  for 30 minutes, so exclusions silently stopped applying while rate limited.
- Only memoise a negative verdict once the relevant rules actually loaded,
  which otherwise left files checked during an outage permanently allowed.
- Add a shared rateLimitBackoffMiddleware covering 429 and quota-exhausted 403
  responses, honouring Retry-After and x-ratelimit-reset, and move both
  RemoteContentExclusion and CloudSessionApiClient onto it. This replaces a
  third hand-rolled copy of the same backoff logic.
- Precompile glob patterns, track the regex rule count directly, and only
  invalidate memoised results when rules that could change an outcome arrive.

Fixes #322275

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 32f94728-158b-4639-b789-a5dd483f043f

* Address review feedback on cache invalidation and request lifecycle

Five correctness issues raised in review, each with a test that fails against
the previous implementation.

- rateLimitBackoffMiddleware: a response that was already in flight could clear
  a block established by a concurrent rate-limited request, letting later calls
  reach the server during the window the server asked us to wait out. The
  backoff is now only reset once the active block has elapsed.
- isIgnored returned a memoised verdict before reaching the staleness check, so
  a URI that had been evaluated once never triggered a refresh and could miss
  newly added exclusions indefinitely. Verdicts are now tagged with a rule
  generation and are only trusted while the rules behind them are unchanged and
  unexpired.
- applyRules only invalidated verdicts when the incoming rules were non-empty,
  so a refresh that removed the last rule left files excluded permanently.
  Incoming rules are now compared against the previous set, which also avoids
  invalidating on an unchanged refresh.
- drainPendingRepos cleared the pending map before its batches completed, so a
  lookup arriving while a request was slow queued a duplicate fetch every
  batching window. Entries now stay registered until their request settles, and
  are removed only if still owned by that attempt.
- dispose only settled repos still queued. Limiter.dispose drops queued
  factories without running them, so with more than five batches the callers
  awaiting them never resolved. Pending entries are now settled before the
  limiter is disposed, and enqueues after disposal resolve immediately.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 32f94728-158b-4639-b789-a5dd483f043f

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 32f94728-158b-4639-b789-a5dd483f043f
2026-07-31 08:37:52 -04:00
Vritant BhardwajandGitHub 730bdd516e Merge branch 'main' into agents/gemini-agent-host-byok-fixes 2026-07-30 18:22:22 -07:00
b8f42e0b91 Support COPILOT_HOME for Copilot CLI state (#314917)
* Support COPILOT_HOME for Copilot CLI state

* Align Copilot CLI state with COPILOT_HOME

Use COPILOT_HOME as the configured Copilot root and otherwise fall back to ~/.copilot, matching the current CLI. XDG_STATE_HOME is now a migration source handled by the CLI rather than an active state location.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Honor COPILOT_HOME in agent host log collection

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Dmitriy Vasyura <dmitriv@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Don Jayamanne <don.jayamanne@outlook.com>
2026-07-31 01:01:31 +00:00
vritant24andCopilot ca5a7f94ed copilot: preserve Gemini BYOK tool fidelity
Normalize unsupported non-string Gemini enums and restore thought signatures when replaying historical function calls.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-30 17:40:17 -07:00
Vritant BhardwajandGitHub 767ea24568 Merge pull request #328146 from microsoft/agents/byok-agent-host-api-translation-review
agentHost: use Responses API for BYOK models
2026-07-30 17:36:16 -07:00
Osvaldo OrtegaandGitHub 9dc513a697 Fix checkout contribution for cloud sessions in backend v2 (#328258)
* Agent Host changes for osortega/agents/checkout-contribution-check-v2-backend

* Address review feedback and fix chat input fixtures

Require non-empty owner/name before building a pull request URI, so
metadata with empty strings no longer yields `https://github.com///pull/42`
and is no longer reported as an available pull request. Cover the case in
the unit test.

Implement `getSession` on the fixture `IAgentSessionsService` stub. The
chat input session toolbar reads it when a session has file changes, which
broke the chatInput FileChanges fixtures.

Condense the context key and chat input comments, and correct the cloud
sessions comment: the guard is reachable whenever `chatSessionPullRequest`
is unknown, not just on older clients.
2026-07-30 16:02:31 -07:00
Raymond ZhaoandGitHub 18a1f78e00 Revert "[cherry-pick] Add Kimi K3 biosecurity policy for Copilot Chat recovery" (#328260)
Revert "[cherry-pick] Add Kimi K3 biosecurity policy for Copilot Chat recover…"

This reverts commit eb7a00caa2.
2026-07-30 16:00:16 -07:00
vritant24andCopilot 243697fa70 agentHost: preserve BYOK reasoning continuation fidelity
Keep assistant text complete, group reasoning chunks by ID, and round-trip provider-specific continuation metadata through Responses encrypted content.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-30 11:50:49 -07:00
vritant24andCopilot 020db71706 agentHost: simplify encrypted thinking opt-in
Replace the Agent Host BYOK model-options sentinel and private MIME payload with a typed provider request option while retaining encrypted thinking metadata only for opted-in requests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-30 11:50:49 -07:00
Vritant BhardwajandGitHub 6f67656a1a Merge branch 'main' into agents/byok-agent-host-api-translation-review 2026-07-30 11:47:32 -07:00
vs-code-engineering[bot]GitHubvs-code-engineering[bot] <vs-code-engineering[bot]@users.noreply.github.com>copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>rzhao271
eb7a00caa2 [cherry-pick] Add Kimi K3 biosecurity policy for Copilot Chat recovery (#328213)
* [cherry-pick] Add Kimi K3 biosecurity policy for Copilot Chat recovery

* Resolve merge conflict in package.json, keeping version at 0.60.0

Co-authored-by: rzhao271 <7199958+rzhao271@users.noreply.github.com>

* Resolve merge conflict in package-lock.json, keeping version at 0.60.0

Co-authored-by: rzhao271 <7199958+rzhao271@users.noreply.github.com>

---------

Co-authored-by: vs-code-engineering[bot] <vs-code-engineering[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: rzhao271 <7199958+rzhao271@users.noreply.github.com>
2026-07-30 16:45:42 +00:00
Benjamin SteenhoekandGitHub d9d6728092 Set default NES aggressiveness to medium (#327049) 2026-07-30 15:57:55 +00:00
Bhavya UandGitHub 3cd0ed6750 Don't splice signed thinking blocks from different responses when merging assistant messages (#328157)
Don't splice signed thinking blocks from different responses when merging assistant messages (#327646)
2026-07-30 05:26:05 +00:00
2c549ee083 Enable Agent Host migration settings by default (#328127)
* chat: enable agent host defaults

Flip the Agent Host migration settings to their rolled-out defaults and enable remote Agent Host support for web clients attached to a remote extension host. Serverless web retains extension-host fallbacks. (Written by Copilot)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test: cover web agent host disablement

Add web-remote coverage for configuration and AI disablement, and clarify the serverless web requirement in the setting description. (Written by Copilot)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test: pin smoke session providers

Pre-seed extension-host smoke profiles before startup and update Agent Host picker labels so the suites exercise their intended providers after the default flip. (Written by Copilot)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chat: restore agent host setting description

Keep the existing concise setting and policy description while retaining the runtime availability behavior. (Written by Copilot)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-30 02:56:36 +00:00
vritant24andCopilot bd2cb6d3ed agentHost: gate BYOK encrypted reasoning bridge
Carry encrypted reasoning through a private data part only for Agent Host BYOK requests, preserving existing vscode.lm behavior for other consumers.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-29 18:07:34 -07:00
vritant24andCopilot a97aec123f agentHost: use Responses API for BYOK models
Preserve structured reasoning, tool calls, continuation metadata, and usage across the Agent Host renderer bridge while replacing the Chat Completions proxy contract.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-29 17:50:46 -07:00
SrirajandGitHub e530e14eda Escape dynamic values in the customizations index (#327475)
* Escape customizations index values

* Scope customizations index escaping
2026-07-30 00:39:14 +00:00
Ulugbek AbdullaevandGitHub 1516e1ad31 nes: generate samples from workspace recordings (#328095)
* nes: feat: generate samples from workspace recordings

Parse stateful local workspace recordings, select deterministic user-edit and cursor pivots, materialize privacy-safe replay slices, and support bounded parallel datagen without splitting raw timelines.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 62cca64b-0581-410e-ab89-034e20f02ca7

* nes: fix: include cursor boundaries in sample deduplication

Hash the complete post-pivot label so identical prompts with different cursor destinations are rejected as conflicting samples.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 62cca64b-0581-410e-ab89-034e20f02ca7

* nes: fix: consolidate workspace recording imports

Use inline type specifiers so the Copilot extension lint job accepts the new workspace-recording modules.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 62cca64b-0581-410e-ab89-034e20f02ca7

---------

Copilot-Session: 62cca64b-0581-410e-ab89-034e20f02ca7
2026-07-30 04:49:08 +05:00
Vritant BhardwajandGitHub dd83544dc8 Merge branch 'main' into dev/vritan24/geminiByok 2026-07-29 15:27:22 -07:00
Ulugbek AbdullaevandGitHub 060d04f069 xtab: clamp tagged patch range to document (#328090)
xtab: fix: clamp tagged patch range to document

Tagged prompt content can add lines beyond the source document. Clamp the CustomDiffPatch pseudo-window to the source range to avoid an unexpected failure.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 62cca64b-0581-410e-ab89-034e20f02ca7
2026-07-30 01:41:11 +05:00
Arthur CnopsandGitHub eb699a8ed4 Voice: answer question carousels by voice (#327899) 2026-07-29 18:18:51 +00:00
Dileep YavanmandhaandGitHub ece5c004ed Set Responses API prompt cache mode (#327960)
* changes

Signed-off-by: Dileep Yavanamandha <dileepy@microsoft.com>

* fix: scope prompt cache policy to supported models

Signed-off-by: Dileep Yavanamandha <dileepy@microsoft.com>

* fix: restrict Responses cache breakpoint targets

Signed-off-by: Dileep Yavanamandha <dileepy@microsoft.com>

* fix: target supported Responses cache inputs

Signed-off-by: Dileep Yavanamandha <dileepy@microsoft.com>

* fix: restrict Responses cache markers to content blocks

Signed-off-by: Dileep Yavanamandha <dileepy@microsoft.com>

* fix: centralize cache breakpoint eligibility

Signed-off-by: Dileep Yavanamandha <dileepy@microsoft.com>

* fix: preserve response cache breakpoint position

---------

Signed-off-by: Dileep Yavanamandha <dileepy@microsoft.com>
2026-07-29 10:27:48 -07:00
Vritant BhardwajandGitHub 8172d49805 Merge branch 'main' into dev/vritan24/geminiByok 2026-07-29 06:47:55 -07:00
vritant24andCopilot a0507913cb copilot: fix Gemini BYOK tool schemas with nullable type arrays
The Gemini BYOK function-declaration converter assumed a JSON Schema
`type` was always a single string. When a tool parameter used a nullable
union such as `{ "type": ["string", "null"] }`, the array was stringified
into `"string,null"` and rejected with `Unsupported type: string,null`.

Through the Agent Host this surfaced as an HTTP 502 that the Copilot SDK
retried five times before failing the turn. Because the failure lives in
the shared converter, regular editor BYOK is susceptible to the same
schema shape.

Normalize nullable unions to Gemini's `nullable: true`, map multi-type
unions to `anyOf`, and handle nullable array items and anyOf/oneOf that
contain `null`. Add regression tests for these cases.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-29 06:45:02 -07:00
vs-code-engineering[bot]GitHubvs-code-engineering[bot] <vs-code-engineering[bot]@users.noreply.github.com>
bbb34827b8 [cherry-pick] Fix Kimi K3 release model handling (#327786)
Co-authored-by: vs-code-engineering[bot] <vs-code-engineering[bot]@users.noreply.github.com>
2026-07-29 10:46:53 +00:00
e096470e5d Fix chat image attachments silently dropped when signed out of GitHub (#323856)
* fix: send chat image attachments when signed out of GitHub

Image attachments were silently dropped for signed-out users even when a
vision-capable BYOK/local model was configured. The panel Image prompt
element gated image inclusion on
`copilotToken?.isEditorPreviewFeaturesEnabled()`, which is `undefined`
when there is no Copilot token (i.e. not signed in), so the negation
evaluated truthy and the image was omitted before the request was sent.

`isEditorPreviewFeaturesEnabled()` represents an org policy that is only
meaningful when a Copilot token exists; a missing token should not block
the feature. Default the check to enabled when the token is absent, using
the same `?? true` pattern already used in
claudeChatSessionContentProvider. This preserves the org-policy behavior
(explicit `editor_preview_features=0` still omits images) while letting
signed-out / BYOK users send images to vision-capable models.

Applied to both HistoricalImage and Image render paths, and added unit
tests covering signed-out, signed-in, org-policy-disabled, and
non-vision-model cases.

Fixes #323854

Co-authored-by: SamirSaji <samirsaji13@gmail.com>

* fix: report accurate omission reason for policy-blocked images

Address review feedback: when a vision-capable model has images omitted
because org policy disables editor preview features, the omitted-reference
status previously said the model "does not support images", which is
misleading. Set the status description based on the actual cause
(lack of vision vs. org policy). The catch/error path keeps the generic
message.

Co-authored-by: SamirSaji <samirsaji13@gmail.com>

---------

Co-authored-by: SamirSaji <samirsaji13@gmail.com>
Co-authored-by: Dmitriy Vasyura <dmitriv@microsoft.com>
2026-07-29 05:52:35 +00:00
ad6a5fe3be nes: fix: share in-flight speculative requests across concurrent calls (#327922)
* nes: fix: share in-flight speculative requests across concurrent calls

A speculative request is fired when a suggestion is shown, betting on the
document state that results if the user accepts it. `consumePending()` nulled
the pending slot as soon as the first `getNextEdit` caller claimed the request,
so a second overlapping caller for the same post-edit state could not discover
it and issued a duplicate model request — losing the latency win, the
`ReusedRequestKind.Speculative` telemetry, and the `liveDependentants` sharing
that keeps a joined request alive for multiple dependants.

Rename it to `claimPending()` and keep claimed requests in a map until their
`result` settles, so concurrent callers join the in-flight request instead.
A map rather than a single slot: several speculatives can be claimed at once
(e.g. one per document), and evicting one on the arrival of another would
reintroduce the same bug.

Claimed requests deliberately survive the "nobody will want this anymore"
cancellation reasons (Replaced, Superseded, Rejected, IgnoredDismissed,
trajectory divergence) since they have a live consumer; `invalidateClaimed()`
still cancels them for reasons that invalidate the result itself (CacheCleared,
DocumentClosed, Disposed).

Also settle `firstEdit`/`result` in `_runSpeculativeProviderCall`'s outer catch.
Previously a throw at the first `editStream.next()` left them unsettled forever,
hanging any caller that reused the request — a pre-existing bug that the claimed
map would otherwise widen into a permanent map entry.

Behavior is unchanged when `inlineEdits.speculativeRequests` is off: the claimed
map can only be populated via `_triggerSpeculativeRequest`, which is gated on the
setting, so every new lookup degenerates to an empty-map no-op.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: b9cc340f-f2af-491d-a411-6e1c2c19583e

* nes: test: cover speculative that throws before its first streamed edit

The outer catch in `_runSpeculativeProviderCall` settles `firstEdit`/`result`
so a caller reusing the request cannot hang, but nothing exercised it: every
existing speculative test yields at least one edit or is cancelled.

Add a `throwBeforeFirstYield` harness behavior and a regression test that claims
such a speculative. `getNextEdit` rethrows the underlying error for
`NoNextEditReason.Unexpected`, so the joiner rejects with the provider error
instead of awaiting forever, and the released claim lets the following request
recover with a fresh provider call.

Verified to fail without the fix: the joining call times out after 8s.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: b9cc340f-f2af-491d-a411-6e1c2c19583e

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: b9cc340f-f2af-491d-a411-6e1c2c19583e
2026-07-29 04:30:27 +05:00
Rob LourensandGitHub 086cb29b41 copilot: stop monitoring sessions when editor CLI is hidden (#327924)
Stop hidden editor Copilot CLI session monitoring

Use the editor-window Extension Host visibility setting to control the shared session-state watcher while preserving the existing Agents-window behavior.\n\n(Written by Copilot)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-28 23:25:34 +00:00
Chris WestraandGitHub 84e7f9134c Log organization resource cache creation failures (#326958)
* Refresh organization instructions after auth changes

Preserve cached instructions on fetch failures and refresh organization resources when authentication or workspace selection changes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5b647a0f-5022-4a32-959a-ad8c129b1614

* Add organization resource refresh diagnostics

Log refresh outcomes, cache resource counts, prompt length, and cache preservation without recording instruction content.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5b647a0f-5022-4a32-959a-ad8c129b1614

* Narrow organization resource change to cache diagnostics

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5b647a0f-5022-4a32-959a-ad8c129b1614

---------

Copilot-Session: 5b647a0f-5022-4a32-959a-ad8c129b1614
2026-07-28 16:14:21 -07:00
a7a9d0e787 chat: normalize Kimi BYOK tool call IDs (#327877)
- Reuses the existing Kimi history normalizer for custom Chat Completions endpoints so switched-model tool calls remain valid.

- Keeps BYOK request construction isolated from Copilot-specific model customizations, preserving configured sampling and endpoint behavior.

- Adds regression coverage for call/result pairing and unchanged BYOK sampling parameters.

Fixes #327794

(Commit message generated by Copilot)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-28 18:42:44 +00:00
Ladislau SzomoruandGitHub fc78dbeee6 Copilot Chat - do not set up repository watcher when agent host is enabled (#327795) 2026-07-28 12:37:22 +00:00
9f311cb5a2 Fix Copilot CLI session monitor startup race (#327752)
* Fix Copilot CLI session monitor startup race

Make the shared session-file watcher follow effective Agent Host ownership settings after startup so delayed experiment defaults can tear down a prematurely created watcher. Add regression coverage for disabling and re-enabling monitoring.\n\n(Written by Copilot)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address session monitor review feedback

Preserve error stack information in watcher setup logs and explicitly verify final watcher cleanup when the session service is disposed.\n\n(Written by Copilot)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-28 01:41:27 +00:00
Bhavya UandGitHub 13dac9d855 Don't replay a signed thinking block onto rounds that never had one (#327740)
After summarization, `SummarizedConversationHistory` carried the last
summarized thinking block onto the first tool call round for every Anthropic
model, and `setSummaryAndThinking` cleared `round.thinking` whenever it was
called without one.

Only Anthropic's manual thinking mode (`type: "enabled"`) requires an assistant
message to open with a thinking block. Adaptive thinking accepts history as-is,
so on those models the carry-over is an unnecessary edit to a signed assistant
message the API handed back to us. Gate it behind `!supportsAdaptiveThinking`,
and make the thinking assignment overwrite-only so summarization can't strip a
signature off a round that is still replayed.

Endpoints that don't report `supportsAdaptiveThinking` keep the old behaviour.

Refs #327646
2026-07-28 00:11:42 +00:00