You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on May 20, 2026. It is now read-only.
Add candidateModel and stickyOverride to automode.routerDecision telemetry
The automode.routerDecision event was only logging predictedLabel and
confidence, making it impossible to distinguish what model the router
recommended vs. what model was actually used after sticky-provider and
vision overrides.
New properties:
- candidateModel: the router's top pick (candidate_models[0]) before
any same-provider or vision fallback overrides are applied
- stickyOverride: whether the router applied a sticky override (1/0)
- conversationId: enables joining with response.success events
- vscodeRequestId: enables joining with response.success events
This allows analysts to detect when the router recommends model A but
the client uses model B due to provider affinity or vision fallback.
@@ -100,20 +100,28 @@ export class RouterDecisionFetcher {
100
100
"automode.routerDecision" : {
101
101
"owner": "lramos15",
102
102
"comment": "Reports the routing decision made by the auto mode router API",
103
+
"conversationId": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "The conversation ID in which the routing decision was made" },
104
+
"vscodeRequestId": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "The VS Code chat request ID in which the routing decision was made" },
103
105
"predictedLabel": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "The predicted classification label (needs_reasoning or no_reasoning)" },
106
+
"candidateModel": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "comment": "The top candidate model recommended by the router before any overrides" },
104
107
"confidence": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true, "comment": "The confidence score of the routing decision" },
105
108
"latencyMs": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "isMeasurement": true, "comment": "The latency of the router API call in milliseconds" },
106
-
"e2eLatencyMs": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "isMeasurement": true, "comment": "The end-to-end latency of the router request in milliseconds, including network overhead" }
109
+
"e2eLatencyMs": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "isMeasurement": true, "comment": "The end-to-end latency of the router request in milliseconds, including network overhead" },
110
+
"stickyOverride": { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true, "comment": "Whether the router applied a sticky override (1) or not (0)" }
0 commit comments