github / github/copilot-cli

BYOK statusline shows medium effort in 1.0.41 despite --effort high

Open
#3,135 3 comments 1 reaction 0 assignees View on GitHub
area:configuration area:models
Dominant language
Shell
Stars
11.2k
Forks
1.9k
Avg merge
14h 16m
Merged PRs (30d)
6

Description

## Description

After upgrading to Copilot CLI 1.0.41, when using `--effort high` with a BYOK/custom provider, the actual request is still sent with `reasoning_effort: "high"`, but the statusline receives `model.display_name` as `gpt-5.5 (medium)`.

The same setup works correctly in Copilot CLI 1.0.40, where the statusline displays `gpt-5.5 (high)`.

This looks like a regression in the statusline/UI display state: the actual request effort and the effort shown through the UI/statusline are out of sync.

## Environment

- Copilot CLI: 1.0.41
- OS: macOS
- Provider: BYOK / custom OpenAI-compatible provider
- Wire API: `responses`
- Model: `gpt-5.5`

Relevant environment variables:

```bash
COPILOT_PROVIDER_BASE_URL=http:///v1
COPILOT_PROVIDER_API_KEY=
COPILOT_PROVIDER_WIRE_API=responses
COPILOT_PROVIDER_TYPE=openai
COPILOT_MODEL=gpt-5.5
COPILOT_PROVIDER_MODEL_ID=gpt-5.5
COPILOT_PROVIDER_WIRE_MODEL=gpt-5.5
```

Launch command:

```bash
copilot --effort high
```

## Expected behavior

The statusline payload should reflect the reasoning effort that is actually being used.

For example, with `--effort high`, the statusline payload should contain:

```json
{
"model": {
"id": "gpt-5.5",
"display_name": "gpt-5.5 (high)"
}
}
```

## Actual behavior

In 1.0.41, the statusline displays:

```text
gpt-5.5 (medium)
```

That means the statusline payload display name is effectively:

```json
{
"model": {
"id": "gpt-5.5",
"display_name": "gpt-5.5 (medium)"
}
}
```

However, the debug log shows that the actual request is using `high`:

```text
Using custom provider: type=openai, baseUrl=http:///v1, wireApi=responses
"model": "gpt-5.5"
"defaultReasoningEffort": "high"
"reasoning_effort": "high"
```

So the issue appears to be limited to the UI/statusline display state, not the actual request.

## Comparison test

Using the same environment, same BYOK provider, same model, and same `--effort high` flag, only changing the Copilot CLI version:

| Version | Actual request `reasoning_effort` | Statusline `model.display_name` |
|---|---|---|
| 1.0.40 | `high` | `gpt-5.5 (high)` |
| 1.0.41 | `high` | `gpt-5.5 (medium)` |

Captured statusline payload from 1.0.40:

```json
{
"model": {
"id": "gpt-5.5",
"display_name": "gpt-5.5 (high)"
}
}
```

Captured request settings from the 1.0.41 debug log:

```text
"defaultReasoningEffort": "high"
"reasoning_effort": "high"
```

But the 1.0.41 statusline shows:

```text
gpt-5.5 (medium)
```

Contributor guide

Open the contributing guide

Research direction

Start with the statusline payload and debug log described in the issue, then compare how 1.0.40 and 1.0.41 carry --effort high into model.display_name for BYOK with the responses wire API. Done when the statusline reports gpt-5.5 (high) while the request continues to use reasoning_effort: high.

Written by the indexing model from the issue text.

Assessment

Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.