We already handled the case where an ingest had completed. This makes it so that any ongoing ingests also should reuse the existing operation
Co-authored-by: Copilot <copilot@github.com>
* telemetry: add workspaceChunkSearch.tryInit event for cold-init tracking
Adds telemetry to track duration and outcome of workspace chunk search
cold initialization (getPreferredType + service creation). Records
success, noEmbeddingType, alreadyInitialized, or error outcomes.
Not fired for fast paths (no auth, already initialized).
Related: microsoft/vscode#313070
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: type outcome as string literal union per review
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* handle steering the way the SDK wants it (via priority)
* pass along properties via the queued request (rather than setting them when we get the message) so that we can set them when the message is to be yielded to the SDK
* Tons of code simplification
There's still more simplification to do... but this is getting unwieldy so let's start here.
Co-authored-by: Copilot <copilot@github.com>
The previous reverts only changed the spec to ^1.0.34, but the resolved entries in the lockfiles still pointed at 1.0.38 (with 1.0.38 tarballs and integrity hashes). Since ^1.0.34 satisfies 1.0.38, npm ci would still install the broken version. Pin to exact 1.0.34 in all three package.json files and regenerate the lockfiles.
* feat: add compareBranch to TitleAndDescriptionProvider for enhanced PR context
* feat: enhance PR description to include escaped compare branch name
* Update extensions/copilot/src/extension/prompts/node/github/pullRequestDescriptionPrompt.tsx
Co-authored-by: Alex Ross <38270282+alexr00@users.noreply.github.com>
* feat: update pull request user message to include escaped compare branch name
---------
Co-authored-by: Alex Ross <38270282+alexr00@users.noreply.github.com>
- Wrap GenAiAttr.TOOL_DEFINITIONS / tools_available toolDefinitions in truncateForOTel to avoid exceeding the 64KB OTel attribute cap with large tool catalogs.
- Drop misleading tool_search variant from toToolDefinitions JSDoc; the implementation requires a name and emits type:'function', so OpenAI client-side tool_search entries are intentionally skipped.
The router decision restricted event logs candidateModels (router
output) but not the input model pool sent to the router. Without
this field we cannot determine whether per-SKU CoGS differences
come from different input pools vs different routing decisions.
Add availableModels as a JSON-stringified array of the model
identifiers passed in the available_models request body field.
- toolCallingLoop emits tool definitions with parameters (tool inputSchema) on the agent span and tools_available event, per OTel GenAI semantic conventions (fixes#300318).
- chatMLFetcher and BYOK providers (anthropic, gemini) now also set gen_ai.tool.definitions on each chat {model} child span so trace viewers can render the tool catalog per LLM call (fixes#299934).
- toToolDefinitions normalizer extended to handle OpenAI Responses API, Anthropic input_schema, and VS Code inputSchema shapes.