From 3f04f8ab2acf2eedfd7659f473098ca808f01011 Mon Sep 17 00:00:00 2001 From: Ethan Hou Date: Mon, 18 May 2026 22:34:39 +0800 Subject: [PATCH 1/3] Add test plans for different Copilot subscription tiers focusing on quota usage. --- test-plans/token-based-billing/README.md | 106 +++++++++ .../token-based-billing/TBB-test-business.md | 155 +++++++++++++ .../TBB-test-enterprise.md | 155 +++++++++++++ .../token-based-billing/TBB-test-free.md | 204 +++++++++++++++++ .../token-based-billing/TBB-test-max.md | 198 +++++++++++++++++ .../token-based-billing/TBB-test-pro-plus.md | 194 ++++++++++++++++ .../token-based-billing/TBB-test-pro.md | 207 ++++++++++++++++++ 7 files changed, 1219 insertions(+) create mode 100644 test-plans/token-based-billing/README.md create mode 100644 test-plans/token-based-billing/TBB-test-business.md create mode 100644 test-plans/token-based-billing/TBB-test-enterprise.md create mode 100644 test-plans/token-based-billing/TBB-test-free.md create mode 100644 test-plans/token-based-billing/TBB-test-max.md create mode 100644 test-plans/token-based-billing/TBB-test-pro-plus.md create mode 100644 test-plans/token-based-billing/TBB-test-pro.md diff --git a/test-plans/token-based-billing/README.md b/test-plans/token-based-billing/README.md new file mode 100644 index 00000000..86006f98 --- /dev/null +++ b/test-plans/token-based-billing/README.md @@ -0,0 +1,106 @@ +# Copilot Plan / Quota UI Test Plans + +## Overview +Test plans for the plan- and quota-aware UI surfaces in GitHub Copilot for +Eclipse. One file per Copilot plan; each plan exercises the same three +surfaces so cross-plan differences stay easy to compare. + +All accounts under test are on token-based billing. + +## Surfaces Under Test +1. **Status-bar usage menu** — opened by clicking the Copilot icon in the + Eclipse status bar. +2. **Menu-bar usage menu** — opened from `GitHub Copilot` in the Eclipse menu + bar. Must be visually identical to the status-bar menu. +3. **Quota-warning surfaces in the chat view** + - **Static banner** shown above the chat input area when the user crosses + one of the chat-view quota-usage thresholds (see *Quota-Warning + Thresholds* below). + - **Inline warning widget** shown under a chat turn when a chat request + fails because the quota is exhausted. + + The chat-view warning surfaces are driven only by the quotas that affect + chat usage: the **Chat Messages** quota on the Free plan and the + **AI-credit (premium interactions)** quota on every paid plan. The Code + Completions quota does not trigger banners or inline warnings in the chat + view, even though it is shown in the status-bar / menu-bar menus. + +## Quota-Warning Thresholds +The static banner is pushed by the language server when the signed-in +account's tracked usage crosses one of these two thresholds: + +| Usage crossed | Banner severity / icon | +|---------------|------------------------| +| 75% | Info icon | +| 90% | Warning icon | + +Each threshold fires at most once per quota reset period. To re-trigger a +banner for the same threshold, the quota usage on the GitHub quota portal +must first be lowered back below the threshold (or the reset date must pass) +so the language server re-arms the notification. + +Per-plan cases below are ordered from **rich quota to poor quota**: usage +**under 75%** (no banner), usage **above 75%** (info banner), and usage +**above 90%** (warning banner). To exercise a specific threshold set usage +on the quota portal a few percentage points **above** the target threshold +(for example, **~76%** to cross 75% and **~91%** to cross 90%) and then send +a chat message. + +## Plan → File Map +| Copilot plan | Plan label shown in the menu | File | +|--------------------|-----------------------------------|----------------------------| +| Free | Copilot Free Plan | `TBB-test-free.md` | +| Pro | Copilot Pro Plan | `TBB-test-pro.md` | +| Pro+ | Copilot Pro+ Plan | `TBB-test-pro-plus.md` | +| Max | Copilot Max Plan | `TBB-test-max.md` | +| Business | Business Plan | `TBB-test-business.md` | +| Enterprise | Enterprise Plan | `TBB-test-enterprise.md` | + +## Common Preconditions +- Eclipse is running with the GitHub Copilot for Eclipse plugin installed. +- The tester has access to the GitHub quota portal at + `https://github.com/github-copilot/quotas/` to adjust usage on the + signed-in account. The menus refresh in real time after a quota change; no + Eclipse restart is required. +- The Copilot chat view is open in Agent mode for chat-related cases. +- Each plan starts with a sign-in case (`TC--000`) using an account on + that plan with token-based billing enabled. + +## Quota Action Summary +This table describes which overage action the chat-view warning surfaces are +expected to show for each plan. + +| Plan | Overage action | +|--------------|-------------------------------------------------------| +| Free | — | +| Pro | Enable Additional Usage / Increase Budget (primary) | +| Pro+ | Enable Additional Usage / Increase Budget (primary) | +| Max | Enable Additional Usage / Increase Budget (primary) | +| Business | — | +| Enterprise | — | + +Notes: +- The label switches from "Enable Additional Usage" to "Increase Budget" once + additional paid usage has been enabled for the user. +- The **Upgrade Plan** action (row in the menu, link in the static banner, + button in the inline warning) is **not** plan-driven. It must appear if and + only if the language server reports `canUpgradePlan = true` for the + signed-in account; otherwise it must be absent from every surface. Each + per-plan file starts with a step that records the actual `canUpgradePlan` + value from the language-server log, and all later cases reference that + recorded value. + +## How to Read `canUpgradePlan` From the Language-Server Log +1. In Eclipse, open `Window → Preferences → Language Servers`. +2. Tick **Log to console** (and optionally **Log to file**) for the GitHub + Copilot language server, then `Apply and Close`. +3. Open `Window → Show View → Other... → General → Console`. +4. From the Console toolbar dropdown (the open-console icon), choose the + `Eclipse Copilot Language Servers Log` console entry that traces traffic for the GitHub + Copilot language server. +5. Sign in to GitHub (or sign out and back in) so a fresh handshake is logged. +6. Locate the most recent `copilot/quotaChange` notification (sent from the + server). Note the value of the `canUpgradePlan` field in its payload — it + is `true`, `false`, or absent. + - `true` → expect Upgrade Plan everywhere it can appear. + - `false` or absent → expect Upgrade Plan to **not** appear. diff --git a/test-plans/token-based-billing/TBB-test-business.md b/test-plans/token-based-billing/TBB-test-business.md new file mode 100644 index 00000000..e868b0ea --- /dev/null +++ b/test-plans/token-based-billing/TBB-test-business.md @@ -0,0 +1,155 @@ +# Copilot Business Plan (Unlimited Org) — Quota UI + +## Overview +This file covers the **Business plan with unlimited premium-interaction +usage** configured by the organization. Under this configuration the usage +menus replace the Monthly Limit row with a single informational message, and +the chat-view quota-warning surfaces stay dormant because there is no +monthly cap to cross. + +### Surface-by-surface expectations (unlimited org) + +| Surface | Expected behaviour | +|-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------| +| Plan label in menu header | `Business Plan` | +| Header row icon | Blue (full) usage icon | +| Monthly Limit row | **Hidden.** Replaced by a disabled message: `You have no monthly limit on AI credits usage set by your organization`. | +| Allowance-reset row | **Hidden.** There is no monthly allowance to reset. | +| Additional-usage status row | **Hidden.** | +| Enable Additional Usage / Increase Budget row | **Hidden.** | +| `Upgrade Plan` row | Present **iff** the language server reports `canUpgradePlan = true` for the signed-in account. Typically `false`. | +| Static banner (chat view) | Not triggered. No 75% / 90% threshold to cross. | +| Inline quota warning under a chat turn | Not triggered by quota exhaustion (no cap). | + +### Why the chat-view warning surfaces are not exercised here +With unlimited premium-interaction usage there is no allowance to cross, so +neither the 75% info banner nor the 90% warning banner can fire, and the +quota-exhausted inline warning is unreachable. Banner / inline cases live in +the bounded-org and CFI plans. Any appearance of those surfaces on an +unlimited Business account is a regression. + +--- + +## Test Cases + +### TC-CB-U-000: Sign in with an unlimited Business org account, record `canUpgradePlan` + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- Plugin is installed and Eclipse is signed out. +- A GitHub account that belongs to a **Copilot Business organization + configured with unlimited premium-interaction usage** is available. +- Language-server logging is enabled and the Eclipse Copilot Language Servers + Log console is open (see the README section *How to Read `canUpgradePlan` + From the Language-Server Log*). + +#### Steps +1. Open the Copilot status-bar menu and click `Sign in to GitHub`. +2. Complete the device-flow sign-in with the unlimited Business account. +3. Wait for the status-bar icon to switch to the signed-in icon. +4. In the Eclipse Copilot Language Servers Log console, find the most recent + `copilot/quotaChange` notification and: + - **Record `canUpgradePlan`** (`true`, `false`, or absent). Later cases + refer to this as "the recorded `canUpgradePlan` value". For a typical + Business account this is `false`. + - Confirm the payload indicates that the premium-interactions quota is + unlimited. If it is not, the account is not actually on an unlimited + org and the test should be re-run on a correctly provisioned account. + +#### Expected Result +- The header row of both menus reads ` — Business Plan`. +- The `canUpgradePlan` value and the "unlimited" indication have been + recorded. + +#### 📸 Key Screenshots +- [ ] Signed-in state with the `Business Plan` label +- [ ] Language-server log showing `canUpgradePlan` and the unlimited flag + +--- + +### TC-CB-U-001: Status-bar menu — unlimited org informational message + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- TC-CB-U-000 completed; the signed-in user is on an unlimited Business org. + +#### Steps +1. Click the Copilot icon in the Eclipse status bar. + +#### Expected Result +1. Header row: ` — Business Plan` on top; second row reads + `Copilot Usage` with the **blue/full usage icon**. +2. A **single disabled message row** reading exactly: + `You have no monthly limit on AI credits usage set by your organization`. +3. **No** Monthly Limit row. +4. **No** allowance-reset row (no `Resets today` / `Reset in N days …` text). +5. **No** `Additional usage enabled` / `Additional usage not enabled` status + row, and **no** tooltip on such a row. +6. **No** `Enable Additional Usage` / `Increase Budget` action row. +7. `Upgrade Plan` row — present **iff** the recorded `canUpgradePlan` value + (TC-CB-U-000) is `true`; absent otherwise. For a typical Business account + it must not appear. +8. Standard footer rows (Sign Out, Preferences, etc.) appear as usual below + the usage section. + +#### 📸 Key Screenshots +- [ ] Status-bar menu, unlimited Business org (full menu) + +--- + +### TC-CB-U-002: Menu-bar menu mirrors the status-bar menu + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Steps +1. Open `GitHub Copilot` from the Eclipse menu bar. +2. Compare against the menu captured in TC-CB-U-001. + +#### Expected Result +The menu-bar menu shows the same rows in the same order with the same labels, +tooltips, and icons as the status-bar menu. The unlimited-org informational +message must be identical between the two surfaces. + +#### 📸 Key Screenshots +- [ ] Menu-bar menu, unlimited Business org + +--- + +### TC-CB-U-003: Chat works without any quota banner or inline warning + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- TC-CB-U-001 succeeded. +- Copilot chat view is open in Agent mode. + +#### Steps +1. Send a normal chat message (e.g. `Hello, what can you do?`) and wait for + the response. +2. Send a second chat message that triggers tool use (e.g. ask to read a file + in the workspace). +3. Inspect the chat view above the input area and under each completed turn. + +#### Expected Result +- Both turns complete successfully. +- **No** static banner appears above the chat input (no info-icon banner, no + warning-icon banner, no `Upgrade Plan` link). +- **No** inline warning appears under either turn (no quota-exhausted + message, no `Upgrade Plan` button, no `Enable Additional Usage` button). + +#### 📸 Key Screenshots +- [ ] Chat view with two completed turns, no banner and no inline warning + +--- + +## Screenshots Checklist +- [ ] `TC-CB-U-000` Signed-in `Business Plan` label + language-server log payload +- [ ] `TC-CB-U-001` Status-bar menu, unlimited org informational message +- [ ] `TC-CB-U-002` Menu-bar menu mirrors status-bar menu +- [ ] `TC-CB-U-003` Chat view with no banner / no inline warning diff --git a/test-plans/token-based-billing/TBB-test-enterprise.md b/test-plans/token-based-billing/TBB-test-enterprise.md new file mode 100644 index 00000000..5c926982 --- /dev/null +++ b/test-plans/token-based-billing/TBB-test-enterprise.md @@ -0,0 +1,155 @@ +# Copilot Enterprise Plan (Unlimited Org) — Quota UI + +## Overview +This file covers the **Enterprise plan with unlimited premium-interaction +usage** configured by the organization — the most common Enterprise +configuration. Under this configuration the usage menus replace the Monthly +Limit row with a single informational message, and the chat-view +quota-warning surfaces stay dormant because there is no monthly cap to cross. + +### Surface-by-surface expectations (unlimited org) + +| Surface | Expected behaviour | +|-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------| +| Plan label in menu header | `Enterprise Plan` | +| Header row icon | Blue (full) usage icon | +| Monthly Limit row | **Hidden.** Replaced by a disabled message: `You have no monthly limit on AI credits usage set by your organization`. | +| Allowance-reset row | **Hidden.** There is no monthly allowance to reset. | +| Additional-usage status row | **Hidden.** | +| Enable Additional Usage / Increase Budget row | **Hidden.** | +| `Upgrade Plan` row | Present **iff** the language server reports `canUpgradePlan = true` for the signed-in account. Typically `false`. | +| Static banner (chat view) | Not triggered. No 75% / 90% threshold to cross. | +| Inline quota warning under a chat turn | Not triggered by quota exhaustion (no cap). | + +### Why the chat-view warning surfaces are not exercised here +With unlimited premium-interaction usage there is no allowance to cross, so +neither the 75% info banner nor the 90% warning banner can fire, and the +quota-exhausted inline warning is unreachable. Banner / inline cases live in +the bounded-org and CFI plans. Any appearance of those surfaces on an +unlimited Enterprise account is a regression. + +--- + +## Test Cases + +### TC-CE-U-000: Sign in with an unlimited Enterprise org account, record `canUpgradePlan` + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- Plugin is installed and Eclipse is signed out. +- A GitHub account that belongs to a **Copilot Enterprise organization + configured with unlimited premium-interaction usage** is available. +- Language-server logging is enabled and the Eclipse Copilot Language Servers + Log console is open (see the README section *How to Read `canUpgradePlan` + From the Language-Server Log*). + +#### Steps +1. Open the Copilot status-bar menu and click `Sign in to GitHub`. +2. Complete the device-flow sign-in with the unlimited Enterprise account. +3. Wait for the status-bar icon to switch to the signed-in icon. +4. In the Eclipse Copilot Language Servers Log console, find the most recent + `copilot/quotaChange` notification and: + - **Record `canUpgradePlan`** (`true`, `false`, or absent). Later cases + refer to this as "the recorded `canUpgradePlan` value". For a typical + Enterprise account this is `false`. + - Confirm the payload indicates that the premium-interactions quota is + unlimited. If it is not, the account is not actually on an unlimited + org and the test should be re-run on a correctly provisioned account. + +#### Expected Result +- The header row of both menus reads ` — Enterprise Plan`. +- The `canUpgradePlan` value and the "unlimited" indication have been + recorded. + +#### 📸 Key Screenshots +- [ ] Signed-in state with the `Enterprise Plan` label +- [ ] Language-server log showing `canUpgradePlan` and the unlimited flag + +--- + +### TC-CE-U-001: Status-bar menu — unlimited org informational message + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- TC-CE-U-000 completed; the signed-in user is on an unlimited Enterprise org. + +#### Steps +1. Click the Copilot icon in the Eclipse status bar. + +#### Expected Result +1. Header row: ` — Enterprise Plan` on top; second row reads + `Copilot Usage` with the **blue/full usage icon**. +2. A **single disabled message row** reading exactly: + `You have no monthly limit on AI credits usage set by your organization`. +3. **No** Monthly Limit row. +4. **No** allowance-reset row (no `Resets today` / `Reset in N days …` text). +5. **No** `Additional usage enabled` / `Additional usage not enabled` status + row, and **no** tooltip on such a row. +6. **No** `Enable Additional Usage` / `Increase Budget` action row. +7. `Upgrade Plan` row — present **iff** the recorded `canUpgradePlan` value + (TC-CE-U-000) is `true`; absent otherwise. For a typical Enterprise + account it must not appear. +8. Standard footer rows (Sign Out, Preferences, etc.) appear as usual below + the usage section. + +#### 📸 Key Screenshots +- [ ] Status-bar menu, unlimited Enterprise org (full menu) + +--- + +### TC-CE-U-002: Menu-bar menu mirrors the status-bar menu + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Steps +1. Open `GitHub Copilot` from the Eclipse menu bar. +2. Compare against the menu captured in TC-CE-U-001. + +#### Expected Result +The menu-bar menu shows the same rows in the same order with the same labels, +tooltips, and icons as the status-bar menu. The unlimited-org informational +message must be identical between the two surfaces. + +#### 📸 Key Screenshots +- [ ] Menu-bar menu, unlimited Enterprise org + +--- + +### TC-CE-U-003: Chat works without any quota banner or inline warning + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- TC-CE-U-001 succeeded. +- Copilot chat view is open in Agent mode. + +#### Steps +1. Send a normal chat message (e.g. `Hello, what can you do?`) and wait for + the response. +2. Send a second chat message that triggers tool use (e.g. ask to read a file + in the workspace). +3. Inspect the chat view above the input area and under each completed turn. + +#### Expected Result +- Both turns complete successfully. +- **No** static banner appears above the chat input (no info-icon banner, no + warning-icon banner, no `Upgrade Plan` link). +- **No** inline warning appears under either turn (no quota-exhausted + message, no `Upgrade Plan` button, no `Enable Additional Usage` button). + +#### 📸 Key Screenshots +- [ ] Chat view with two completed turns, no banner and no inline warning + +--- + +## Screenshots Checklist +- [ ] `TC-CE-U-000` Signed-in `Enterprise Plan` label + language-server log payload +- [ ] `TC-CE-U-001` Status-bar menu, unlimited org informational message +- [ ] `TC-CE-U-002` Menu-bar menu mirrors status-bar menu +- [ ] `TC-CE-U-003` Chat view with no banner / no inline warning diff --git a/test-plans/token-based-billing/TBB-test-free.md b/test-plans/token-based-billing/TBB-test-free.md new file mode 100644 index 00000000..1b351fd6 --- /dev/null +++ b/test-plans/token-based-billing/TBB-test-free.md @@ -0,0 +1,204 @@ +# Copilot Free Plan — Quota UI + +## Overview +Free plan accounts track separate **Code Completions** and **Chat Messages** +quotas. They are eligible to upgrade and have no overage row. + +Expected plan label in the menu header: `Copilot Free Plan`. + +--- + +## Test Cases + +### TC-Free-000: Sign in with a Copilot Free plan account, record `canUpgradePlan` + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- Plugin is installed and Eclipse is signed out. +- A GitHub account on the Copilot Free plan is available. +- Language-server logging is enabled and the Eclipse Copilot Language Servers Log console is open + (see the README section *How to Read `canUpgradePlan` From the + Language-Server Log*). + +#### Steps +1. Open the Copilot status-bar menu and click `Sign in to GitHub`. +2. Complete the device-flow sign-in with the Free plan account. +3. Wait for the status-bar icon to switch to the signed-in icon. +4. In the Eclipse Copilot Language Servers Log console, find the most recent `copilot/quotaChange` + notification and **record the value of `canUpgradePlan`** (`true`, `false`, + or absent). Later cases in this file refer to this value as + "the recorded `canUpgradePlan` value". + +#### Expected Result +- The header row of both menus reads ` — Copilot Free Plan`. +- The recorded `canUpgradePlan` value has been written down so the rest of + the cases can be evaluated against it. + +#### 📸 Key Screenshots +- [ ] Signed-in state with the Free Plan label +- [ ] Eclipse Copilot Language Servers Log console showing the `canUpgradePlan` field + +--- + +### TC-Free-001: Status-bar menu — under quota + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- Both the Code Completions and Chat Messages quotas are under 75% used + used. + +#### Steps +1. Click the Copilot icon in the status bar. + +#### Expected Result +- Header row: `Copilot Usage` with the blue usage icon and the tooltip + `Manage Copilot`. +- Row: `Code Completions NN% used`. +- Row: `Chat Messages NN% used`. +- Row showing the next reset date (e.g. `Reset in N days on `), + disabled. +- The `Upgrade Plan` row (with an upgrade icon) is present **iff** the + recorded `canUpgradePlan` value (TC-Free-000) is `true`; absent otherwise. +- No Included Credits / Monthly Limit row, no Enable Additional Usage row, no + Additional usage status row. + +#### 📸 Key Screenshots +- [ ] Full status-bar menu + +--- + +### TC-Free-002: Menu-bar menu mirrors the status-bar menu + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Steps +1. Open `GitHub Copilot` from the Eclipse menu bar. +2. Compare against the menu shown in TC-Free-001. + +#### Expected Result +The menu-bar menu shows the same rows in the same order, with the same labels, +tooltips, and icons as the status-bar menu. + +#### 📸 Key Screenshots +- [ ] Full menu-bar menu + +--- + +### TC-Free-003: Usage icon transitions + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Steps +1. On the GitHub quota portal, raise either the Code Completions or Chat + Messages usage to above 75% (to trigger the yellow icon); reopen the status-bar menu. +2. Raise the usage to above 90% (to trigger the red icon); reopen the menu. + +#### Expected Result +- The header usage icon switches to **yellow** when the lower of the two + quotas has roughly a quarter or less remaining. +- The header usage icon switches to **red** when the lower of the two quotas + has roughly a tenth or less remaining. +- Percent text on each row updates without reopening Eclipse. + +#### 📸 Key Screenshots +- [ ] Yellow header icon +- [ ] Red header icon + +--- + +### TC-Free-004: Quota-warning static banner — 75% threshold (info) + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- The Chat Messages quota is set to ~76% used on the quota portal (so it + crosses the 75% threshold but is below 90%). The Code Completions quota + does not trigger a chat-view banner and is not relevant here. See + *Quota-Warning Thresholds* in the README. + +#### Steps +1. Send a chat message (or wait for the next quota refresh). +2. Observe the banner above the chat input area. + +#### Expected Result +- A banner appears with an **info icon** (not the warning icon). +- If the recorded `canUpgradePlan` value (TC-Free-000) is `true`, a single + action link `Upgrade Plan` is shown and opens the Copilot upgrade page in + a browser when clicked. If the value is `false` or absent, no action link + is shown. +- The dismiss (`×`) control closes the banner. + +#### 📸 Key Screenshots +- [ ] Static banner with info icon + +--- + +### TC-Free-005: Quota-warning static banner — 90% threshold (warning) + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- The Chat Messages quota is set to ~91% used on the quota portal (so it + crosses the 90% threshold). The Code Completions quota does not trigger a + chat-view banner and is not relevant here. See *Quota-Warning Thresholds* + in the README. + +#### Steps +1. Send a chat message (or wait for the next quota refresh). +2. Observe the banner above the chat input area. + +#### Expected Result +- A banner appears with a **warning icon**. +- The message references the user having nearly exhausted the chat budget + and prompts them to upgrade. +- The same conditional `Upgrade Plan` action link is shown only when the + recorded `canUpgradePlan` value (TC-Free-000) is `true`. +- The dismiss (`×`) control closes the banner. + +#### 📸 Key Screenshots +- [ ] Static banner with warning icon and Upgrade Plan link + +--- + +### TC-Free-006: Inline warning under a chat turn when quota is exhausted + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- The Chat Messages quota is at 100% used. (Exhausting the Code Completions + quota does not produce a chat-view warning.) + +#### Steps +1. Send a chat message that the server rejects because the quota is exhausted. +2. Inspect the warning rendered under the assistant turn. + +#### Expected Result +- The warning shows a warn icon and the server-supplied error message text. +- If the recorded `canUpgradePlan` value (TC-Free-000) is `true`, one primary + button labelled `Upgrade Plan` is shown and opens the Copilot upgrade page + in a browser when clicked. If the value is `false` or absent, no button is + shown. + +#### 📸 Key Screenshots +- [ ] Inline warning with a single Upgrade Plan button + +--- + +## Screenshots Checklist +- [ ] `TC-Free-000` Signed-in Free Plan label +- [ ] `TC-Free-001` Status-bar menu +- [ ] `TC-Free-002` Menu-bar menu +- [ ] `TC-Free-003` Yellow header icon +- [ ] `TC-Free-003` Red header icon +- [ ] `TC-Free-004` Static banner (info, 75%) +- [ ] `TC-Free-005` Static banner (warning, 90%) +- [ ] `TC-Free-006` Inline warning under chat turn diff --git a/test-plans/token-based-billing/TBB-test-max.md b/test-plans/token-based-billing/TBB-test-max.md new file mode 100644 index 00000000..a1915753 --- /dev/null +++ b/test-plans/token-based-billing/TBB-test-max.md @@ -0,0 +1,198 @@ +# Copilot Max Plan — Quota UI + +## Overview +Max accounts use the **Included Credits** row and have the Enable Additional +Usage overage row. Visibility of the `Upgrade Plan` row depends on the +upgrade-eligibility signal sent by the language server; Max accounts are +normally reported as not eligible to upgrade, in which case the row must be +absent. + +Expected plan label in the menu header: `Copilot Max Plan`. + +--- + +## Test Cases + +### TC-Max-000: Sign in with a Copilot Max plan account, record `canUpgradePlan` + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- Plugin is installed and Eclipse is signed out. +- A GitHub account on the Copilot Max plan is available. +- Language-server logging is enabled and the Eclipse Copilot Language Servers Log console is open + (see the README section *How to Read `canUpgradePlan` From the + Language-Server Log*). + +#### Steps +1. Open the Copilot status-bar menu and click `Sign in to GitHub`. +2. Complete the device-flow sign-in with the Max plan account. +3. Wait for the status-bar icon to switch to the signed-in icon. +4. In the Eclipse Copilot Language Servers Log console, find the most recent `copilot/quotaChange` + notification and **record the value of `canUpgradePlan`** (`true`, `false`, + or absent). Later cases in this file refer to this value as + "the recorded `canUpgradePlan` value". For a Max account this value is + normally `false`. + +#### Expected Result +- The header row of both menus reads ` — Copilot Max Plan`. +- The recorded `canUpgradePlan` value has been written down so the rest of + the cases can be evaluated against it. + +#### 📸 Key Screenshots +- [ ] Signed-in state with the Max Plan label +- [ ] Eclipse Copilot Language Servers Log console showing the `canUpgradePlan` field + +--- + +### TC-Max-001: Status-bar menu — under quota, Upgrade Plan visibility matches `canUpgradePlan` + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- AI-credit usage is under 75% used. + +#### Steps +1. Click the Copilot icon in the status bar. +2. Note the **Additional usage** status row text — it reflects whether the + account currently has additional paid usage enabled. + +#### Expected Result +Rows: +1. `Copilot Usage` header with a blank header icon. +2. `Included Credits NN/MMM AI credits used` with the blue usage icon. +3. Row showing the next reset date. +4. Status row + action row **depend on the current additional-usage state** + (the tester does not need to know this in advance — both layouts are + valid starting points): + - **Additional usage not enabled (default):** + - Status row: `Additional usage not enabled`. + - Action row: `Enable Additional Usage` with an upgrade icon. + - **Additional usage enabled:** + - Status row: `Additional usage enabled`. + - Action row: `Increase Budget` with the same upgrade icon (clicking + either label opens the overage management page). +5. `Upgrade Plan` row — present **iff** the recorded `canUpgradePlan` value + (TC-Max-000) is `true`; absent otherwise. For a typical Max account the + recorded value is `false`, so this row should not appear. + +#### 📸 Key Screenshots +- [ ] Status-bar menu (capture whichever additional-usage state the account + starts in; Upgrade Plan visibility matches the recorded value) + +--- + +### TC-Max-002: Menu-bar menu mirrors the status-bar menu + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Steps +1. Open `GitHub Copilot` from the Eclipse menu bar. +2. Compare against the menu shown in TC-Max-001. + +#### Expected Result +The menu-bar menu shows the same rows in the same order, with the same labels, +tooltips, and icons as the status-bar menu — including the same `Upgrade +Plan` visibility derived from the recorded `canUpgradePlan` value +(TC-Max-000). + +#### 📸 Key Screenshots +- [ ] Menu-bar menu (Upgrade Plan row matches the recorded value) + +--- + +### TC-Max-003: Usage icon transitions on the Included Credits row + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Steps +1. On the quota portal, raise AI-credit usage to above 75% (to trigger the yellow icon), then above 90% (to trigger the red icon). + +#### Expected Result +Blue → yellow (≈25% or less remaining) → red (≈10% or less remaining) on the +Included Credits row. + +#### 📸 Key Screenshots +- [ ] Yellow / red Included Credits icon + +--- + +### TC-Max-004: Quota-warning static banner — 75% threshold (info) + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- AI-credit usage is set to ~76% on the quota portal (so it crosses the 75% + threshold but is below 90%). See *Quota-Warning Thresholds* in the README. + +#### Expected Result +- Banner above the chat input with an **info icon** (not the warning icon). +- Action links: + - `Enable Additional Usage` (or `Increase Budget` when already enabled) — + always shown. + - `Upgrade Plan` — shown **iff** the recorded `canUpgradePlan` value + (TC-Max-000) is `true`. For a typical Max account it must be absent. + +#### 📸 Key Screenshots +- [ ] Static banner with info icon; Upgrade Plan link matches the recorded value + +--- + +### TC-Max-005: Quota-warning static banner — 90% threshold (warning) + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- AI-credit usage is set to ~91% on the quota portal (so it crosses the 90% + threshold). See *Quota-Warning Thresholds* in the README. + +#### Expected Result +- Banner above the chat input with a **warning icon**. +- Action links are the same as in TC-Max-004: + - `Enable Additional Usage` (or `Increase Budget` when already enabled). + - `Upgrade Plan` — shown only when the recorded `canUpgradePlan` value + (TC-Max-000) is `true`. + +#### 📸 Key Screenshots +- [ ] Static banner with warning icon; Upgrade Plan link matches the recorded value + +--- + +### TC-Max-006: Inline warning under a chat turn when quota is exhausted + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- AI-credit usage is at 100%, additional usage not enabled. + +#### Steps +1. Send a chat message that the server rejects because the quota is exhausted. + +#### Expected Result +- Warn icon plus the server-supplied error message. +- A **primary** button `Enable Additional Usage` is shown and opens the + overage management page. +- A secondary button `Upgrade Plan` is shown **iff** the recorded + `canUpgradePlan` value (TC-Max-000) is `true`; absent otherwise. For a + typical Max account the button must not appear. + +#### 📸 Key Screenshots +- [ ] Inline warning; Upgrade Plan button matches the recorded value + +--- + +## Screenshots Checklist +- [ ] `TC-Max-000` Signed-in Max Plan label + `canUpgradePlan` log +- [ ] `TC-Max-001` Status-bar menu (capture the current additional-usage state; Upgrade Plan matches recorded value) +- [ ] `TC-Max-002` Menu-bar menu (same visibility) +- [ ] `TC-Max-003` Yellow / red Included Credits icon +- [ ] `TC-Max-004` Static banner (info, 75%) +- [ ] `TC-Max-005` Static banner (warning, 90%) +- [ ] `TC-Max-006` Inline warning; Upgrade Plan button matches recorded value diff --git a/test-plans/token-based-billing/TBB-test-pro-plus.md b/test-plans/token-based-billing/TBB-test-pro-plus.md new file mode 100644 index 00000000..6ef76a39 --- /dev/null +++ b/test-plans/token-based-billing/TBB-test-pro-plus.md @@ -0,0 +1,194 @@ +# Copilot Pro+ Plan — Quota UI + +## Overview +Pro+ accounts use the **Included Credits** row, have an Enable Additional +Usage overage row, and may show the `Upgrade Plan` row depending on the +upgrade-eligibility signal sent by the language server. + +Expected plan label in the menu header: `Copilot Pro+ Plan`. + +--- + +## Test Cases + +### TC-ProPlus-000: Sign in with a Copilot Pro+ plan account, record `canUpgradePlan` + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- Plugin is installed and Eclipse is signed out. +- A GitHub account on the Copilot Pro+ plan is available. +- Language-server logging is enabled and the Eclipse Copilot Language Servers Log console is open + (see the README section *How to Read `canUpgradePlan` From the + Language-Server Log*). + +#### Steps +1. Open the Copilot status-bar menu and click `Sign in to GitHub`. +2. Complete the device-flow sign-in with the Pro+ plan account. +3. Wait for the status-bar icon to switch to the signed-in icon. +4. In the Eclipse Copilot Language Servers Log console, find the most recent `copilot/quotaChange` + notification and **record the value of `canUpgradePlan`** (`true`, `false`, + or absent). Later cases in this file refer to this value as + "the recorded `canUpgradePlan` value". + +#### Expected Result +- The header row of both menus reads ` — Copilot Pro+ Plan`. +- The recorded `canUpgradePlan` value has been written down so the rest of + the cases can be evaluated against it. + +#### 📸 Key Screenshots +- [ ] Signed-in state with the Pro+ Plan label +- [ ] Eclipse Copilot Language Servers Log console showing the `canUpgradePlan` field + +--- + +### TC-ProPlus-001: Status-bar menu — under quota + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- AI-credit usage is under 75% used. + +#### Steps +1. Click the Copilot icon in the status bar. +2. Note the **Additional usage** status row text — it reflects whether the + account currently has additional paid usage enabled. + +#### Expected Result +Rows (top → bottom): +1. `Copilot Usage` header with a blank header icon. +2. `Included Credits NN/MMM AI credits used` with the blue usage icon and a + tooltip explaining included credits. +3. Row showing the next reset date. +4. Status row + action row **depend on the current additional-usage state** + (the tester does not need to know this in advance — both layouts are + valid starting points): + - **Additional usage not enabled (default):** + - Status row: `Additional usage not enabled`. + - Action row: `Enable Additional Usage` with an upgrade icon. + - **Additional usage enabled:** + - Status row: `Additional usage enabled`. + - Action row: `Increase Budget` with the same upgrade icon (clicking + either label opens the overage management page). +5. `Upgrade Plan` with a blank icon — present **iff** the recorded + `canUpgradePlan` value (TC-ProPlus-000) is `true`; absent otherwise. + +#### 📸 Key Screenshots +- [ ] Status-bar menu (capture whichever additional-usage state the account + starts in) + +--- + +### TC-ProPlus-002: Menu-bar menu mirrors the status-bar menu + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Steps +1. Open `GitHub Copilot` from the Eclipse menu bar. +2. Compare against the menu shown in TC-ProPlus-001. + +#### Expected Result +The menu-bar menu shows the same rows in the same order, with the same labels, +tooltips, and icons as the status-bar menu. + +#### 📸 Key Screenshots +- [ ] Menu-bar menu + +--- + +### TC-ProPlus-003: Usage icon transitions on the Included Credits row + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Steps +1. On the quota portal, raise AI-credit usage to above 75% (to trigger the yellow icon), then above 90% (to trigger the red icon). + +#### Expected Result +- Blue → yellow (≈25% or less remaining) → red (≈10% or less remaining) on + the Included Credits row. +- The header icon stays blank throughout. + +#### 📸 Key Screenshots +- [ ] Yellow / red Included Credits icon + +--- + +### TC-ProPlus-004: Quota-warning static banner — 75% threshold (info) + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- AI-credit usage is set to ~76% on the quota portal (so it crosses the 75% + threshold but is below 90%). See *Quota-Warning Thresholds* in the README. +- Additional usage is disabled. + +#### Expected Result +- Banner above the chat input with an **info icon** (not the warning icon). +- Action links: + - `Enable Additional Usage` — always shown. + - `Upgrade Plan` — shown **iff** the recorded `canUpgradePlan` value + (TC-ProPlus-000) is `true`. + +#### 📸 Key Screenshots +- [ ] Static banner with info icon and both action links + +--- + +### TC-ProPlus-005: Quota-warning static banner — 90% threshold (warning) + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- AI-credit usage is set to ~91% on the quota portal (so it crosses the 90% + threshold). See *Quota-Warning Thresholds* in the README. +- Additional usage is disabled. + +#### Expected Result +- Banner above the chat input with a **warning icon**. +- Action links are the same as in TC-ProPlus-004: + - `Enable Additional Usage` — always shown. + - `Upgrade Plan` — shown **iff** the recorded `canUpgradePlan` value + (TC-ProPlus-000) is `true`. + +#### 📸 Key Screenshots +- [ ] Static banner with warning icon and both action links + +--- + +### TC-ProPlus-006: Inline warning under a chat turn when quota is exhausted + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- AI-credit usage is at 100%, additional usage not enabled. + +#### Steps +1. Send a chat message that the server rejects because the quota is exhausted. + +#### Expected Result +- Warn icon plus the server-supplied error message. +- A **primary** button `Enable Additional Usage` is shown and opens the + overage management page. +- A **secondary** button `Upgrade Plan` is shown **iff** the recorded + `canUpgradePlan` value (TC-ProPlus-000) is `true`; absent otherwise. + +#### 📸 Key Screenshots +- [ ] Inline warning with two buttons + +--- + +## Screenshots Checklist +- [ ] `TC-ProPlus-000` Signed-in Pro+ Plan label +- [ ] `TC-ProPlus-001` Status-bar menu (capture the current additional-usage state) +- [ ] `TC-ProPlus-002` Menu-bar menu +- [ ] `TC-ProPlus-003` Yellow / red Included Credits icon +- [ ] `TC-ProPlus-004` Static banner (info, 75%) +- [ ] `TC-ProPlus-005` Static banner (warning, 90%) +- [ ] `TC-ProPlus-006` Inline warning under chat turn diff --git a/test-plans/token-based-billing/TBB-test-pro.md b/test-plans/token-based-billing/TBB-test-pro.md new file mode 100644 index 00000000..cdb6584b --- /dev/null +++ b/test-plans/token-based-billing/TBB-test-pro.md @@ -0,0 +1,207 @@ +# Copilot Pro Plan — Quota UI + +## Overview +Pro accounts use the **Included Credits** row, have an Enable Additional Usage +overage row, and are eligible to upgrade. + +Expected plan label in the menu header: `Copilot Pro Plan`. + +--- + +## Test Cases + +### TC-Pro-000: Sign in with a Copilot Pro plan account, record `canUpgradePlan` + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- Plugin is installed and Eclipse is signed out. +- A GitHub account on the Copilot Pro plan is available. +- Language-server logging is enabled and the Eclipse Copilot Language Servers Log console is open + (see the README section *How to Read `canUpgradePlan` From the + Language-Server Log*). + +#### Steps +1. Open the Copilot status-bar menu and click `Sign in to GitHub`. +2. Complete the device-flow sign-in with the Pro plan account. +3. Wait for the status-bar icon to switch to the signed-in icon. +4. In the Eclipse Copilot Language Servers Log console, find the most recent `copilot/quotaChange` + notification and **record the value of `canUpgradePlan`** (`true`, `false`, + or absent). Later cases in this file refer to this value as + "the recorded `canUpgradePlan` value". + +#### Expected Result +- The header row of both menus reads ` — Copilot Pro Plan`. +- The recorded `canUpgradePlan` value has been written down so the rest of + the cases can be evaluated against it. + +#### 📸 Key Screenshots +- [ ] Signed-in state with the Pro Plan label +- [ ] Eclipse Copilot Language Servers Log console showing the `canUpgradePlan` field + +--- + +### TC-Pro-001: Status-bar menu — under quota + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- Premium / AI-credit usage is under 75% used. + +#### Steps +1. Click the Copilot icon in the status bar. +2. Note the **Additional usage** status row text — it reflects whether the + account currently has additional paid usage enabled. + +#### Expected Result +- Header row: `Copilot Usage`, with a blank header icon (the usage icon + appears on the Included Credits row instead). +- Row: `Included Credits NN/MMM AI credits used` with the blue usage icon + and a tooltip explaining included credits. +- Row showing the next reset date (e.g. `Reset in N days on `). +- Status row + action row **depend on the current additional-usage state** + (the tester does not need to know this in advance — both layouts are valid + starting points): + - **Additional usage not enabled (default):** + - Status row: `Additional usage not enabled` (no tooltip). + - Action row: `Enable Additional Usage` with an upgrade icon. + - **Additional usage enabled:** + - Status row: `Additional usage enabled` (no tooltip). + - Action row: `Increase Budget` with the same upgrade icon (clicking + either label opens the overage management page). +- Row: `Upgrade Plan` is present **iff** the recorded `canUpgradePlan` + value (TC-Pro-000) is `true`; absent otherwise. When present it uses a + blank icon (the upgrade icon was already used by the row above). + +#### 📸 Key Screenshots +- [ ] Status-bar menu (capture whichever additional-usage state the account + starts in) + +--- + +### TC-Pro-002: Menu-bar menu mirrors the status-bar menu + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Steps +1. Open `GitHub Copilot` from the Eclipse menu bar. +2. Compare against the menu shown in TC-Pro-001. + +#### Expected Result +The menu-bar menu shows the same rows in the same order, with the same labels, +tooltips, and icons as the status-bar menu. + +#### 📸 Key Screenshots +- [ ] Menu-bar menu + +--- + +### TC-Pro-003: Usage icon transitions on the Included Credits row + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Steps +1. On the quota portal, raise the AI-credit usage to above 75% (to trigger the yellow icon), then above 90% (to trigger the red icon). +2. Reopen menus after each change. + +#### Expected Result +- The Included Credits row icon transitions from blue, to yellow when roughly + a quarter or less remains, to red when roughly a tenth or less remains. +- The header icon stays blank throughout. + +#### 📸 Key Screenshots +- [ ] Yellow Included Credits icon +- [ ] Red Included Credits icon + +--- + +### TC-Pro-004: Quota-warning static banner — 75% threshold (info) + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- AI-credit usage is set to ~76% on the quota portal (so it crosses the 75% + threshold but is below 90%). See *Quota-Warning Thresholds* in the README. + +#### Steps +1. Send a chat message to trigger the quota-warning notification. + +#### Expected Result +- A banner appears above the chat input with an **info icon** (not the + warning icon). +- Two action links: + - `Enable Additional Usage` (or `Increase Budget` if already enabled), + opening the overage management page. + - `Upgrade Plan`, opening the Copilot upgrade page — shown only when the + recorded `canUpgradePlan` value (TC-Pro-000) is `true`. When the recorded + value is `false` or absent, only the overage link is shown. +- The dismiss (`×`) control closes the banner. + +#### 📸 Key Screenshots +- [ ] Static banner with info icon and both action links + +--- + +### TC-Pro-005: Quota-warning static banner — 90% threshold (warning) + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- AI-credit usage is set to ~91% on the quota portal (so it crosses the 90% + threshold). See *Quota-Warning Thresholds* in the README. + +#### Steps +1. Send a chat message to trigger the quota-warning notification. + +#### Expected Result +- A banner appears with a **warning icon**. +- Action links are the same as in TC-Pro-004: + - `Enable Additional Usage` (or `Increase Budget` if already enabled). + - `Upgrade Plan` — shown only when the recorded `canUpgradePlan` value + (TC-Pro-000) is `true`. + +#### 📸 Key Screenshots +- [ ] Static banner with warning icon and both action links + +--- + +### TC-Pro-006: Inline warning under a chat turn when quota is exhausted + +**Type:** `Happy Path` +**Priority:** `P0` + +#### Preconditions +- AI-credit usage is at 100%, with additional usage not enabled. + +#### Steps +1. Send a chat message that the server rejects because the quota is exhausted. +2. Inspect the warning rendered under the assistant turn. + +#### Expected Result +- The warning shows a warn icon and the server-supplied error message. +- A **primary** button `Enable Additional Usage` is shown and opens the + overage management page. +- A **secondary** button `Upgrade Plan` is shown **iff** the recorded + `canUpgradePlan` value (TC-Pro-000) is `true`; absent otherwise. When + shown, it opens the Copilot upgrade page. +- The active model in the model picker is not silently switched away. + +#### 📸 Key Screenshots +- [ ] Inline warning with two buttons + +--- + +## Screenshots Checklist +- [ ] `TC-Pro-000` Signed-in Pro Plan label +- [ ] `TC-Pro-001` Status-bar menu (capture the current additional-usage state) +- [ ] `TC-Pro-002` Menu-bar menu +- [ ] `TC-Pro-003` Yellow / red Included Credits icon +- [ ] `TC-Pro-004` Static banner (info, 75%) +- [ ] `TC-Pro-005` Static banner (warning, 90%) +- [ ] `TC-Pro-006` Inline warning under chat turn From d6575bb990a2b01b2648a63f4a12abe28ea458ae Mon Sep 17 00:00:00 2001 From: Ethan Hou Date: Tue, 19 May 2026 17:30:26 +0800 Subject: [PATCH 2/3] Address comments. --- test-plans/token-based-billing/TBB-test-free.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test-plans/token-based-billing/TBB-test-free.md b/test-plans/token-based-billing/TBB-test-free.md index 1b351fd6..2d0d930f 100644 --- a/test-plans/token-based-billing/TBB-test-free.md +++ b/test-plans/token-based-billing/TBB-test-free.md @@ -2,7 +2,8 @@ ## Overview Free plan accounts track separate **Code Completions** and **Chat Messages** -quotas. They are eligible to upgrade and have no overage row. +quotas and have no overage row. Upgrade Plan visibility depends on the + language-server `canUpgradePlan` signal. Expected plan label in the menu header: `Copilot Free Plan`. @@ -48,8 +49,7 @@ Expected plan label in the menu header: `Copilot Free Plan`. **Priority:** `P0` #### Preconditions -- Both the Code Completions and Chat Messages quotas are under 75% used - used. +- Both the Code Completions and Chat Messages quotas are under 75% used. #### Steps 1. Click the Copilot icon in the status bar. From fee7d4fc8e0a759e01c6f05d64d1b0aba0f83671 Mon Sep 17 00:00:00 2001 From: Ethan Hou Date: Tue, 19 May 2026 17:32:06 +0800 Subject: [PATCH 3/3] Address comments. --- test-plans/token-based-billing/TBB-test-pro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-plans/token-based-billing/TBB-test-pro.md b/test-plans/token-based-billing/TBB-test-pro.md index cdb6584b..b741cdef 100644 --- a/test-plans/token-based-billing/TBB-test-pro.md +++ b/test-plans/token-based-billing/TBB-test-pro.md @@ -2,7 +2,7 @@ ## Overview Pro accounts use the **Included Credits** row, have an Enable Additional Usage -overage row, and are eligible to upgrade. +overage row, and show Upgrade Plan based on the recorded `canUpgradePlan` value. Expected plan label in the menu header: `Copilot Pro Plan`.