|
| 1 | +# Chat: Model Picker |
| 2 | + |
| 3 | +## Overview |
| 4 | + |
| 5 | +Tests the **model picker** dropdown in the Chat view action bar. The model |
| 6 | +picker lets users choose which AI model powers their chat conversations. It |
| 7 | +displays available models grouped by tier (Standard, Premium, Custom), shows |
| 8 | +per-model details on hover, and includes a **Manage Models...** shortcut for |
| 9 | +users with BYOK enabled. |
| 10 | + |
| 11 | +Entry points exercised: |
| 12 | +- **Ctrl+Alt+I** (or status bar → **Open Chat**), then interact with the model |
| 13 | + picker button in the action bar. |
| 14 | + |
| 15 | +--- |
| 16 | + |
| 17 | +## Prerequisites |
| 18 | + |
| 19 | +- Eclipse IDE with the GitHub Copilot for Eclipse plugin installed and |
| 20 | + activated. |
| 21 | +- A signed-in Copilot account. Without a valid account the model list cannot |
| 22 | + be fetched and the picker will show no items. |
| 23 | + |
| 24 | +--- |
| 25 | + |
| 26 | +## 1. Model picker loads, opens, selects, and routes a message |
| 27 | + |
| 28 | +### TC-001: Open model picker, browse grouped models, switch model, and verify a response uses it |
| 29 | + |
| 30 | +**Type:** `Happy Path` |
| 31 | +**Priority:** `P0` |
| 32 | + |
| 33 | +#### Preconditions |
| 34 | + |
| 35 | +- The Eclipse workbench is open. |
| 36 | +- The user is signed in to Copilot. |
| 37 | +- No previous Chat view is open. |
| 38 | + |
| 39 | +#### Steps |
| 40 | + |
| 41 | +1. Open the **Copilot Chat** view via the keyboard shortcut **Ctrl+Alt+I** |
| 42 | + (Windows/Linux) or **Ctrl+Cmd+I** (macOS), or click the Copilot status bar |
| 43 | + icon and select **Open Chat**. |
| 44 | +2. Wait for the Chat view to fully load (the input area is editable, the model |
| 45 | + picker shows a resolved model name instead of "Loading..."). |
| 46 | +3. Verify the model picker button on the right side of the action bar displays |
| 47 | + a model name (e.g. `Claude Sonnet 4.6`) with a dropdown arrow. |
| 48 | +4. Hover the mouse over the model picker button and verify a tooltip appears |
| 49 | + (e.g. `Pick Model`). |
| 50 | +5. Click the model picker button to open the dropdown popup. |
| 51 | +6. Verify the dropdown lists models grouped under labelled headers (e.g. |
| 52 | + **Standard Models**, **Premium Models**), with each model showing a cost |
| 53 | + multiplier on the right (e.g. `0x`, `1x`, `3x`). |
| 54 | +7. Verify the currently selected model is marked with a **checkmark** (✓) |
| 55 | + in the list. |
| 56 | +8. Hover over a model item in the dropdown and verify a **detail card** |
| 57 | + appears showing the model's **family** (e.g. `Family: claude-sonnet-4.5`), |
| 58 | + **cost** (e.g. `Cost: 1x premium`), and **category tag** (e.g. |
| 59 | + `Versatile`). |
| 60 | +9. Click a model different from the currently selected one. |
| 61 | +10. Verify the dropdown closes and the model picker button label updates to |
| 62 | + show the newly selected model name. |
| 63 | +11. Type a prompt (e.g. `hello`) in the chat input and click **Send**. |
| 64 | +12. Wait for the Copilot turn to complete (the model-info-label footer |
| 65 | + appears). |
| 66 | +13. Verify the model info label at the bottom of the completed turn matches |
| 67 | + the model selected in step 9. |
| 68 | + |
| 69 | +#### Expected Result |
| 70 | + |
| 71 | +- The model picker loads and shows the default model. |
| 72 | +- The dropdown opens with grouped models and cost multipliers; the selected |
| 73 | + model has a checkmark. |
| 74 | +- Hovering a model shows a detail card with family, cost, and category. |
| 75 | +- Selecting a different model updates the picker label immediately. |
| 76 | +- The response is served by the newly selected model, confirmed by the turn |
| 77 | + footer. |
| 78 | + |
| 79 | +#### 📸 Key Screenshots |
| 80 | + |
| 81 | +- [ ] **Model picker loaded** — action bar showing the resolved model name. |
| 82 | +- [ ] **Dropdown open** — popup showing grouped model list with the active |
| 83 | + model marked with a checkmark. |
| 84 | +- [ ] **Model hover card** — detail card showing family, cost, and category |
| 85 | + tag for a model item. |
| 86 | +- [ ] **Model switched** — picker button showing the new model name. |
| 87 | +- [ ] **Response with new model** — completed Copilot turn whose footer shows |
| 88 | + the new model name. |
| 89 | + |
| 90 | +--- |
| 91 | + |
| 92 | +## 2. Chat mode interaction |
| 93 | + |
| 94 | +### TC-002: Switching chat mode updates the model picker |
| 95 | + |
| 96 | +**Type:** `Happy Path` |
| 97 | +**Priority:** `P1` |
| 98 | + |
| 99 | +#### Preconditions |
| 100 | + |
| 101 | +- The Chat view is open. |
| 102 | +- Both **Ask** and **Agent** modes are available in the mode picker. |
| 103 | + |
| 104 | +#### Steps |
| 105 | + |
| 106 | +1. Note the model currently shown in the model picker. |
| 107 | +2. Switch the chat mode from **Agent** to **Ask** (or vice versa) using the |
| 108 | + mode picker on the left side of the action bar. |
| 109 | +3. Observe the model picker button — it should still show a valid model name |
| 110 | + (which may differ from the previous one if the old model is not available |
| 111 | + in the new mode). |
| 112 | +4. Open the model picker dropdown and verify the model list has loaded (it may |
| 113 | + contain different models than before). |
| 114 | +5. Close the dropdown (click outside or press Escape). |
| 115 | + |
| 116 | +#### Expected Result |
| 117 | + |
| 118 | +- The model picker updates automatically when the chat mode changes. |
| 119 | +- No crash, blank picker, or stale model name occurs. |
| 120 | + |
| 121 | +#### 📸 Key Screenshots |
| 122 | + |
| 123 | +- [ ] **After mode switch** — action bar showing the updated mode label and the |
| 124 | + model picker with a valid model name. |
| 125 | + |
| 126 | +--- |
| 127 | + |
| 128 | +## 3. BYOK custom models and Manage Models shortcut |
| 129 | + |
| 130 | +### TC-003: Custom models appear in the picker and "Manage Models..." opens the preference page |
| 131 | + |
| 132 | +**Type:** `Happy Path` |
| 133 | +**Priority:** `P1` |
| 134 | + |
| 135 | +#### Preconditions |
| 136 | + |
| 137 | +- The user is signed in with an account that has BYOK enabled. |
| 138 | +- At least one custom model has been added and enabled via **Window → |
| 139 | + Preferences → GitHub Copilot → Model Management**. |
| 140 | + |
| 141 | +#### Steps |
| 142 | + |
| 143 | +1. Open the model picker dropdown. |
| 144 | +2. Verify a **Custom Models** group is present at the bottom of the list, |
| 145 | + containing the configured custom model(s). |
| 146 | +3. Select a custom model and verify the picker label updates. |
| 147 | +4. Open the model picker dropdown again. |
| 148 | +5. Click the **Manage Models...** item at the bottom of the dropdown. |
| 149 | +6. Verify the **Preferences** dialog opens directly on the **Model Management** |
| 150 | + page. |
| 151 | +7. Close the Preferences dialog. |
| 152 | + |
| 153 | +#### Expected Result |
| 154 | + |
| 155 | +- Custom models are listed under a dedicated **Custom Models** group. |
| 156 | +- Selecting a custom model works the same as selecting a built-in model. |
| 157 | +- **Manage Models...** navigates directly to the BYOK preference page. |
| 158 | + |
| 159 | +#### 📸 Key Screenshots |
| 160 | + |
| 161 | +- [ ] **Custom Models group** — dropdown showing the Custom Models section with |
| 162 | + the user's configured models. |
| 163 | +- [ ] **Manage Models... action** — Preferences dialog opened to the Model |
| 164 | + Management page after clicking the shortcut. |
| 165 | + |
| 166 | +--- |
| 167 | + |
| 168 | +## Notes on failure modes |
| 169 | + |
| 170 | +- Picker button stays blank / never shows a model name → the model list fetch |
| 171 | + failed; check that the account is signed in and network access is available. |
| 172 | +- Dropdown is empty → auth is valid but the server returned no models; try |
| 173 | + signing out and back in to refresh the token. |
| 174 | +- Selected model is not reflected in the completed turn's footer → the model |
| 175 | + switch event did not propagate; re-select the model and resend. |
| 176 | +- Custom Models group does not appear → BYOK is disabled by org policy, or no |
| 177 | + custom model has been added; verify in Model Management preferences. |
0 commit comments