Skip to content

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs

Comment 1, line 1

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:1

//! Built-in Visual Studio GitHub Copilot telemetry adapter. The local JSONL path is

Comment 2, line 2

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:2

//! <temporary directory>/VSGitHubCopilotLogs/traces/<hex>_VSGitHubCopilot_traces.jsonl:

Comment 3, line 3

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:3

//! verified VS 18 components automatically write one OTLP resourceSpans batch per line.

Comment 4, line 4

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:4

//! This does not verify all VS 2022/older extensions; see m9-vs-copilot-discovery.md for version limits.

Comment 5, line 5

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:5

//!

Comment 6, line 6

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:6

//! Format references: read-only local checks on 2026-10-01 using VS 18 Community

Comment 7, line 7

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:7

//! 18.10.1197+4b9e241b86 and DevHub/.NET 10.0.12.

Comment 8, line 8

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:8

//! - resource.attributes includes service.name=vs-copilot, service.namespace=visualstudio,

Comment 9, line 9

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:9

//! service.version and process.runtime.name=DevHub.

Comment 10, line 10

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:10

//! - chat <model> CLIENT spans (kind=3) represent individual LLM requests and contain

Comment 11, line 11

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:11

//! gen_ai.usage.input_tokens/gen_ai.usage.output_tokens,

Comment 12, line 12

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:12

//! gen_ai.usage.cache_read.input_tokens with string int64 values such as {intValue:"8697"},

Comment 13, line 13

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:13

//! gen_ai.request.model/gen_ai.response.model,

Comment 14, line 14

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:14

//! gen_ai.conversation.id (the VSGitHubCopilot session UUID),

Comment 15, line 15

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:15

//! copilot_chat.root_request_id and server.address=api.githubcopilot.com.

Comment 16, line 16

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:16

//! startTimeUnixNano/endTimeUnixNano are numeric/string nanosecond timestamps.

Comment 17, line 17

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:17

//! - invoke_agent GitHub Copilot root spans summarize whole turns without usage.

Comment 18, line 18

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:18

//! Read chat spans and skip summaries, following the OTel duplicate-counting warning.

Comment 19, line 19

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:19

//! - gen_ai.input.messages/gen_ai.output.messages/gen_ai.tool.definitions contain

Comment 20, line 20

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:20

//! conversation/tool content; read selected usage keys without storing or printing bodies.

Comment 21, line 21

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:21

//!

Comment 22, line 22

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:22

//! Temporary files can be deleted by users/system cleanup, and VS rolls telemetry files.

Comment 23, line 23

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:23

//! Source disappearance retains imported results through framework file-generation rules; history may be incomplete.

Comment 24, line 30

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:30

/// Stateless VS Copilot adapter.

Comment 25, line 45

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:45

/// FileOutputResolver uses Path.GetTempPath(); Windows resolves TMP before TEMP.

Comment 26, line 46

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:46

/// Collect both variables and the observed default user temporary directory without SKU/year filters.

Comment 27, line 47

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:47

/// Use only the supplied context so manual_roots_only/isolated tests cannot read host sources.

Comment 28, line 62

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:62

// Current-user GetTempPath fallback; do not enumerate Windows/SystemTemp or other users.

Comment 29, line 82

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:82

/// Agent name matches resource service.name="vs-copilot".

Comment 30, line 83

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:83

/// The otel adapter uses the same name, grouping both formats under the same Agent.

Comment 31, line 113

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:113

// Manual roots accept traces, its VSGitHubCopilotLogs parent or the containing temporary directory.

Comment 32, line 321

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:321

/// Default discovery builds VSGitHubCopilotLogs/traces under TEMP and enumerates JSONL files.

Comment 33, line 349

desktop/src-tauri/crates/core/src/adapters/vs_copilot/mod.rs:349

/// Manual roots accept traces, the VSGitHubCopilotLogs parent or an individual file.