Describe the bug
When switching the active model programmatically from an extension using session.setModel(modelId) or session.rpc.model.switchTo({ modelId }), the model is changed for inference but the footer/status bar UI is not updated to reflect the new model.
This is inconsistent with
the /model <model-id> slash command, which both changes the model and updates the footer correctly.
Affected version
GitHub Copilot CLI 1.0.40-3.
Steps to reproduce the behavior
- Create an extension that calls session.setModel('') or session.rpc.model.switchTo({ modelId: '' })
import { joinSession } from "@github/copilot-sdk/extension";
let session;
session = await joinSession({
commands: [
{
name: "mini",
description: `Switch to gpt 5.4 mini`,
handler: async (context) => {
await session.rpc.model.switchTo({ modelId: 'gpt-5.4-mini' });
await session.setModel('gpt-5.4-mini');
},
},
],
});
- Invoke the extension command.
- Send a prompt asking what model it is powered by.
- Observe the footer/status bar at the bottom not aligning to the reported model.
Expected behavior
After calling session.setModel('') or session.rpc.model.switchTo({ modelId: '' }) the model in the footer updates to the selected model.
Additional context
Reproduced on Win/ARM64
Describe the bug
When switching the active model programmatically from an extension using
session.setModel(modelId)orsession.rpc.model.switchTo({ modelId }), the model is changed for inference but the footer/status bar UI is not updated to reflect the new model.This is inconsistent with
the
/model <model-id>slash command, which both changes the model and updates the footer correctly.Affected version
GitHub Copilot CLI 1.0.40-3.
Steps to reproduce the behavior
Expected behavior
After calling session.setModel('') or session.rpc.model.switchTo({ modelId: '' }) the model in the footer updates to the selected model.
Additional context
Reproduced on Win/ARM64