Describe the bug
When the model reasoning effort is changed through a session/API-driven path, the change is applied to session state and recorded in the session log, but the TUI footer/status line does not refresh to show the new value.
This looks like a status-line state synchronization issue: a field displayed in the footer can be updated in session/config state, but the visible TUI remains stale unless the change goes through a built-in UI path or some later refresh/resume path.
Affected version
GitHub Copilot CLI 1.0.37
Steps to reproduce the behavior
- Start Copilot CLI on Windows with a reasoning-capable model.
- Use model
gpt-5.5.
- Set the current reasoning effort to
xhigh / Extra High.
- Change only the reasoning effort through a session/API-driven command path. In my case this was a custom slash command that updated the current model with a new reasoning effort.
- Observe that the session event log records a
session.model_change event with the new reasoning effort.
- Observe that the session timeline also acknowledges the change.
- Observe that the persisted settings reflect the new reasoning effort.
- Observe that the TUI footer/status line does not immediately repaint to show the updated reasoning effort.
Expected behavior
The footer/status line should refresh to show the new reasoning effort as soon as the session/config state changes.
For example, after changing gpt-5.5 from xhigh to high, the footer should show gpt-5.5 (high) rather than continuing to show the previous effort.
Additional context
Runtime/session evidence
This evidence uses observable session logs and config state only.
The session recorded a model-change event with the new reasoning effort:
{
"type": "session.model_change",
"timestamp": "2026-04-28T06:37:50.498Z",
"previousModel": "gpt-5.5",
"newModel": "gpt-5.5",
"previousReasoningEffort": "xhigh",
"reasoningEffort": "high"
}
The session timeline also acknowledged the change:
{
"type": "session.info",
"timestamp": "2026-04-28T06:37:50.499Z",
"message": "Reasoning effort changed for gpt-5.5 from xhigh to high"
}
The persisted settings also reflected the new value:
C:\Users\avilevin\.copilot\settings.json
model: gpt-5.5
effortLevel: high
Despite those state changes, the TUI footer/status line did not immediately repaint to show the updated reasoning effort.
From the outside, the issue is not that the model/reasoning change failed. The session event, session info message, and persisted setting all indicate that the change succeeded. The failure is specifically that a status-line-backed field changed outside the built-in picker/UI path, but the visible TUI footer did not refresh from the updated session/config state.
Environment
- OS: Windows_NT
- Model:
gpt-5.5
- Reasoning effort changed from
xhigh to high
Suggested fix direction
The footer/status line should refresh when status-line-backed session/config fields change, regardless of whether the change came from the built-in picker or a session/API-driven path. At minimum, reasoning effort display should update after a session.model_change event that includes reasoningEffort.
Describe the bug
When the model reasoning effort is changed through a session/API-driven path, the change is applied to session state and recorded in the session log, but the TUI footer/status line does not refresh to show the new value.
This looks like a status-line state synchronization issue: a field displayed in the footer can be updated in session/config state, but the visible TUI remains stale unless the change goes through a built-in UI path or some later refresh/resume path.
Affected version
GitHub Copilot CLI 1.0.37
Steps to reproduce the behavior
gpt-5.5.xhigh/ Extra High.session.model_changeevent with the new reasoning effort.Expected behavior
The footer/status line should refresh to show the new reasoning effort as soon as the session/config state changes.
For example, after changing
gpt-5.5fromxhightohigh, the footer should showgpt-5.5 (high)rather than continuing to show the previous effort.Additional context
Runtime/session evidence
This evidence uses observable session logs and config state only.
The session recorded a model-change event with the new reasoning effort:
{ "type": "session.model_change", "timestamp": "2026-04-28T06:37:50.498Z", "previousModel": "gpt-5.5", "newModel": "gpt-5.5", "previousReasoningEffort": "xhigh", "reasoningEffort": "high" }The session timeline also acknowledged the change:
{ "type": "session.info", "timestamp": "2026-04-28T06:37:50.499Z", "message": "Reasoning effort changed for gpt-5.5 from xhigh to high" }The persisted settings also reflected the new value:
Despite those state changes, the TUI footer/status line did not immediately repaint to show the updated reasoning effort.
From the outside, the issue is not that the model/reasoning change failed. The session event, session info message, and persisted setting all indicate that the change succeeded. The failure is specifically that a status-line-backed field changed outside the built-in picker/UI path, but the visible TUI footer did not refresh from the updated session/config state.
Environment
gpt-5.5xhightohighSuggested fix direction
The footer/status line should refresh when status-line-backed session/config fields change, regardless of whether the change came from the built-in picker or a session/API-driven path. At minimum, reasoning effort display should update after a
session.model_changeevent that includesreasoningEffort.