Skip to content

Commit f8f1ada

Browse files
rajbosCopilot
andcommitted
fix: detect model from tool.execution_complete in newer CLI sessions
Newer Copilot CLI sessions omit selectedModel from session.start. The model now appears in tool.execution_complete events as data.model (e.g. claude-sonnet-4.6). The pre-scan now falls through to the first such event when session.start carries no selectedModel, fixing all turns incorrectly showing gpt-4o. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 2bd1910 commit f8f1ada

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

vscode-extension/src/extension.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4141,13 +4141,25 @@ class CopilotTokenTracker implements vscode.Disposable {
41414141
let cliSessionModel = 'gpt-4o';
41424142
let cliSessionEffort: string | undefined;
41434143

4144-
// Pre-scan for session.start to extract default model and effort
4144+
// Pre-scan for model and effort:
4145+
// 1. session.start.data.selectedModel (older CLI format)
4146+
// 2. First tool.execution_complete.data.model (newer CLI format — session.start has no selectedModel)
4147+
let cliModelFound = false;
41454148
for (const line of lines) {
41464149
try {
41474150
const ev = JSON.parse(line);
41484151
if (ev.type === 'session.start' && ev.data) {
4149-
if (typeof ev.data.selectedModel === 'string') { cliSessionModel = ev.data.selectedModel; }
4152+
if (typeof ev.data.selectedModel === 'string') {
4153+
cliSessionModel = ev.data.selectedModel;
4154+
cliModelFound = true;
4155+
}
41504156
if (typeof ev.data.reasoningEffort === 'string') { cliSessionEffort = ev.data.reasoningEffort; }
4157+
if (cliModelFound) { break; }
4158+
// No model in session.start — continue scanning for tool.execution_complete
4159+
}
4160+
// Newer format: model stored per tool call result
4161+
if (ev.type === 'tool.execution_complete' && typeof ev.data?.model === 'string') {
4162+
cliSessionModel = ev.data.model;
41514163
break;
41524164
}
41534165
} catch { /* skip */ }

0 commit comments

Comments
 (0)