github / github/copilot-cli

TUI footer/status line does not refresh after session/config-backed reasoning effort changes

Aperta
#3,014 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
area:models area:terminal-rendering
Lingua principale
Shell
Stelle
11.2k
Fork
1.9k
Merge medio
14h 16m
PR unite (30g)
6

Descrizione

### 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

1. Start Copilot CLI on Windows with a reasoning-capable model.
2. Use model `gpt-5.5`.
3. Set the current reasoning effort to `xhigh` / Extra High.
4. 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.
5. Observe that the session event log records a `session.model_change` event with the new reasoning effort.
6. Observe that the session timeline also acknowledges the change.
7. Observe that the persisted settings reflect the new reasoning effort.
8. 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:

```json
{
"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:

```json
{
"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:

```text
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`.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Start by reproducing the session/API-driven model change and tracing the session.model_change event into the TUI footer/status-line state. Verify that changing reasoning effort from xhigh to high updates the visible footer immediately, while the session timeline and persisted settings remain correct; add or run a regression check for that path.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
shell
Ambito
cli
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
48/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.