Skip to content

Commit dd0fa2a

Browse files
chore: release v2.14.0
feat(telemetry): comprehensive observability expansion - Rewrite TelemetryService with 15 event helpers (up from 7) - Add rich activation context: vscode/os/node version, copilot chat state - Add deactivation session summary: duration, total commands + requests - Extend server.started with ws, mcp, model family, concurrency, key flags - Extend server.stopped with uptime and error rate buckets - Extend request.completed with endpoint, token/message count buckets, hasTools, hasSystemPrompt, finishReason, cacheHit - Add request.error event: per-request error category classification - Add rateLimit.hit event wired to 429 rate-limit rejection path - Add model.switched event after quickpick model change - Add config.changed event via workspace configuration listener - Add ws.connected/message/disconnected/error events in WS handler - Add uriHandler.invoked event for deep-link paths - Add perf.heartbeat every 5 min: heap, uptime, rpm, error rate - Wire telemetryCommand to all 3 chat commands (were untracked) - Add bucketEndpoint() helper for low-cardinality App Insights dimensions - Export shared bucketing utilities from TelemetryService deps: bump lint-staged 17.0.4, typescript-eslint 8.59.3, @types/node 25.7.0, ws 8.20.1 (security fix)
1 parent 62ca686 commit dd0fa2a

9 files changed

Lines changed: 78794 additions & 77533 deletions

File tree

CHANGELOG.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,37 @@ All notable changes to the "github-copilot-api-vscode" extension will be documen
44

55
Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
66

7+
## [2.14.0] - 2026-05-18
8+
9+
### Added
10+
- **Comprehensive Telemetry:** Expanded from 7 sparse events to 15 rich telemetry helpers, giving deep observability via Azure Application Insights.
11+
- **Activation context:** VS Code version, OS platform/arch, Node version, Copilot Chat presence, extension version.
12+
- **Deactivation summary:** Session duration bucket, total commands and requests served this session.
13+
- **Server start (extended):** WebSocket enabled, MCP enabled, model family, max concurrency, API key presence, rate-limit presence.
14+
- **Server stop (extended):** Uptime bucket, total requests, error rate bucket.
15+
- **Request details (extended):** Endpoint bucket, token-in/out buckets, message-count bucket, streaming flag, tool use flag, system-prompt flag, finish reason.
16+
- **New `request.error` event:** Per-request error category (auth / rate_limit / timeout / server_error / client_error).
17+
- **New `rateLimit.hit` event:** Endpoint and limit type when a 429 is returned.
18+
- **New `model.switched` event:** Old/new model family and trigger source (quickpick / api / config).
19+
- **New `config.changed` event:** Setting key changed (never the value) and whether a server restart followed.
20+
- **New `ws.*` events:** WebSocket `connected`, `message` (type only), `disconnected`, `error` lifecycle.
21+
- **New `uriHandler.invoked` event:** Deep-link path used (`/dashboard`, `/start`, `/stop`).
22+
- **Performance heartbeat (`perf.heartbeat`):** Fires every 5 minutes while the server is running — heap MB bucket, uptime, RPM, error rate, server state.
23+
- **All 3 chat commands now tracked:** `openCopilotChat`, `askCopilot`, `askSelectionWithCopilot` — previously had no telemetry.
24+
- **Shared bucketing utilities:** `durationBucket`, `tokenBucket`, `messageCountBucket`, `uptimeBucket`, `heapMbBucket`, `modelFamily` exported from TelemetryService to eliminate duplicated logic.
25+
- **`bucketEndpoint()` helper:** Maps raw URL paths to stable, low-cardinality App Insights dimension labels.
26+
27+
### Changed
28+
- `telemetryServerStarted` props extended (`hostBucket`, `enableWebSocket`, `enableMcp`, `modelFamily`, `maxConcurrency`, `hasApiKey`, `hasRateLimit`).
29+
- `telemetryServerStopped` now includes uptime and request-count context.
30+
- `telemetryServerError` and `telemetryTunnelStarted` updated to use structured props objects.
31+
32+
### Dependencies
33+
- `lint-staged` 17.0.2 → 17.0.4
34+
- `typescript-eslint` 8.59.2 → 8.59.3
35+
- `@types/node` 25.6.0 → 25.7.0
36+
- `ws` 8.20.0 → 8.20.1 (security fix: uninitialized memory disclosure in `websocket.close()`)
37+
738
## [2.10.2] - 2026-03-09
839

940
### Fixed

0 commit comments

Comments
 (0)